From 1e29d77d0d33ee216b43022439876863f0db39bb Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 3 Sep 2015 20:42:32 +0200 Subject: boot loader: support root=UUID As mentioned when introducing the VM images (https://bugzilla.yoctoproject.org/show_bug.cgi?id=7374), the resulting images only work when the image is mounted as a disk that results in the hard-coded path (/dev/sda in the current default). Using the file system UUID to find the rootfs is more flexible. To enable this for boot-direct.bbclass and thus image-vm.bbclass (aka FSTYPEs vdi/vmdk/qcow2), set SYSLINUX_ROOT = "root=UUID=<>". The rootfs image must use an ext file system. The special string will get replaced in the APPEND line with the actual UUID when the boot loader (grub-efi, syslinux or gummiboot) writes the boot loader configuration files. At that time, the rootfs image has already been created and its UUID can be extracted using "tune2fs -l", which also should be available because the e2fsprogs-native tools were needed to create the image in the first place. Signed-off-by: Patrick Ohly Signed-off-by: Richard Purdie --- meta/classes/gummiboot.bbclass | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'meta/classes/gummiboot.bbclass') diff --git a/meta/classes/gummiboot.bbclass b/meta/classes/gummiboot.bbclass index dae19775c3..3d9c08bbc9 100644 --- a/meta/classes/gummiboot.bbclass +++ b/meta/classes/gummiboot.bbclass @@ -15,6 +15,9 @@ GUMMIBOOT_CFG ?= "${S}/loader.conf" GUMMIBOOT_ENTRIES ?= "" GUMMIBOOT_TIMEOUT ?= "10" +# Need UUID utility code. +inherit fs-uuid + efi_populate() { DEST=$1 @@ -108,6 +111,7 @@ python build_efi_cfg() { lb = "install-efi" entrycfg.write('options LABEL=%s ' % lb) if append: + append = replace_rootfs_uuid(d, append) entrycfg.write('%s' % append) entrycfg.write('\n') entrycfg.close() -- cgit v1.2.3