Package: intel-microcode
Version: 3.20171215.1
Severity: important
Hi,
we create an initrd for a live system that should be bootable on AMD and
Intel systems. Due to various CPU bugs, the microcode update for both
AMD and Intel should be included in the initrd. We do not want to manage
two different initrd files.
amd64-microcode and intel-microcode are installed and configured to
AMD64UCODE_INITRAMFS=early and IUCODE_TOOL_INITRAMFS=early, but only the
microcode from AMD can be seen in the initrd:
$ lsinitramfs /boot/initrd.img | head -n 10
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
.
usr
usr/lib
usr/lib/x86_64-linux-gnu
usr/lib/x86_64-linux-gnu/libsgutils2.so.2.0.0
This is probably a bug in combination with initramfs-tools:
/usr/share/initramfs-tools/hook-functions from initramfs-tools-core
provides a prepend_earlyinitramfs() function:
prepend_earlyinitramfs() {
# Sanity check
if [ ! -e "${1}" ]; then
echo "W: prepend_earlyinitramfs: arg1='${1}' does not
exist." >&2
return
fi
cat "${1}" >>"${__TMPEARLYCPIO}"
}
When amd64-microcode and intel-microcode are configured to 'early', then
the amd64-microcode hook will call prepend_earlyinitramfs() to add a
cpio archive containing kernel/x86/microcode/AuthenticAMD.bin which is
added to an empty temporary file by prepend_earlyinitramfs(). Afterwards
the intel-microcode will call prepend_earlyinitramfs() to add a cpio
archive containing kernel/x86/microcode/GenuineIntel.bin which is added
to same temporary file by prepend_earlyinitramfs(). Concatenating two
cpio archives together doesn't seem to work as expected.
Instead one cpio archive should probably created that contain
kernel/x86/microcode/AuthenticAMD.bin and
kernel/x86/microcode/GenuineIntel.bin.
--
Benjamin Drung
System Developer
Debian & Ubuntu Developer
ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin
Email: [email protected]
URL: https://www.profitbricks.de
Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss, Matthias Steinberg