summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Hernandez <alejandro.hernandez@linux.intel.com>2016-11-23 16:53:30 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-09 13:39:11 +0000
commit2dce2648e3d8c7c9d78a56d96be4401deccaa2f2 (patch)
tree05674a5b65771aa3c310269a58e585f8f3aeaee4
parent41137c212cbc47e382dae5ce3de4f8217c2b5c4c (diff)
downloadpoky-2dce2648e3d8c7c9d78a56d96be4401deccaa2f2.tar.gz
gummiboot: Remove/change gummiboot references with systemd-boot
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] (From OE-Core rev: f9a61d3400ad9068a6d83b8eb6aefe3098c58e68) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/fs-uuid.bbclass2
-rw-r--r--meta/classes/systemd-boot.bbclass4
-rw-r--r--meta/conf/distro/include/distro_alias.inc2
-rw-r--r--meta/lib/oeqa/controllers/masterimage.py4
-rw-r--r--meta/recipes-bsp/systemd-boot/systemd-boot_232.bb2
-rw-r--r--meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh12
-rw-r--r--meta/recipes-core/initrdscripts/files/init-install-efi.sh12
-rwxr-xr-xscripts/contrib/mkefidisk.sh26
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-efi.py22
9 files changed, 41 insertions, 45 deletions
diff --git a/meta/classes/fs-uuid.bbclass b/meta/classes/fs-uuid.bbclass
index 313c5a3597..9b53dfba7a 100644
--- a/meta/classes/fs-uuid.bbclass
+++ b/meta/classes/fs-uuid.bbclass
@@ -13,7 +13,7 @@ def get_rootfs_uuid(d):
13 bb.fatal('Could not determine filesystem UUID of %s' % rootfs) 13 bb.fatal('Could not determine filesystem UUID of %s' % rootfs)
14 14
15# Replace the special <<uuid-of-rootfs>> inside a string (like the 15# Replace the special <<uuid-of-rootfs>> inside a string (like the
16# root= APPEND string in a syslinux.cfg or gummiboot entry) with the 16# root= APPEND string in a syslinux.cfg or systemd-boot entry) with the
17# actual UUID of the rootfs. Does nothing if the special string 17# actual UUID of the rootfs. Does nothing if the special string
18# is not used. 18# is not used.
19def replace_rootfs_uuid(d, string): 19def replace_rootfs_uuid(d, string):
diff --git a/meta/classes/systemd-boot.bbclass b/meta/classes/systemd-boot.bbclass
index 60729a756c..6718783367 100644
--- a/meta/classes/systemd-boot.bbclass
+++ b/meta/classes/systemd-boot.bbclass
@@ -4,9 +4,7 @@
4 4
5# systemd-boot.bbclass - The "systemd-boot" is essentially the gummiboot merged into systemd. 5# systemd-boot.bbclass - The "systemd-boot" is essentially the gummiboot merged into systemd.
6# The original standalone gummiboot project is dead without any more 6# The original standalone gummiboot project is dead without any more
7# maintenance. As a start point, we replace all gummitboot occurrences 7# maintenance.
8# with systemd-boot in gummiboot.bbclass to have a base version of this
9# systemd-boot.bbclass.
10# 8#
11# Set EFI_PROVIDER = "systemd-boot" to use systemd-boot on your live images instead of grub-efi 9# Set EFI_PROVIDER = "systemd-boot" to use systemd-boot on your live images instead of grub-efi
12# (images built by image-live.bbclass or image-vm.bbclass) 10# (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 a59265a21e..489f5ea63d 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"
135DISTRO_PN_ALIAS_pn-gtk-engines = "Fedora=gtk2-engines OpenSuSE=gtk2-engines Ubuntu=gtk2-engines Mandriva=gtk-engines2 Debian=gtk2-engines" 135DISTRO_PN_ALIAS_pn-gtk-engines = "Fedora=gtk2-engines OpenSuSE=gtk2-engines Ubuntu=gtk2-engines Mandriva=gtk-engines2 Debian=gtk2-engines"
136DISTRO_PN_ALIAS_pn-gtk-sato-engine = "OpenedHand" 136DISTRO_PN_ALIAS_pn-gtk-sato-engine = "OpenedHand"
137DISTRO_PN_ALIAS_pn-gtk-icon-utils-native = "OSPDT" 137DISTRO_PN_ALIAS_pn-gtk-icon-utils-native = "OSPDT"
138DISTRO_PN_ALIAS_pn-gummiboot = "Debian=gummiboot Fedora=gummiboot" 138DISTRO_PN_ALIAS_pn-systemd-boot = "Ubuntu=systemd-boot Fedora=systemd-boot"
139DISTRO_PN_ALIAS_pn-hello-mod = "OE-Core" 139DISTRO_PN_ALIAS_pn-hello-mod = "OE-Core"
140DISTRO_PN_ALIAS_pn-hostap-conf = "OE-Core" 140DISTRO_PN_ALIAS_pn-hostap-conf = "OE-Core"
141DISTRO_PN_ALIAS_pn-hwlatdetect = "OSPDT" 141DISTRO_PN_ALIAS_pn-hwlatdetect = "OSPDT"
diff --git a/meta/lib/oeqa/controllers/masterimage.py b/meta/lib/oeqa/controllers/masterimage.py
index d796fc3c30..07418fcda1 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
159 self.power_cycle(self.connection) 159 self.power_cycle(self.connection)
160 160
161 161
162class GummibootTarget(MasterImageHardwareTarget): 162class SystemdbootTarget(MasterImageHardwareTarget):
163 163
164 def __init__(self, d): 164 def __init__(self, d):
165 super(GummibootTarget, self).__init__(d) 165 super(SystemdbootTarget, self).__init__(d)
166 # this the value we need to set in the LoaderEntryOneShot EFI variable 166 # this the value we need to set in the LoaderEntryOneShot EFI variable
167 # so the system boots the 'test' bootloader label and not the default 167 # so the system boots the 'test' bootloader label and not the default
168 # The first four bytes are EFI bits, and the rest is an utf-16le string 168 # The first four bytes are EFI bits, and the rest is an utf-16le string
diff --git a/meta/recipes-bsp/systemd-boot/systemd-boot_232.bb b/meta/recipes-bsp/systemd-boot/systemd-boot_232.bb
index 70366643c6..602052ca13 100644
--- a/meta/recipes-bsp/systemd-boot/systemd-boot_232.bb
+++ b/meta/recipes-bsp/systemd-boot/systemd-boot_232.bb
@@ -15,7 +15,7 @@ EXTRA_OECONF = " --enable-gnuefi \
15 --disable-manpages \ 15 --disable-manpages \
16 " 16 "
17 17
18# Imported from gummiboot recipe 18# Imported from the old gummiboot recipe
19TUNE_CCARGS_remove = "-mfpmath=sse" 19TUNE_CCARGS_remove = "-mfpmath=sse"
20COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" 20COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
21 21
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 b562109157..9c4b263d54 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
171fi 171fi
172 172
173if [ -d /run/media/$1/loader ]; then 173if [ -d /run/media/$1/loader ]; then
174 GUMMIBOOT_CFGS="/ssd/loader/entries/*.conf" 174 SYSTEMDBOOT_CFGS="/ssd/loader/entries/*.conf"
175 # copy config files for gummiboot 175 # copy config files for systemd-boot
176 cp -dr /run/media/$1/loader /ssd 176 cp -dr /run/media/$1/loader /ssd
177 # delete the install entry 177 # delete the install entry
178 rm -f /ssd/loader/entries/install.conf 178 rm -f /ssd/loader/entries/install.conf
179 # delete the initrd lines 179 # delete the initrd lines
180 sed -i "/initrd /d" $GUMMIBOOT_CFGS 180 sed -i "/initrd /d" $SYSTEMDBOOT_CFGS
181 # delete any LABEL= strings 181 # delete any LABEL= strings
182 sed -i "s/ LABEL=[^ ]*/ /" $GUMMIBOOT_CFGS 182 sed -i "s/ LABEL=[^ ]*/ /" $SYSTEMDBOOT_CFGS
183 # delete any root= strings 183 # delete any root= strings
184 sed -i "s/ root=[^ ]*/ /" $GUMMIBOOT_CFGS 184 sed -i "s/ root=[^ ]*/ /" $SYSTEMDBOOT_CFGS
185 # add the root= and other standard boot options 185 # add the root= and other standard boot options
186 sed -i "s@options *@options root=$rootfs rw $rootwait quiet @" $GUMMIBOOT_CFGS 186 sed -i "s@options *@options root=$rootfs rw $rootwait quiet @" $SYSTEMDBOOT_CFGS
187 # Add the test label 187 # Add the test label
188 echo -ne "title test\nlinux /test-kernel\noptions root=$testfs rw $rootwait quiet\n" > /ssd/loader/entries/test.conf 188 echo -ne "title test\nlinux /test-kernel\noptions root=$testfs rw $rootwait quiet\n" > /ssd/loader/entries/test.conf
189fi 189fi
diff --git a/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index ffb709c1ce..5ad3a60c05 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
245 245
246if [ -d /run/media/$1/loader ]; then 246if [ -d /run/media/$1/loader ]; then
247 rootuuid=$(blkid -o value -s PARTUUID ${rootfs}) 247 rootuuid=$(blkid -o value -s PARTUUID ${rootfs})
248 GUMMIBOOT_CFGS="/boot/loader/entries/*.conf" 248 SYSTEMDBOOT_CFGS="/boot/loader/entries/*.conf"
249 # copy config files for gummiboot 249 # copy config files for systemd-boot
250 cp -dr /run/media/$1/loader /boot 250 cp -dr /run/media/$1/loader /boot
251 # delete the install entry 251 # delete the install entry
252 rm -f /boot/loader/entries/install.conf 252 rm -f /boot/loader/entries/install.conf
253 # delete the initrd lines 253 # delete the initrd lines
254 sed -i "/initrd /d" $GUMMIBOOT_CFGS 254 sed -i "/initrd /d" $SYSTEMDBOOT_CFGS
255 # delete any LABEL= strings 255 # delete any LABEL= strings
256 sed -i "s/ LABEL=[^ ]*/ /" $GUMMIBOOT_CFGS 256 sed -i "s/ LABEL=[^ ]*/ /" $SYSTEMDBOOT_CFGS
257 # delete any root= strings 257 # delete any root= strings
258 sed -i "s/ root=[^ ]*/ /" $GUMMIBOOT_CFGS 258 sed -i "s/ root=[^ ]*/ /" $SYSTEMDBOOT_CFGS
259 # add the root= and other standard boot options 259 # add the root= and other standard boot options
260 sed -i "s@options *@options root=PARTUUID=$rootuuid rw $rootwait quiet @" $GUMMIBOOT_CFGS 260 sed -i "s@options *@options root=PARTUUID=$rootuuid rw $rootwait quiet @" $SYSTEMDBOOT_CFGS
261fi 261fi
262 262
263umount /tgt_root 263umount /tgt_root
diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
index a175895d81..800733f0af 100755
--- a/scripts/contrib/mkefidisk.sh
+++ b/scripts/contrib/mkefidisk.sh
@@ -384,7 +384,7 @@ EFIDIR="$BOOTFS_MNT/EFI/BOOT"
384cp $HDDIMG_MNT/vmlinuz $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy vmlinuz" 384cp $HDDIMG_MNT/vmlinuz $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy vmlinuz"
385# Copy the efi loader and configs (booti*.efi and grub.cfg if it exists) 385# Copy the efi loader and configs (booti*.efi and grub.cfg if it exists)
386cp -r $HDDIMG_MNT/EFI $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy EFI dir" 386cp -r $HDDIMG_MNT/EFI $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy EFI dir"
387# Silently ignore a missing gummiboot loader dir (we might just be a GRUB image) 387# Silently ignore a missing systemd-boot loader dir (we might just be a GRUB image)
388cp -r $HDDIMG_MNT/loader $BOOTFS_MNT >$OUT 2>&1 388cp -r $HDDIMG_MNT/loader $BOOTFS_MNT >$OUT 2>&1
389 389
390# Update the boot loaders configurations for an installed image 390# Update the boot loaders configurations for an installed image
@@ -410,25 +410,25 @@ if [ -e "$GRUB_CFG" ]; then
410 sed -i "s@vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $GRUB_CFG 410 sed -i "s@vmlinuz @vmlinuz root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $GRUB_CFG
411fi 411fi
412 412
413# Look for a gummiboot installation 413# Look for a systemd-boot installation
414GUMMI_ENTRIES="$BOOTFS_MNT/loader/entries" 414SYSTEMD_BOOT_ENTRIES="$BOOTFS_MNT/loader/entries"
415GUMMI_CFG="$GUMMI_ENTRIES/boot.conf" 415SYSTEMD_BOOT_CFG="$SYSTEMD_BOOT_ENTRIES/boot.conf"
416if [ -d "$GUMMI_ENTRIES" ]; then 416if [ -d "$SYSTEMD_BOOT_ENTRIES" ]; then
417 info "Configuring Gummiboot" 417 info "Configuring SystemD-boot"
418 # remove the install target if it exists 418 # remove the install target if it exists
419 rm $GUMMI_ENTRIES/install.conf >$OUT 2>&1 419 rm $SYSTEMD_BOOT_ENTRIES/install.conf >$OUT 2>&1
420 420
421 if [ ! -e "$GUMMI_CFG" ]; then 421 if [ ! -e "$SYSTEMD_BOOT_CFG" ]; then
422 echo "ERROR: $GUMMI_CFG not found" 422 echo "ERROR: $SYSTEMD_BOOT_CFG not found"
423 fi 423 fi
424 424
425 sed -i "/initrd /d" $GUMMI_CFG 425 sed -i "/initrd /d" $SYSTEMD_BOOT_CFG
426 sed -i "s@ root=[^ ]*@ @" $GUMMI_CFG 426 sed -i "s@ root=[^ ]*@ @" $SYSTEMD_BOOT_CFG
427 sed -i "s@options *LABEL=boot @options LABEL=Boot root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $GUMMI_CFG 427 sed -i "s@options *LABEL=boot @options LABEL=Boot root=$TARGET_ROOTFS ro rootwait console=ttyS0 console=tty0 @" $SYSTEMD_BOOT_CFG
428fi 428fi
429 429
430# Ensure we have at least one EFI bootloader configured 430# Ensure we have at least one EFI bootloader configured
431if [ ! -e $GRUB_CFG ] && [ ! -e $GUMMI_CFG ]; then 431if [ ! -e $GRUB_CFG ] && [ ! -e $SYSTEMD_BOOT_CFG ]; then
432 die "No EFI bootloader configuration found" 432 die "No EFI bootloader configuration found"
433fi 433fi
434 434
diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index 4adb80becc..305e910d6a 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, \
36class BootimgEFIPlugin(SourcePlugin): 36class BootimgEFIPlugin(SourcePlugin):
37 """ 37 """
38 Create EFI boot partition. 38 Create EFI boot partition.
39 This plugin supports GRUB 2 and gummiboot bootloaders. 39 This plugin supports GRUB 2 and systemd-boot bootloaders.
40 """ 40 """
41 41
42 name = 'bootimg-efi' 42 name = 'bootimg-efi'
@@ -82,7 +82,7 @@ class BootimgEFIPlugin(SourcePlugin):
82 cfg.close() 82 cfg.close()
83 83
84 @classmethod 84 @classmethod
85 def do_configure_gummiboot(cls, hdddir, creator, cr_workdir): 85 def do_configure_systemdboot(cls, hdddir, creator, cr_workdir):
86 """ 86 """
87 Create loader-specific systemd-boot/gummiboot config 87 Create loader-specific systemd-boot/gummiboot config
88 """ 88 """
@@ -98,7 +98,7 @@ class BootimgEFIPlugin(SourcePlugin):
98 loader_conf += "default boot\n" 98 loader_conf += "default boot\n"
99 loader_conf += "timeout %d\n" % bootloader.timeout 99 loader_conf += "timeout %d\n" % bootloader.timeout
100 100
101 msger.debug("Writing gummiboot config %s/hdd/boot/loader/loader.conf" \ 101 msger.debug("Writing systemd-boot config %s/hdd/boot/loader/loader.conf" \
102 % cr_workdir) 102 % cr_workdir)
103 cfg = open("%s/hdd/boot/loader/loader.conf" % cr_workdir, "w") 103 cfg = open("%s/hdd/boot/loader/loader.conf" % cr_workdir, "w")
104 cfg.write(loader_conf) 104 cfg.write(loader_conf)
@@ -109,16 +109,16 @@ class BootimgEFIPlugin(SourcePlugin):
109 if configfile: 109 if configfile:
110 custom_cfg = get_custom_config(configfile) 110 custom_cfg = get_custom_config(configfile)
111 if custom_cfg: 111 if custom_cfg:
112 # Use a custom configuration for gummiboot 112 # Use a custom configuration for systemd-boot
113 boot_conf = custom_cfg 113 boot_conf = custom_cfg
114 msger.debug("Using custom configuration file " 114 msger.debug("Using custom configuration file "
115 "%s for gummiboots's boot.conf" % configfile) 115 "%s for systemd-boots's boot.conf" % configfile)
116 else: 116 else:
117 msger.error("configfile is specified but failed to " 117 msger.error("configfile is specified but failed to "
118 "get it from %s." % configfile) 118 "get it from %s." % configfile)
119 119
120 if not custom_cfg: 120 if not custom_cfg:
121 # Create gummiboot configuration using parameters from wks file 121 # Create systemd-boot configuration using parameters from wks file
122 kernel = "/bzImage" 122 kernel = "/bzImage"
123 123
124 boot_conf = "" 124 boot_conf = ""
@@ -127,7 +127,7 @@ class BootimgEFIPlugin(SourcePlugin):
127 boot_conf += "options LABEL=Boot root=%s %s\n" % \ 127 boot_conf += "options LABEL=Boot root=%s %s\n" % \
128 (creator.rootdev, bootloader.append) 128 (creator.rootdev, bootloader.append)
129 129
130 msger.debug("Writing gummiboot config %s/hdd/boot/loader/entries/boot.conf" \ 130 msger.debug("Writing systemd-boot config %s/hdd/boot/loader/entries/boot.conf" \
131 % cr_workdir) 131 % cr_workdir)
132 cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w") 132 cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
133 cfg.write(boot_conf) 133 cfg.write(boot_conf)
@@ -149,9 +149,8 @@ class BootimgEFIPlugin(SourcePlugin):
149 try: 149 try:
150 if source_params['loader'] == 'grub-efi': 150 if source_params['loader'] == 'grub-efi':
151 cls.do_configure_grubefi(hdddir, creator, cr_workdir) 151 cls.do_configure_grubefi(hdddir, creator, cr_workdir)
152 elif source_params['loader'] == 'gummiboot' \ 152 elif source_params['loader'] == 'systemd-boot':
153 or source_params['loader'] == 'systemd-boot': 153 cls.do_configure_systemdboot(hdddir, creator, cr_workdir)
154 cls.do_configure_gummiboot(hdddir, creator, cr_workdir)
155 else: 154 else:
156 msger.error("unrecognized bootimg-efi loader: %s" % source_params['loader']) 155 msger.error("unrecognized bootimg-efi loader: %s" % source_params['loader'])
157 except KeyError: 156 except KeyError:
@@ -190,8 +189,7 @@ class BootimgEFIPlugin(SourcePlugin):
190 exec_cmd(cp_cmd, True) 189 exec_cmd(cp_cmd, True)
191 shutil.move("%s/grub.cfg" % cr_workdir, 190 shutil.move("%s/grub.cfg" % cr_workdir,
192 "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir) 191 "%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
193 elif source_params['loader'] == 'gummiboot' \ 192 elif source_params['loader'] == 'systemd-boot':
194 or source_params['loader'] == 'systemd-boot':
195 cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (bootimg_dir, hdddir) 193 cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (bootimg_dir, hdddir)
196 exec_cmd(cp_cmd, True) 194 exec_cmd(cp_cmd, True)
197 else: 195 else: