由于勘误,TSC_DEADLINE 被禁用

RML*_*RML 20 kernel debian firmware

我将我的计算机发送给制造商进行诊断并帮助解决它遇到的视频输出问题。他们更新了 BIOS。从那时起我就得到

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)
Run Code Online (Sandbox Code Playgroud)

我之前没有安装任何微码或ucode包,而且我不习惯收到此消息。

我已经联系了制造商,他们回答说“不记得你的票号,但怀疑我们更新了 BIOS”,所以他们的帮助不大。

它启动并工作,但 TSC_DEADLINE 重要或有用吗?

我唯一能找到的是:https : //git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

但这似乎只适用于 VirtualBox,无论如何我已经在运行内核 4.14,所以我想如果该提交要解决我的问题,它已经存在。

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-amd64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 20

这条消息的突然出现很奇怪;它表明您更新的固件不再升级您的 CPU 的微码,而您之前拥有的固件却升级了。奇怪...(另一种可能的情况是,你的CPU本来不支持TSC期限可言,你的固件已升级其微到宣布为TSC期限支持一个版本,但有勘误表使之无用。)

在任何情况下,TSC 截止日期支持都很好,但并不重要。内核有一个精心设计的计时和定时事件处理框架;TSC 截止日期是事件处理的一种可能实现,但不是唯一的一种。在支持它的 CPU 上,虽然它很好,因为它非常有效。

要升级您的微码并希望重新启用 TSC 截止日期支持,您可以从 Debiancontrib和non-free存储库安装微码更新包。为此,请编辑您的/etc/apt/sources.list以确保您的 Debian 存储库定义包括main、contrib和non-free;然后运行

sudo apt update
Run Code Online (Sandbox Code Playgroud)

其次是

sudo apt install intel-microcode
Run Code Online (Sandbox Code Playgroud)

(对于 Intel CPU)或

sudo apt install amd64-microcode
Run Code Online (Sandbox Code Playgroud)

(对于 AMD CPU)。完成后,重新启动,您的微码应该会更新。如果TSC期限支持重新启用,你不会看到错误消息,在启动时,你会看到tsc_deadline_timer在flags的线/proc/cpuinfo。

Debian wiki 有更多关于微码更新的信息。