为什么英特尔微码更新在我的系统上不起作用?


8

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

相关的Ubuntu页面指出,我需要更新微代码:“从来宾和非管理程序裸机的角度来看,据我们所知,截至2月21日内核更新,Spectre和Meltdown在64位上的缓解措施只要完成系统下的所有微代码,固件和虚拟机管理程序更新,amd64,ppc64el和s390x即可完成功能。...”

我已经intel-microcodeiucode-tool安装和更新,但运行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
model name : Intel(R) Pentium(R) CPU N3700 @ 1.60GHz

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

/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没有更新的微码,这很有趣,因为Additional Drivers以前在选项卡中有一个可选的微码(2017年底);现在,没有。

编辑3:
输出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微代码没有更新,这意味着原始问题已解决,我将保持原样。

但是,我相信dmesg并且journalctl -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

1
以下是有关在debian系统上检查微代码的详细说明-list.debian.org/debian-devel/2017/06/msg00308.html。发布这些命令的输出。首先用标识您的处理器,grep name /proc/cpuinfo | sort -u并注意:“这两个列表中的某些处理器因为缺少超线程支持而不受影响。请在命令行外壳程序(例如xterm)中运行以下命令,如果hyper,则将输出一条消息。支持/启用了线程化:” grep -q '^flags.*[[:space:]]ht[[:space:]]' /proc/cpuinfo && echo "Hyper-threading is supported"
Panther

我编辑了问题。
MeltingPoint '18

sudo update-initramfs -u && sudo reboot重新启动后,您能否运行并再次检查。

1
也许在ubuntu的软件包中没有用于您的CPU的微码。运行此命令即可查看/usr/sbin/iucode_tool -tb -lS /lib/firmware/intel-ucode/*
格(Doug)

1
在“ 2017年末”中,您可能基于尝试的频谱/崩溃修复为您的CPU提供了微代码。该代码已被删除/,即该捆绑包已还原到以前的版本,而您的cpu则不需要。
doug

Answers:


4

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


2

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,这是您访问Intel Microcode Update控件的方式:

Additional Drivers.png

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

从CLI安装英特尔微码

要完全跳过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

在问题中,OP明确指出“我已安装并更新了英特尔微码和iucode工具”,因此我不确定是否有帮助。

@Panther我错过了dmesg开始写答案时最初添加的输出的功能。我将添加它。基本上,按照安装步骤执行后,dmesg输出将按预期显示。
WinEunuuchs2Unix

OP还明确指出“正在运行dmesg | grep -i微码和grep -i微码/ var / log / syslog *不返回任何内容”。我怀疑我们需要跑步sudo update-initramfs -u && sudo reboot

@Panther在我看来,微代码未正确安装。关于重启的好处。OP对此没有提及。我将监视OP未来对您在他的问题下的评论的答复。我不确定update-initramfs -u是否需要,因为这里没有列出:askubuntu.com/questions/545925/…。但是,它从来没有伤害。
WinEunuuchs2Unix

微代码通常是initramfs的一部分,并在引导过程中加载,因此,尽管没有预料到,但我建议重建initramfs作为解决OP异常情况的可能方法。如果我们知道安装了哪个微码,将会有所帮助。

2

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

参考: SecurityTeam / KnowledgeBase / SpectreAndMeltdown | Ubuntu维基

我在Ubuntu 16.04中,使用Nouveau显示驱动程序。就我而言,英特尔微码在安装新内核后被卸载。

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

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

如果您在我的地方替换了intel属性驱动程序,但仍然想要intel-microcode属性驱动程序。

英特尔发布Linux CPU微代码来修复崩溃和幽灵错误|英特尔®开发人员专区 bleepingcomputer.com

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

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

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

对我来说,我的ubuntu笔记本电脑没有问题。所以我不想冒险。我离开了Ubuntu团队,以决定系统中的最佳选择。我正在等待Ubuntu驱动程序团队的更新。


我不明白这如何回答我的问题。你可以解释吗?我已经intel-microcode安装好了。
MeltingPoint '18


更新您的内核,Ubuntu用另一种方式对其进行了修补。
Aravind


如果卸载了英特尔微码,则有2个选项。选项1)保持安全,直到ubuntu小组像我一样发布更新。或者2)您可以通过手动下载来运行自己的实验,后果自负。
Aravind
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.