The initramfs mounts efivarfs before parsing the kernel command line.
This was added so EFI metadata is available to early consumers such
as mdadm when assembling Intel VROC RAID root devices.

On systems where the real root filesystem mounts efivarfs later, the
early mount is redundant and adds work to the initramfs critical path.
Allow these systems to opt out with initramfs.efivarfs=0.

Parse the command line before deciding whether to mount efivarfs.
Keep the existing mount behavior by default for initramfs users that
need EFI variables before switch_root.

Signed-off-by: Wenwen Fu <[email protected]>
---
 .../initrdscripts/initramfs-framework/init             | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init 
b/meta/recipes-core/initrdscripts/initramfs-framework/init
index e2da3511b8..5dbf32a12d 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/init
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/init
@@ -87,10 +87,6 @@ mount -t sysfs sysfs /sys
 mount -t tmpfs tmpfs /run
 mkdir -p /run/lock
 
-if [ -d $EFI_DIR ];then
-       mount -t efivarfs none /sys/firmware/efi/efivars
-fi
-
 # populate bootparam environment
 for p in `cat /proc/cmdline`; do
        if [ -n "$quoted" ]; then
@@ -137,6 +133,12 @@ for p in `cat /proc/cmdline`; do
        fi
 done
 
+# Keep efivarfs available in the initramfs by default.  Systems which
+# provide it from the real root filesystem can opt out of the early mount.
+if [ "${bootparam_initramfs_efivarfs:-1}" != "0" ] && [ -d "$EFI_DIR" ]; then
+       mount -t efivarfs none /sys/firmware/efi/efivars
+fi
+
 # use /dev with devtmpfs
 if grep -q devtmpfs /proc/filesystems; then
        mkdir -p /dev
-- 
2.43.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#245759): 
https://lists.openembedded.org/g/openembedded-core/message/245759
Mute This Topic: https://lists.openembedded.org/mt/121239117/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to