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: benjamin.dr...@profitbricks.com
URL: https://www.profitbricks.de

Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss, Matthias Steinberg

Reply via email to