为什么英特尔微码更新不能在我的系统上运行?

我想升级我的系统以减轻Spectre和Meltdown漏洞利用。

相关的Ubuntu页面指出我需要更新微代码:“从客户端和非虚拟机管理程序的裸机角度来看,截至2月21日的内核更新,据我们所知,64位的Spectre和Meltdown的缓解只要系统下面的所有微码,固件和管理程序更新都完成,amd64,ppc64el和s390x就是function完备的……“

我安装并更新了intel-microcodeiucode-tool ,但运行dmesg | grep -i microcode dmesg | grep -i microcodegrep -i microcode /var/log/syslog*什么都不会让我认为cpu微码没有得到更新或者其他错误。

软件包是最新的,自上次更新以来已经重新启动。

操作系统:Lubuntu 16.04

CPU:Intel N3700(Braswell)

启用软件回购:main,universe

启用更新:xenial-security

编辑:
grep name /proc/cpuinfo | sort -u的输出 grep name /proc/cpuinfo | sort -u
model name : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz

我的处理器不是Skylake,也不是Kaby湖。

/proc/cpuinfo超线程显示为支持,但此英特尔页面表示不支持:
https://ark.intel.com/products/87261/Intel-Pentium-Processor-N3700-2M-Cache-up-to-2_40-GHz

编辑2:
我运行了sudo update-initramfs -u并重新启动。 输出仍然相同。

输出/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*

 /usr/sbin/iucode_tool: system has processor(s) with signature 0x000406c3 selected microcodes: 

似乎我的cpu没有更新的微代码,这很有意思,因为之前(2017年末) Additional Drivers选项卡中有一个可选择的微代码; 现在,没有。

编辑3:
apt list --installed | grep intel-microcode输出 – 已apt list --installed | grep intel-microcode apt list --installed | grep intel-microcode

 WARNING: apt does not have a stable CLI interface. Use with caution in scripts. intel-microcode/xenial-security,now 3.20180108.0+really20170707ubuntu16.04.1 amd64 [installed] 

编辑4:
现在我明白cpu微码没有更新,这意味着原来的问题已经解决,我会保持原样。

但是,我相信dmesgjournalctl -b仍应该输出关于微代码版本的行。
我还注意到这些启动日志从“5”开始而不是典型的1或0,并且有一个重复的错误消息使它们被截断( dmesg没有说截断,但是journalctl说有371635错过内核消息,请参阅下面)。 我暂时不理睬这个。

 March 19 06:36:40 NN systemd-journald[266]: Runtime journal (/run/log/journal/) is 8.0M, max 78.9M, 70.9M free. March 19 06:36:40 NN systemd-journald[266]: Missed 371635 kernel messages March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230 March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120 March 19 06:36:40 NN kernel: ->action(): (null) March 19 06:36:40 NN kernel: IRQ_NOPROBE set March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0 March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70, March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230 March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120 March 19 06:36:40 NN kernel: ->action(): (null) March 19 06:36:40 NN kernel: IRQ_NOPROBE set March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0 March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70, March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230 March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120 March 19 06:36:40 NN kernel: ->action(): (null) March 19 06:36:40 NN kernel: IRQ_NOPROBE set March 19 06:36:40 NN kernel: irq 115, desc: ffff9b91f5df8200, depth: 1, count: 0, unhandled: 0 March 19 06:36:40 NN kernel: ->handle_irq(): ffffffffb9ee8f70, March 19 06:36:40 NN kernel: handle_bad_irq+0x0/0x230 March 19 06:36:40 NN kernel: ->irq_data.chip(): ffffffffbb172c40, March 19 06:36:40 NN kernel: chv_gpio_irqchip+0x0/0x120 

根据/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*没有为你的cpu加载微码,因为目前没有。 这并不意味着将来不会有。 你可以放心地安装intel-microcode和iucode-tool,如果你的cpu签名有一个包含微代码的更新,那么它就会被使用。

Meltdown / Spectre Intel Microcode中的错误

2018年初英特尔微代码更新中存在一个错误,用于解决Meltdown / Spectre安全漏洞。 因此,微代码必须回滚到以前的版本。

这是我正在使用的微码(从2018年1月开始选择退出所有更新):

 $ apt list --installed | grep intel-microcode WARNING: apt does not have a stable CLI interface. Use with caution in scripts. intel-microcode/now 3.20170707.1~ubuntu16.04.0 amd64 [installed,upgradable to: 3.20180108.0+really20170707ubuntu16.04.1] 

安装英特尔微代码更新时,您将获得此版本或类似内容:

 intel-microcode/3.20180108.0+really20170707ubuntu16.04.1 

Ubuntu 16.04 LTS菜单

我不确定Lubuntu菜单结构,但对于常规Ubuntu,这是您访问英特尔微代码更新控件的方式:

Additional Drivers.png

底部选项控制英特尔微代码更新。

从CLI安装Intel Microcode

要完全跳过GUI菜单,可以从命令行安装:

 sudo apt update sudo apt install intel-microcode 

dmesg现在显示正确的输出

按照安装步骤执行后, dmesg将返回所需的输出(与您的问题不同,它不显示任何内容):

 $ dmesg | grep -i microcode [ 1.166542] microcode: sig=0x506e3, pf=0x20, revision=0xba [ 1.166993] microcode: Microcode Update Driver: v2.2. [16082.584598] microcode: microcode updated early to revision 0xba, date = 2017-04-09 

Ubuntu针对此漏洞发布了固定内核更新。 新的核心需要改变。

参考: SecurityTeam / KnowledgeBase / SpectreAndMeltdown | Ubuntu Wiki

我在Ubuntu 16.04,使用Nouveau显示驱动程序。 就我而言,在安装新内核后卸载了Intel-microcode。

英特尔发布针对幽灵漏洞安全漏洞的错误修复后立即发布此更新。

这应该可以解决您的问题。

如果你在我的位置更换了intel属性驱动程序,仍然需要intel-microcode属性驱动程序。

英特尔发布Linux CPU微代码修复Meltdown和Spectre Bugs | bleepingcomputer.com

目前,新的驱动程序不包含在Ubuntu ppa中。 用户可能必须从英特尔网站手动下载。

警告:这可能会导致Ubuntu中的驱动程序冲突或不稳定。 您必须自担风险安装它。

下载Linux处理器微代码数据文件| downloadcenter.intel.com

对我来说,我的ubuntu笔记本电脑没问题。 所以我不想承担风险。 我让Ubuntu团队决定从我的系统中做什么是最好的。 我正在等待Ubuntu驱动团队的更新。