How to revert intel-microcode
A couple of days ago I received an update notification for intel-microcode and duly installed the update. Prior to that, I was getting clear (cold) boots. By this I mean that errant "^[k" strings (without quotes) were not intermittently auto-generated during the boot up process. By intermittent I mean these strings:
- would appear during one (cold) boot but not another;
- would prepend random lines of boot up text;
- would auto-generate different numbers of those strings on random text lines during the boot up.
I did not get this misbehaviour when I used the previous Kubuntu 22.04.2 but am getting this with the current Kubuntu 22.04.3. I am wondering if the recent intel-microcode update has a connection to this as I had managed to stabilise the system prior to that update.
I have preformed an "apt-cache policy intel-microcode" and found the following.
$ apt-cache policy intel-microcode
intel-microcode:
Installed: 3.20230808.0ubuntu0.22.04.1
Candidate: 3.20230808.0ubuntu0.22.04.1
Version table:
*** 3.20230808.0ubuntu0.22.04.1 500
500 http://gb.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
3.20210608.2ubuntu1 500
500 http://gb.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
How do I revert the microcode back to version "3.20210608.2ubuntu1 500" as I suspect that the microcode update may contain code that is "too new" for this Core i3 laptop?
To install version 3.20210608.2ubuntu1, specify it using =
:
sudo apt install intel-microcode=3.20210608.2ubuntu1
The microcode package contains many different microcode updates, which are applied to your CPU depending on what model it is; so it’s unlikely that you would get an update applied that’s “too new” for your CPU. It’s also unlikely that a microcode update would result in the symptoms you describe, but reverting as above will allow you to determine that and you can always upgrade back to the latest version.
If you want to avoid future updates after reverting, you can put a hold on the package:
sudo apt-mark hold intel-microcode
My understanding is that the Kernel only updates the microcode if the Kernel has a later revision of the microcode than the BIOS.
If you run dmesg|grep -i microcode
the output can indicate if the Kernel has updated the microcode.
E.g. the following example from Ubuntu 18.04 was when the BIOS had an earlier revision of the Xeon E5 v3
microcode than the revision 0x49
than in the intel-microcode
package, and so the Kernel updated the microcode as indicated by the microcode updated early to revision 0x49
message:
$ dmesg|grep -i microcode
[ 0.000000] microcode: microcode updated early to revision 0x49, date = 2021-08-11
[ 1.749574] microcode: sig=0x306f2, pf=0x1, revision=0x49
[ 1.750009] microcode: Microcode Update Driver: v2.2.
Whereas after applying a BIOS update which included microcode revision 0x49
the Kernel was no longer updating the microcode:
$ dmesg|grep microcode
[ 1.750130] microcode: sig=0x306f2, pf=0x1, revision=0x49
[ 1.750515] microcode: Microcode Update Driver: v2.2.
I.e. on the problematic machine you should be able to tell if the Kernel is actually updating the microcode for your processor.