Fixes [YOCTO 2257]
GPT partitions are common for EFI systems. Add support for them by
including the part_gpt partition module in the grub-efi image. In
order to allow for loading a Linux kernel from an EXT* filesystem,
include the ext2 module as well.
With this fix applied, I was able to boot from a USB key using a
GPT partition table with the following layout:
$ sudo gdisk -l /dev/sdc
GPT fdisk (gdisk) version 0.8.2
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sdc:
7669824 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID):
68FA7CD4-E0C3-4A8E-82B5-
1331C9B17A3C
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is
7669790
Partitions will be aligned on 2-sector boundaries
Total free space is
7428816 sectors (3.5 GiB)
Number Start (sector) End (sector) Size Code Name
1 34 32801 16.0 MiB 0700 # FAT16
2 32802 240974 101.6 MiB 0700 # EXT3
From within GRUB, booted as bootia32.efi from the BOOT partition, I
booted the OS with the following commands:
grub> linux (hd0,gpt2)/vmlinuz rootwait root=/dev/sda2 console=ttyS0,115200
grub> boot
This change will enable BSP developers to use the grub-efi image in
their own images as well as enable upcoming changes to the installer
to support EFI.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Kishore Bodke <kishore.k.bodke@intel.com>
CC: Rahul Saxena <rahul.saxena@intel.com>
# FIXME: We should be able to optionally drop freetype as a dependency
DEPENDS = "help2man-native autogen-native"
RDEPENDS_${PN} = "diffutils freetype"
-PR = "r5"
+PR = "r6"
# Native packages do not normally rebuild when the target changes.
# Ensure this is built once per HOST-TARGET pair.
do_mkimage() {
./grub-mkimage -p /EFI/BOOT -d ./grub-core/ \
-O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE} \
- boot linux fat serial part_msdos normal efi_gop
+ boot linux ext2 fat serial part_msdos part_gpt normal efi_gop
}
addtask mkimage after do_compile before do_install