[OE-core] [PATCH v3 1/2] gummiboot: Remove/change gummiboot references with systemd-boot
Wold, Saul
saul.wold at intel.com
Fri Dec 16 21:07:09 UTC 2016
Ping! Unfortunately this missed M1, but can we get it into M2 Early
please.
Thanks
Sau!
On Wed, 2016-11-30 at 12:00 -0600, Alejandro Hernandez wrote:
> After systemd-boot was introduced, its been tested for a while with
> no major
> issues being found until now, this patch completely replaces all
> gummiboot
> instances with systemd-boot ones, taking the next step into cleaning
> up systemd-boot/gummiboot.
>
> [YOCTO #10332]
>
> Signed-off-by: Alejandro Hernandez <alejandro.hernandez at linux.intel.c
> om>
> ---
> meta/classes/fs-uuid.bbclass | 2 +-
> meta/classes/systemd-boot.bbclass | 4 +---
> meta/conf/distro/include/distro_alias.inc | 2 +-
> meta/lib/oeqa/controllers/masterimage.py | 4 ++--
> meta/lib/oeqa/selftest/wic.py | 6 ++---
> meta/recipes-bsp/systemd-boot/systemd-boot.bb | 2 +-
> .../initrdscripts/files/init-install-efi-testfs.sh | 12 +++++-----
> .../initrdscripts/files/init-install-efi.sh | 12 +++++-----
> scripts/contrib/mkefidisk.sh | 26 +++++++++++-
> ----------
> scripts/lib/wic/plugins/source/bootimg-efi.py | 22 +++++++++---
> ------
> 10 files changed, 44 insertions(+), 48 deletions(-)
>
> diff --git a/meta/classes/fs-uuid.bbclass b/meta/classes/fs-
> uuid.bbclass
> index bd2613c..1d5d0c3 100644
> --- a/meta/classes/fs-uuid.bbclass
> +++ b/meta/classes/fs-uuid.bbclass
> @@ -13,7 +13,7 @@ def get_rootfs_uuid(d):
> bb.fatal('Could not determine filesystem UUID of %s' % rootfs)
>
> # Replace the special <<uuid-of-rootfs>> inside a string (like the
> -# root= APPEND string in a syslinux.cfg or gummiboot entry) with the
> +# root= APPEND string in a syslinux.cfg or systemd-boot entry) with
> the
> # actual UUID of the rootfs. Does nothing if the special string
> # is not used.
> def replace_rootfs_uuid(d, string):
> diff --git a/meta/classes/systemd-boot.bbclass
> b/meta/classes/systemd-boot.bbclass
> index 05244c7..3398218 100644
> --- a/meta/classes/systemd-boot.bbclass
> +++ b/meta/classes/systemd-boot.bbclass
> @@ -4,9 +4,7 @@
>
> # systemd-boot.bbclass - The "systemd-boot" is essentially the
> gummiboot merged into systemd.
> # The original standalone gummiboot project
> is dead without any more
> -# maintenance. As a start point, we replace
> all gummitboot occurrences
> -# with systemd-boot in gummiboot.bbclass to
> have a base version of this
> -# systemd-boot.bbclass.
> +# maintenance.
> #
> # Set EFI_PROVIDER = "systemd-boot" to use systemd-boot on your live
> images instead of grub-efi
> # (images built by image-live.bbclass or image-vm.bbclass)
> diff --git a/meta/conf/distro/include/distro_alias.inc
> b/meta/conf/distro/include/distro_alias.inc
> index 10efb09..9c82854 100644
> --- a/meta/conf/distro/include/distro_alias.inc
> +++ b/meta/conf/distro/include/distro_alias.inc
> @@ -135,7 +135,7 @@ DISTRO_PN_ALIAS_pn-gtk-doc = "Fedora=gtk-doc
> Ubuntu=gtk-doc"
> DISTRO_PN_ALIAS_pn-gtk-engines = "Fedora=gtk2-engines OpenSuSE=gtk2-
> engines Ubuntu=gtk2-engines Mandriva=gtk-engines2 Debian=gtk2-
> engines"
> DISTRO_PN_ALIAS_pn-gtk-sato-engine = "OpenedHand"
> DISTRO_PN_ALIAS_pn-gtk-icon-utils-native = "OSPDT"
> -DISTRO_PN_ALIAS_pn-gummiboot = "Debian=gummiboot Fedora=gummiboot"
> +DISTRO_PN_ALIAS_pn-systemd-boot = "Ubuntu=systemd-boot
> Fedora=systemd-boot"
> DISTRO_PN_ALIAS_pn-hello-mod = "OE-Core"
> DISTRO_PN_ALIAS_pn-hostap-conf = "OE-Core"
> DISTRO_PN_ALIAS_pn-hwlatdetect = "OSPDT"
> diff --git a/meta/lib/oeqa/controllers/masterimage.py
> b/meta/lib/oeqa/controllers/masterimage.py
> index 9ce3bf8..7fcbb6d 100644
> --- a/meta/lib/oeqa/controllers/masterimage.py
> +++ b/meta/lib/oeqa/controllers/masterimage.py
> @@ -159,10 +159,10 @@ class
> MasterImageHardwareTarget(oeqa.targetcontrol.BaseTarget,
> metaclass=ABCMeta
> self.power_cycle(self.connection)
>
>
> -class GummibootTarget(MasterImageHardwareTarget):
> +class SystemdbootTarget(MasterImageHardwareTarget):
>
> def __init__(self, d):
> - super(GummibootTarget, self).__init__(d)
> + super(SystemdbootTarget, self).__init__(d)
> # this the value we need to set in the LoaderEntryOneShot
> EFI variable
> # so the system boots the 'test' bootloader label and not
> the default
> # The first four bytes are EFI bits, and the rest is an utf-
> 16le string
> diff --git a/meta/lib/oeqa/selftest/wic.py
> b/meta/lib/oeqa/selftest/wic.py
> index faac11e..61081cc 100644
> --- a/meta/lib/oeqa/selftest/wic.py
> +++ b/meta/lib/oeqa/selftest/wic.py
> @@ -243,9 +243,9 @@ class Wic(oeSelfTest):
> self.assertEqual(1, len(glob(self.resultdir + "%s-*direct" %
> image)))
>
> @testcase(1349)
> - def test_mkgummidisk(self):
> - """Test creation of mkgummidisk image"""
> - image = "mkgummidisk"
> + def test_systemd-bootdisk(self):
> + """Test creation of systemd-bootdisk image"""
> + image = "systemd-bootdisk"
> self.assertEqual(0, runCmd("wic create %s -e core-image-
> minimal" \
> % image).status)
> self.assertEqual(1, len(glob(self.resultdir + "%s-*direct" %
> image)))
> diff --git a/meta/recipes-bsp/systemd-boot/systemd-boot.bb
> b/meta/recipes-bsp/systemd-boot/systemd-boot.bb
> index 7036664..602052c 100644
> --- a/meta/recipes-bsp/systemd-boot/systemd-boot.bb
> +++ b/meta/recipes-bsp/systemd-boot/systemd-boot.bb
> @@ -15,7 +15,7 @@ EXTRA_OECONF = " --enable-gnuefi \
> --disable-manpages \
> "
>
> -# Imported from gummiboot recipe
> +# Imported from the old gummiboot recipe
> TUNE_CCARGS_remove = "-mfpmath=sse"
> COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
>
> diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi-
> testfs.sh b/meta/recipes-core/initrdscripts/files/init-install-efi-
> testfs.sh
> index b562109..9c4b263 100644
> --- a/meta/recipes-core/initrdscripts/files/init-install-efi-
> testfs.sh
> +++ b/meta/recipes-core/initrdscripts/files/init-install-efi-
> testfs.sh
> @@ -171,19 +171,19 @@ if [ -f /run/media/$1/EFI/BOOT/grub.cfg ]; then
> fi
>
> if [ -d /run/media/$1/loader ]; then
> - GUMMIBOOT_CFGS="/ssd/loader/entries/*.conf"
> - # copy config files for gummiboot
> + SYSTEMDBOOT_CFGS="/ssd/loader/entries/*.conf"
> + # copy config files for systemd-boot
> cp -dr /run/media/$1/loader /ssd
> # delete the install entry
> rm -f /ssd/loader/entries/install.conf
> # delete the initrd lines
> - sed -i "/initrd /d" $GUMMIBOOT_CFGS
> + sed -i "/initrd /d" $SYSTEMDBOOT_CFGS
> # delete any LABEL= strings
> - sed -i "s/ LABEL=[^ ]*/ /" $GUMMIBOOT_CFGS
> + sed -i "s/ LABEL=[^ ]*/ /" $SYSTEMDBOOT_CFGS
> # delete any root= strings
> - sed -i "s/ root=[^ ]*/ /" $GUMMIBOOT_CFGS
> + sed -i "s/ root=[^ ]*/ /" $SYSTEMDBOOT_CFGS
> # add the root= and other standard boot options
> - sed -i "s at options *@options root=$rootfs rw $rootwait quiet @"
> $GUMMIBOOT_CFGS
> + sed -i "s at options *@options root=$rootfs rw $rootwait quiet @"
> $SYSTEMDBOOT_CFGS
> # Add the test label
> echo -ne "title test\nlinux /test-kernel\noptions root=$testfs
> rw $rootwait quiet\n" > /ssd/loader/entries/test.conf
> fi
> diff --git a/meta/recipes-core/initrdscripts/files/init-install-
> efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
> index ffb709c..5ad3a60 100644
> --- a/meta/recipes-core/initrdscripts/files/init-install-efi.sh
> +++ b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
> @@ -245,19 +245,19 @@ fi
>
> if [ -d /run/media/$1/loader ]; then
> rootuuid=$(blkid -o value -s PARTUUID ${rootfs})
> - GUMMIBOOT_CFGS="/boot/loader/entries/*.conf"
> - # copy config files for gummiboot
> + SYSTEMDBOOT_CFGS="/boot/loader/entries/*.conf"
> + # copy config files for systemd-boot
> cp -dr /run/media/$1/loader /boot
> # delete the install entry
> rm -f /boot/loader/entries/install.conf
> # delete the initrd lines
> - sed -i "/initrd /d" $GUMMIBOOT_CFGS
> + sed -i "/initrd /d" $SYSTEMDBOOT_CFGS
> # delete any LABEL= strings
> - sed -i "s/ LABEL=[^ ]*/ /" $GUMMIBOOT_CFGS
> + sed -i "s/ LABEL=[^ ]*/ /" $SYSTEMDBOOT_CFGS
> # delete any root= strings
> - sed -i "s/ root=[^ ]*/ /" $GUMMIBOOT_CFGS
> + sed -i "s/ root=[^ ]*/ /" $SYSTEMDBOOT_CFGS
> # add the root= and other standard boot options
> - sed -i "s at options *@options root=PARTUUID=$rootuuid rw $rootwait
> quiet @" $GUMMIBOOT_CFGS
> + sed -i "s at options *@options root=PARTUUID=$rootuuid rw $rootwait
> quiet @" $SYSTEMDBOOT_CFGS
> fi
>
> umount /tgt_root
> diff --git a/scripts/contrib/mkefidisk.sh
> b/scripts/contrib/mkefidisk.sh
> index a175895..800733f 100755
> --- a/scripts/contrib/mkefidisk.sh
> +++ b/scripts/contrib/mkefidisk.sh
> @@ -384,7 +384,7 @@ EFIDIR="$BOOTFS_MNT/EFI/BOOT"
> cp $HDDIMG_MNT/vmlinuz $BOOTFS_MNT >$OUT 2>&1 || error "Failed to
> copy vmlinuz"
> # Copy the efi loader and configs (booti*.efi and grub.cfg if it
> exists)
> cp -r $HDDIMG_MNT/EFI $BOOTFS_MNT >$OUT 2>&1 || error "Failed to
> copy EFI dir"
> -# Silently ignore a missing gummiboot loader dir (we might just be a
> GRUB image)
> +# Silently ignore a missing systemd-boot loader dir (we might just
> be a GRUB image)
> cp -r $HDDIMG_MNT/loader $BOOTFS_MNT >$OUT 2>&1
>
> # Update the boot loaders configurations for an installed image
> @@ -410,25 +410,25 @@ if [ -e "$GRUB_CFG" ]; then
> sed -i "s at vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait
> console=ttyS0 console=tty0 @" $GRUB_CFG
> fi
>
> -# Look for a gummiboot installation
> -GUMMI_ENTRIES="$BOOTFS_MNT/loader/entries"
> -GUMMI_CFG="$GUMMI_ENTRIES/boot.conf"
> -if [ -d "$GUMMI_ENTRIES" ]; then
> - info "Configuring Gummiboot"
> +# Look for a systemd-boot installation
> +SYSTEMD_BOOT_ENTRIES="$BOOTFS_MNT/loader/entries"
> +SYSTEMD_BOOT_CFG="$SYSTEMD_BOOT_ENTRIES/boot.conf"
> +if [ -d "$SYSTEMD_BOOT_ENTRIES" ]; then
> + info "Configuring SystemD-boot"
> # remove the install target if it exists
> - rm $GUMMI_ENTRIES/install.conf >$OUT 2>&1
> + rm $SYSTEMD_BOOT_ENTRIES/install.conf >$OUT 2>&1
>
> - if [ ! -e "$GUMMI_CFG" ]; then
> - echo "ERROR: $GUMMI_CFG not found"
> + if [ ! -e "$SYSTEMD_BOOT_CFG" ]; then
> + echo "ERROR: $SYSTEMD_BOOT_CFG not found"
> fi
>
> - sed -i "/initrd /d" $GUMMI_CFG
> - sed -i "s@ root=[^ ]*@ @" $GUMMI_CFG
> - sed -i "s at options *LABEL=boot @options LABEL=Boot
> root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @"
> $GUMMI_CFG
> + sed -i "/initrd /d" $SYSTEMD_BOOT_CFG
> + sed -i "s@ root=[^ ]*@ @" $SYSTEMD_BOOT_CFG
> + sed -i "s at options *LABEL=boot @options LABEL=Boot
> root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @"
> $SYSTEMD_BOOT_CFG
> fi
>
> # Ensure we have at least one EFI bootloader configured
> -if [ ! -e $GRUB_CFG ] && [ ! -e $GUMMI_CFG ]; then
> +if [ ! -e $GRUB_CFG ] && [ ! -e $SYSTEMD_BOOT_CFG ]; then
> die "No EFI bootloader configuration found"
> fi
>
> diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py
> b/scripts/lib/wic/plugins/source/bootimg-efi.py
> index 4adb80b..305e910 100644
> --- a/scripts/lib/wic/plugins/source/bootimg-efi.py
> +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
> @@ -36,7 +36,7 @@ from wic.utils.oe.misc import exec_cmd,
> exec_native_cmd, get_bitbake_var, \
> class BootimgEFIPlugin(SourcePlugin):
> """
> Create EFI boot partition.
> - This plugin supports GRUB 2 and gummiboot bootloaders.
> + This plugin supports GRUB 2 and systemd-boot bootloaders.
> """
>
> name = 'bootimg-efi'
> @@ -82,7 +82,7 @@ class BootimgEFIPlugin(SourcePlugin):
> cfg.close()
>
> @classmethod
> - def do_configure_gummiboot(cls, hdddir, creator, cr_workdir):
> + def do_configure_systemdboot(cls, hdddir, creator, cr_workdir):
> """
> Create loader-specific systemd-boot/gummiboot config
> """
> @@ -98,7 +98,7 @@ class BootimgEFIPlugin(SourcePlugin):
> loader_conf += "default boot\n"
> loader_conf += "timeout %d\n" % bootloader.timeout
>
> - msger.debug("Writing gummiboot config
> %s/hdd/boot/loader/loader.conf" \
> + msger.debug("Writing systemd-boot config
> %s/hdd/boot/loader/loader.conf" \
> % cr_workdir)
> cfg = open("%s/hdd/boot/loader/loader.conf" % cr_workdir,
> "w")
> cfg.write(loader_conf)
> @@ -109,16 +109,16 @@ class BootimgEFIPlugin(SourcePlugin):
> if configfile:
> custom_cfg = get_custom_config(configfile)
> if custom_cfg:
> - # Use a custom configuration for gummiboot
> + # Use a custom configuration for systemd-boot
> boot_conf = custom_cfg
> msger.debug("Using custom configuration file "
> - "%s for gummiboots's boot.conf" %
> configfile)
> + "%s for systemd-boots's boot.conf" %
> configfile)
> else:
> msger.error("configfile is specified but failed to "
> "get it from %s." % configfile)
>
> if not custom_cfg:
> - # Create gummiboot configuration using parameters from
> wks file
> + # Create systemd-boot configuration using parameters
> from wks file
> kernel = "/bzImage"
>
> boot_conf = ""
> @@ -127,7 +127,7 @@ class BootimgEFIPlugin(SourcePlugin):
> boot_conf += "options LABEL=Boot root=%s %s\n" % \
> (creator.rootdev, bootloader.append)
>
> - msger.debug("Writing gummiboot config
> %s/hdd/boot/loader/entries/boot.conf" \
> + msger.debug("Writing systemd-boot config
> %s/hdd/boot/loader/entries/boot.conf" \
> % cr_workdir)
> cfg = open("%s/hdd/boot/loader/entries/boot.conf" %
> cr_workdir, "w")
> cfg.write(boot_conf)
> @@ -149,9 +149,8 @@ class BootimgEFIPlugin(SourcePlugin):
> try:
> if source_params['loader'] == 'grub-efi':
> cls.do_configure_grubefi(hdddir, creator,
> cr_workdir)
> - elif source_params['loader'] == 'gummiboot' \
> - or source_params['loader'] == 'systemd-boot':
> - cls.do_configure_gummiboot(hdddir, creator,
> cr_workdir)
> + elif source_params['loader'] == 'systemd-boot':
> + cls.do_configure_systemdboot(hdddir, creator,
> cr_workdir)
> else:
> msger.error("unrecognized bootimg-efi loader: %s" %
> source_params['loader'])
> except KeyError:
> @@ -190,8 +189,7 @@ class BootimgEFIPlugin(SourcePlugin):
> exec_cmd(cp_cmd, True)
> shutil.move("%s/grub.cfg" % cr_workdir,
> "%s/hdd/boot/EFI/BOOT/grub.cfg" %
> cr_workdir)
> - elif source_params['loader'] == 'gummiboot' \
> - or source_params['loader'] == 'systemd-boot':
> + elif source_params['loader'] == 'systemd-boot':
> cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" %
> (bootimg_dir, hdddir)
> exec_cmd(cp_cmd, True)
> else:
> --
> 2.10.1
>
More information about the Openembedded-core
mailing list