Fails to load compressed kernels on arm64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kexec-tools (Ubuntu) |
Fix Released
|
Medium
|
Manoj Iyer | ||
Xenial |
Fix Released
|
Medium
|
Unassigned | ||
Yakkety |
Fix Committed
|
Medium
|
Unassigned |
Bug Description
[Impact]
kexec-tools will not load a compressed kernel on arm64. Ubuntu ships compressed kernel images on arm64 starting with 16.10 (and hwe kernels for 16.04). A workaround is to manually decompress the kernel before loading it, but this is not supported by the use-kexec-
[Test Case]
ubuntu@ubuntu:~$ sudo file /boot/vmlinuz-
/boot/vmlinuz-
ubuntu@ubuntu:~$ sudo kexec -d -l /boot/vmlinuz-
arch_process_
arch_process_
arch_process_
kernel: 0xffff8ff61010 kernel_size: 0x6ee18b
get_memory_
get_memory_
get_memory_
get_memory_
image_arm64_probe: Bad arm64 image header.
elf_arm64_probe: Not an ELF executable.
image_arm64_probe: Bad arm64 image header.
Cannot determine the file type of /boot/vmlinuz-
[Regression Risk]
kexec-tools did not support arm64 until zesty so, assuming the fix is localized to arm64 code, regression risk is negligible.
description: | updated |
Changed in kexec-tools (Ubuntu): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Yakkety): | |
importance: | Undecided → Medium |
The debian/control file lists gnu-efi and libz-dev only for ia64, since amd64, and arm64 (may be other archs) also need these dependencies for it to support compressed kernel we need something like the following change for it to work on those archs.
-Build-Depends: debhelper (>= 7.0.0), dh-autoreconf, gnu-efi (>=3.0a-4)[ia64], libz-dev[ia64], po-debconf
+Build-Depends: debhelper (>= 7.0.0), dh-autoreconf, gnu-efi (>=3.0a-4)[amd64 arm64 ia64], libz-dev[amd64 arm64 ia64], po-debconf
I will upload a patch to zesty shortly.