kumquat-buildroot/board/pc
Adam Duskett 7a4e8355e3 board/pc/linux.config: Add framebuffer and pci support
Virtually all PCs nowadays have a PCI bridge and PCI devices.

All framnebuffer options depend on CONFIG_FB, which default is not 'y',
so also enable that.

The overwhelming majority of PCs nowadays also come with an UEFI
bootloader, that configures a framebuffer usable in early boot, which
the kernel can reuse without needing any hardware-specific driver.

EDID allows retrieving the capabilities of the connected display,
especially the frequencies and so on, to properly drive the display.

Signed-off-by: Adam Duskett <aduskett@gmail.com>
[yann.morin.1998@free.fr:
  - drop cosmetic CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
  - rewrite commit log to explain all new options
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-04-14 20:28:26 +02:00
..
genimage-bios.cfg
genimage-efi.cfg
grub-bios.cfg
grub-efi.cfg
linux.config board/pc/linux.config: Add framebuffer and pci support 2023-04-14 20:28:26 +02:00
post-build.sh configs/pc_x86_64_bios_defconfig: fix image generation after grub2 rework 2021-12-05 12:32:24 +01:00
post-image-efi.sh board/pc/post-image-efi.sh: fail on any error 2019-12-02 12:47:47 +01:00
readme.txt

Bare PC sample config
=====================

1. Build

  First select the appropriate target you want.

  For BIOS-based boot strategy:

  $ make pc_x86_64_bios_defconfig

  For EFI-based boot strategy on a GPT-partitioned disk:

  $ make pc_x86_64_efi_defconfig

  Add any additional packages required and build:

  $ make

2. Write the pendrive

  The build process will create a pendrive image called sdcard.img in
  output/images.

  Write the image to a pendrive:

  $ dd if=output/images/disk.img of=/dev/sdc; sync

  Once it's done insert it into the target PC and boot.

  Remember that if said PC has another boot device you might need to
  select this alternative for it to boot.

  In the case of EFI boot you might need to disable Secure Boot from
  the setup as well.

3. Enjoy

Emulation in qemu (BIOS)
========================

1. Edit grub-bios.cfg

  Since the driver will show up in the virtual machine as /dev/vda,
  change board/pc/grub-bios.cfg to use root=/dev/vda2 instead of
  root=/dev/sda2. Then rebuild grub2 and the image.

2. Run the emulation with:

qemu-system-x86_64 \
	-M pc \
	-drive file=output/images/disk.img,if=virtio,format=raw \
	-net nic,model=virtio \
	-net user


Emulation in qemu (UEFI)
========================

Run the emulation with:

qemu-system-x86_64 \
	-M pc \
	-bios </path/to/OVMF_CODE.fd> \
	-drive file=output/images/disk.img,if=virtio,format=raw \
	-net nic,model=virtio \
	-net user

Note that </path/to/OVMF.fd> needs to point to a valid x86_64 UEFI
firmware image for qemu. It may be provided by your distribution as a
edk2 or OVMF package, in path such as
/usr/share/edk2/ovmf/OVMF_CODE.fd .