initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
image disk.img {
hdimage {
}
partition boot {
in-partition-table = "no"
image = "boot.img"
offset = 0
size = 512
}
partition grub {
in-partition-table = "no"
image = "grub.img"
offset = 512
}
partition root {
partition-type = 0x83
image = "rootfs.ext2"
}
}
+32
View File
@@ -0,0 +1,32 @@
image efi-part.vfat {
vfat {
file EFI {
image = "efi-part/EFI"
}
file bzImage {
image = "bzImage"
}
}
size = 16352K # 16MB - 32KB
}
image disk.img {
hdimage {
gpt = true
}
partition boot {
image = "efi-part.vfat"
partition-type-uuid = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
offset = 32K
bootable = true
}
partition root {
partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
partition-uuid = UUID_TMP
image = "rootfs.ext2"
}
}
+6
View File
@@ -0,0 +1,6 @@
set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /boot/bzImage root=/dev/sda1 rootwait console=tty1
}
+6
View File
@@ -0,0 +1,6 @@
set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /bzImage root=PARTUUID=UUID_TMP rootwait console=tty1
}
+85
View File
@@ -0,0 +1,85 @@
CONFIG_SYSVIPC=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_SMP=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_EFI=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_NETFILTER=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_SD=y
CONFIG_SCSI_VIRTIO=y
CONFIG_ATA=y
CONFIG_ATA_PIIX=y
CONFIG_NETDEVICES=y
CONFIG_VIRTIO_NET=y
CONFIG_ATL2=m
CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_ALX=m
CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_NE2K_PCI=y
CONFIG_8139CP=y
CONFIG_R8169=m
CONFIG_ATH9K=m
CONFIG_ATH9K_HTC=m
CONFIG_CARL9170=m
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_IWL4965=m
CONFIG_IWL3945=m
CONFIG_IWLWIFI=m
CONFIG_RT2X00=m
CONFIG_RT2800PCI=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT3573=y
CONFIG_RT2800USB_RT53XX=y
CONFIG_RT2800USB_RT55XX=y
# CONFIG_RTL_CARDS is not set
CONFIG_RTL8XXXU=m
CONFIG_INPUT_EVDEV=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM=y
CONFIG_DRM_I915=y
CONFIG_DRM_QXL=y
CONFIG_DRM_BOCHS=y
CONFIG_DRM_VIRTIO_GPU=y
CONFIG_FB_VESA=y
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_INPUT=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_EXT4_FS=y
CONFIG_FUSE_FS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_SQUASHFS=y
CONFIG_UNWINDER_FRAME_POINTER=y
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
set -e
BOARD_DIR=$(dirname "$0")
# Detect boot strategy, EFI or BIOS
if [ -d "$BINARIES_DIR/efi-part/" ]; then
cp -f "$BOARD_DIR/grub-efi.cfg" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg"
else
cp -f "$BOARD_DIR/grub-bios.cfg" "$TARGET_DIR/boot/grub/grub.cfg"
# Copy grub 1st stage to binaries, required for genimage
cp -f "$TARGET_DIR/lib/grub/i386-pc/boot.img" "$BINARIES_DIR"
fi
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
set -e
UUID=$(dumpe2fs "$BINARIES_DIR/rootfs.ext2" 2>/dev/null | sed -n 's/^Filesystem UUID: *\(.*\)/\1/p')
sed -i "s/UUID_TMP/$UUID/g" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg"
sed "s/UUID_TMP/$UUID/g" board/pc/genimage-efi.cfg > "$BINARIES_DIR/genimage-efi.cfg"
support/scripts/genimage.sh -c "$BINARIES_DIR/genimage-efi.cfg"
+72
View File
@@ -0,0 +1,72 @@
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 .