summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/wic/plugins/source/bootimg-efi.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
index 634a808d78..70c55ce2f0 100644
--- a/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -220,6 +220,8 @@ class BootimgEFIPlugin(SourcePlugin):
220 cls.do_configure_grubefi(hdddir, creator, cr_workdir, source_params) 220 cls.do_configure_grubefi(hdddir, creator, cr_workdir, source_params)
221 elif source_params['loader'] == 'systemd-boot': 221 elif source_params['loader'] == 'systemd-boot':
222 cls.do_configure_systemdboot(hdddir, creator, cr_workdir, source_params) 222 cls.do_configure_systemdboot(hdddir, creator, cr_workdir, source_params)
223 elif source_params['loader'] == 'uefi-kernel':
224 return
223 else: 225 else:
224 raise WicError("unrecognized bootimg-efi loader: %s" % source_params['loader']) 226 raise WicError("unrecognized bootimg-efi loader: %s" % source_params['loader'])
225 except KeyError: 227 except KeyError:
@@ -385,6 +387,28 @@ class BootimgEFIPlugin(SourcePlugin):
385 for mod in [x for x in os.listdir(kernel_dir) if x.startswith("systemd-")]: 387 for mod in [x for x in os.listdir(kernel_dir) if x.startswith("systemd-")]:
386 cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, mod[8:]) 388 cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, mod[8:])
387 exec_cmd(cp_cmd, True) 389 exec_cmd(cp_cmd, True)
390 elif source_params['loader'] == 'uefi-kernel':
391 kernel = get_bitbake_var("KERNEL_IMAGETYPE")
392 if not kernel:
393 raise WicError("Empty KERNEL_IMAGETYPE %s\n" % target)
394 target = get_bitbake_var("TARGET_SYS")
395 if not target:
396 raise WicError("Unknown arch (TARGET_SYS) %s\n" % target)
397
398 if re.match("x86_64", target):
399 kernel_efi_image = "bootx64.efi"
400 elif re.match('i.86', target):
401 kernel_efi_image = "bootia32.efi"
402 elif re.match('aarch64', target):
403 kernel_efi_image = "bootaa64.efi"
404 elif re.match('arm', target):
405 kernel_efi_image = "bootarm.efi"
406 else:
407 raise WicError("UEFI stub kernel is incompatible with target %s" % target)
408
409 for mod in [x for x in os.listdir(kernel_dir) if x.startswith(kernel)]:
410 cp_cmd = "cp %s/%s %s/EFI/BOOT/%s" % (kernel_dir, mod, hdddir, kernel_efi_image)
411 exec_cmd(cp_cmd, True)
388 else: 412 else:
389 raise WicError("unrecognized bootimg-efi loader: %s" % 413 raise WicError("unrecognized bootimg-efi loader: %s" %
390 source_params['loader']) 414 source_params['loader'])