wic/bootimg-efi: allow multiple initrd

Allow plugin bootimg-efi to configure with multiple initrd
through source parameter.

Uses ; to separate each initrd.

e.g:
--sourceparams="loader=${EFI_PROVIDER},initrd=initrd1;initrd2"

(From OE-Core rev: c7b0823f9ab6a9959aaa809b8c3f70d199feb64d)

Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chee Yang Lee 2019-06-19 16:41:09 +08:00 committed by Richard Purdie
parent ad636b5061
commit fc0c36a647

View File

@ -55,8 +55,10 @@ class BootimgEFIPlugin(SourcePlugin):
if not bootimg_dir:
raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir)
exec_cmd(cp_cmd, True)
initrds = initrd.split(';')
for rd in initrds:
cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
exec_cmd(cp_cmd, True)
else:
logger.debug("Ignoring missing initrd")
@ -84,7 +86,11 @@ class BootimgEFIPlugin(SourcePlugin):
% (kernel, label_conf, bootloader.append)
if initrd:
grubefi_conf += "initrd /%s\n" % initrd
initrds = initrd.split(';')
grubefi_conf += "initrd"
for rd in initrds:
grubefi_conf += " /%s" % rd
grubefi_conf += "\n"
grubefi_conf += "}\n"
@ -119,8 +125,10 @@ class BootimgEFIPlugin(SourcePlugin):
if not bootimg_dir:
raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting")
cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir)
exec_cmd(cp_cmd, True)
initrds = initrd.split(';')
for rd in initrds:
cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir)
exec_cmd(cp_cmd, True)
else:
logger.debug("Ignoring missing initrd")
@ -164,7 +172,9 @@ class BootimgEFIPlugin(SourcePlugin):
(label_conf, bootloader.append)
if initrd:
boot_conf += "initrd /%s\n" % initrd
initrds = initrd.split(';')
for rd in initrds:
boot_conf += "initrd /%s\n" % rd
logger.debug("Writing systemd-boot config "
"%s/hdd/boot/loader/entries/boot.conf", cr_workdir)