I've rebooted the server multiple times for kernel updates, but the microcode doesn't update. I've tried manually initiating it with echo 1 > /sys/devices/system/cpu/microcode/reload
, etc. steps.
needrestart
keeps telling me
The currently running processor microcode revision is 0xb4 which is not the expected microcode revision 0xb8.
dmesg
says
[ 0.000000] microcode: microcode updated early to revision 0xb4, date = 2019-04-01
[ 4.287003] microcode: sig=0x906e9, pf=0x2, revision=0xb4
[ 4.323918] microcode: Microcode Update Driver: v2.2.
(There are no other messages before that first one in unfiltered dmesg
output, so no clues as to why it's loading an old one.)
apt list --all-versions intel-microcode
says
intel-microcode/bionic-updates,bionic-security,now 3.20190618.0ubuntu0.18.04.1 amd64 [installed]
intel-microcode/bionic 3.20180312.0~ubuntu18.04.1 amd64
None of the manual upgrade steps showed an error, so I'm guessing that if there is one, it's written somewhere else at boot time.
Results of iucode-tool
showing both 0xb4 and 0xb8, but also 0xae (which was absent from any prior messages):
selected microcodes:
031/001: sig 0x000906e9, pf_mask 0x2a, 2019-04-01, rev 0x00b4, size 99328
073/001: sig 0x000906ea, pf_mask 0x22, 2019-04-01, rev 0x00b4, size 98304
001/001: sig 0x000906eb, pf_mask 0x02, 2019-04-01, rev 0x00b4, size 99328
048/001: sig 0x000906ec, pf_mask 0x22, 2019-02-14, rev 0x00ae, size 98304
024/001: sig 0x000906ed, pf_mask 0x22, 2019-03-17, rev 0x00b8, size 97280
run as root:
iucode_tool -Sl /lib/firmware/intel-ucode
It will tell you which microcode updates are installed, and might be usable on a system "like yours". Search 0x906e9 in them.
Or do:
iucode_tool -s 0x906e9 -l /lib/firmware/intel-ucode
And check the version of the ucode it finds.
On the latest release of the Debian/Ubuntu microcode packages, it will be
0xb4
, I have no idea where whatever tells you it should be0xb8
is getting that information.