configs/aarch64_efi_defconfig: new defconfig
New generic defconfig for aarch64, to run on aarch64 servers compliant with EFI firmware and ACPI. This can also be tested with qemu, and is useful so that we have an arm defconfig with grub enabled. Tested with qemu 2.11.2 and AAVMF, the aarch64 virtual machine UEFI firmware. Signed-off-by: Erico Nunes <nunes.erico@gmail.com> [Thomas: extend readme.txt with more details] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
273a27804a
commit
9fb2a48959
30
board/aarch64-efi/genimage-efi.cfg
Normal file
30
board/aarch64-efi/genimage-efi.cfg
Normal file
@ -0,0 +1,30 @@
|
||||
image efi-part.vfat {
|
||||
vfat {
|
||||
file startup.nsh {
|
||||
image = "efi-part/startup.nsh"
|
||||
}
|
||||
file EFI {
|
||||
image = "efi-part/EFI"
|
||||
}
|
||||
file Image {
|
||||
image = "Image"
|
||||
}
|
||||
}
|
||||
size = 32M
|
||||
}
|
||||
|
||||
image disk.img {
|
||||
|
||||
hdimage {
|
||||
}
|
||||
|
||||
partition boot {
|
||||
partition-type = 0xEF
|
||||
image = "efi-part.vfat"
|
||||
}
|
||||
|
||||
partition root {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext2"
|
||||
}
|
||||
}
|
6
board/aarch64-efi/grub.cfg
Normal file
6
board/aarch64-efi/grub.cfg
Normal file
@ -0,0 +1,6 @@
|
||||
set default="0"
|
||||
set timeout="5"
|
||||
|
||||
menuentry "Buildroot" {
|
||||
linux /Image root=/dev/vda2 rootwait console=ttyAMA0
|
||||
}
|
5
board/aarch64-efi/post-image.sh
Executable file
5
board/aarch64-efi/post-image.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
BOARD_DIR="$(dirname $0)"
|
||||
|
||||
cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
|
34
board/aarch64-efi/readme.txt
Normal file
34
board/aarch64-efi/readme.txt
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
The aarch64_efi_defconfig allows to build a minimal Linux system that
|
||||
can boot on all AArch64 servers providing an EFI firmware and ACPI.
|
||||
|
||||
Building and booting
|
||||
====================
|
||||
|
||||
$ make aarch64_efi_defconfig
|
||||
$ make
|
||||
|
||||
The file output/images/disk.img is a complete disk image that can be
|
||||
booted, it includes the grub2 bootloader, Linux kernel and root
|
||||
filesystem.
|
||||
|
||||
Testing under Qemu
|
||||
==================
|
||||
|
||||
This image can also be tested using Qemu:
|
||||
|
||||
qemu-system-aarch64 \
|
||||
-M virt \
|
||||
-cpu cortex-a57 \
|
||||
-m 512 \
|
||||
-nographic \
|
||||
-bios </path/to/QEMU_EFI.fd> \
|
||||
-drive file=output/images/disk.img,if=none,format=raw,id=hd0 \
|
||||
-device virtio-blk-device,drive=hd0 \
|
||||
-netdev user,id=eth0 \
|
||||
-device virtio-net-device,netdev=eth0
|
||||
|
||||
Note that </path/to/QEMU_EFI.fd> needs to point to a valid aarch64 UEFI
|
||||
firmware image for qemu.
|
||||
It may be provided by your distribution as a edk2-aarch64 or AAVMF
|
||||
package, in path such as /usr/share/edk2/aarch64/QEMU_EFI.fd .
|
33
configs/aarch64_efi_defconfig
Normal file
33
configs/aarch64_efi_defconfig
Normal file
@ -0,0 +1,33 @@
|
||||
# Architecture
|
||||
BR2_aarch64=y
|
||||
|
||||
# Toolchain, required for eudev and grub
|
||||
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
|
||||
|
||||
# System
|
||||
BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
|
||||
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
|
||||
|
||||
## Required tools to create bootable media
|
||||
BR2_PACKAGE_HOST_GENIMAGE=y
|
||||
|
||||
# Bootloader
|
||||
BR2_TARGET_GRUB2=y
|
||||
BR2_TARGET_GRUB2_AARCH64_EFI=y
|
||||
|
||||
# Filesystem / image
|
||||
BR2_TARGET_ROOTFS_EXT2=y
|
||||
BR2_TARGET_ROOTFS_EXT2_4=y
|
||||
BR2_TARGET_ROOTFS_EXT2_SIZE="200M"
|
||||
# BR2_TARGET_ROOTFS_TAR is not set
|
||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/aarch64-efi/post-image.sh support/scripts/genimage.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/aarch64-efi/genimage-efi.cfg"
|
||||
|
||||
# Linux headers same as kernel, a 4.18 series
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_18=y
|
||||
|
||||
# Kernel
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.10"
|
||||
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
|
Loading…
Reference in New Issue
Block a user