如何恢复英特尔微码

如何恢复英特尔微码

几天前,我收到了英特尔微码的更新通知,并及时安装了更新。在此之前,我穿的是透明(冷)靴子。我的意思是,在启动过程中,错误的“^[k”字符串(不带引号)不会间歇性地自动生成。我所说的间歇​​性是指这些字符串:

  1. 会在一次(冷)启动期间出现,但不会在另一次启动期间出现;
  2. 会预先添加随机的启动文本行;
  3. 会在启动期间在随机文本行上自动生成不同数量的这些字符串。

当我使用以前的 Kubuntu 22.04.2 时,我没有遇到这种错误行为,但在当前的 Kubuntu 22.04.3 中却遇到了这种错误行为。我想知道最近的英特尔微码更新是否与此有关,因为我在该更新之前已经设法稳定了系统。

我已经执行了“apt-cache策略intel-microcode”并发现了以下内容。

$ 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

由于我怀疑微码更新可能包含对于这款 Core i3 笔记本电脑来说“太新”的代码,如何将微码恢复到版本“3.20210608.2ubuntu1 500”?

答案1

要安装版本 3.20210608.2ubuntu1,请使用以下命令指定它=

sudo apt install intel-microcode=3.20210608.2ubuntu1

微码包包含许多不同的微码更新,这些更新适用于您的CPU,具体取决于它的型号;因此,您应用的更新不太可能对您的 CPU 而言“太新”。微代码更新也不太可能导致您所描述的症状,但按照上面的方式进行恢复将允许您确定这一点,并且您始终可以升级回最新版本。

如果你想避免恢复后的未来更新,您可以保留该包:

sudo apt-mark hold intel-microcode

答案2

我的理解是,如果内核有一个,内核只会更新微代码之后与 BIOS 相比,微代码的修订版。

如果运行dmesg|grep -i microcode输出可以指示内核是否已更新微代码。

例如,Ubuntu 18.04 中的以下示例是 BIOS 的微代码版本比软件包中的Xeon E5 v3版本更早,因此内核更新了微代码,如消息所示:0x49intel-microcodemicrocode updated early to revision 0x49

$ 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.

而在应用包含微代码修订的 BIOS 更新后,0x49内核不再更新微代码:

$ dmesg|grep microcode
[    1.750130] microcode: sig=0x306f2, pf=0x1, revision=0x49
[    1.750515] microcode: Microcode Update Driver: v2.2.

即,在有问题的机器上,您应该能够判断内核是否实际上正在更新处理器的微代码。

相关内容