Intel-ucodeが更新されていませんか?ファームウェアエラー:正誤表のためTSC_DEADLINEが無効になりました。マイクロコードをバージョン以上にアップデートしてください。

Intel-ucodeが更新されていませんか?ファームウェアエラー:正誤表のためTSC_DEADLINEが無効になりました。マイクロコードをバージョン以上にアップデートしてください。

起動時に次のエラーが発生します。

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version (or later)

/boot/intel-ucode.imgのファームウェアバージョンとdmesgによって報告されたバージョンとの間に矛盾がある可能性があることがわかりました。しかし、この問題を解決する方法がわかりません。

カーネル/配布版:

# uname -a
Linux workstation 4.13.9-1-ARCH #1 SMP PREEMPT Sun Oct 22 09:07:32 CEST 2017 x86_64 GNU/Linux

CPU情報(マシンはデュアルXeonであり、各CPUには10個のコアがあり、1個のみリストされています)

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
stepping        : 1
microcode       : 0xb00001c
cpu MHz         : 2200.126
cache size      : 25600 KB
physical id     : 0
siblings        : 20
core id         : 0
cpu cores       : 10
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 20
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 intel_ppin intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts
bugs            :
bogomips        : 4402.59
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

このエントリは、intel-ucode.imgが最初にリストする2つの必須initrd行を使用していることを示しています。

# cat /boot/loader/entries/arch.conf 
title          Arch Linux
linux          /vmlinuz-linux
initrd         /intel-ucode.img
initrd         /initramfs-linux.img
options  ...

上記のアイテムを使用していることを確認してください。

# cat /boot/loader/loader.conf 
default arch

私のintel-ucode.imgファイルの日付が正確で正しい場所にあることを確認しました。

# ls -la /boot/
total 137324
drwxr-xr-x 5 root root     4096 Nov  7 02:18 .
drwxr-xr-x 1 root root      224 Oct 29 02:38 ..
drwxr-xr-x 4 root root     4096 May 16  2016 EFI
-rwxr-xr-x 1 root root 35074017 Nov  2 05:58 initramfs-linux-fallback.img
-rwxr-xr-x 1 root root 19212497 Nov  2 05:58 initramfs-linux.img
-rwxr-xr-x 1 root root 27503970 May 19  2016 initramfs-linux-lts-fallback.img
-rwxr-xr-x 1 root root 19029219 Nov  2 05:58 initramfs-linux-lts.img
-rwxr-xr-x 1 root root 21556194 May 29  2016 initramfs-linux-simple-fallback.img
-rwxr-xr-x 1 root root  6569920 May 29  2016 initramfs-linux-simple.img
-rwxr-xr-x 1 root root  1303040 Jul  9 08:15 intel-ucode.img
drwxr-xr-x 3 root root     4096 Jun 24  2016 loader
-rwxr-xr-x 1 root root  5502736 Oct 22 03:09 vmlinuz-linux
-rwxr-xr-x 1 root root  4827424 Oct 30 04:20 vmlinuz-linux-lts

dmesgはマイクロコードバージョン0xb000020(またはそれ以上)が必要で、私のバージョンは0xb00001cと言います。

# dmesg | grep microcode
[    0.000000] microcode: microcode updated early to revision 0xb00001c, date = 2016-05-20
[    0.000000] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0xb000020 (or later)
[   22.175583] microcode: sig=0x406f1, pf=0x1, revision=0xb00001c
[   22.177119] microcode: Microcode Update Driver: v2.2.

私のマイクロコードバージョンは0xb00001cであることが確認されています。

$ grep microcode /proc/cpuinfo
microcode       : 0xb00001c

しかし、iucode_tool私のファイル/boot/intel-ucode.imgにマイクロコードリビジョン0xb000021が含まれていることを示しているようです。

bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS - 
iucode_tool: system has processor(s) with signature 0x000406f1
microcode bundle 1: (stdin)
selected microcodes:
001/139: sig 0x000406f1, pf_mask 0xef, 2017-03-01, rev 0xb000021, size 26624

問題は、マイクロコードrev 0xb000021が使用されていない理由とそれを正しく「ロード」する方法です。

更新 - Jasonwryanの要求に応じて追加情報。しかし、、もともとこの質問をしてこのアップデートを提供する間に実行してpacman -Syu新しいカーネルを得ました。したがって、これは要求された情報と現在の出力です。uname -a

# pacman -Q linux intel-ucode
linux 4.13.11-1
intel-ucode 20170707-1

# uname -a
Linux workstation 4.13.11-1-ARCH #1 SMP PREEMPT Thu Nov 2 10:25:56 CET 2017 x86_64 GNU/Linux

ベストアンサー1

unameインストールされたカーネルとinitramfsがロードされていません(および出力の違いを参照)。これは、インストールされていないアップデートをpacman -Q linux実行している可能性があることを意味します。/boot

/bootchrootをインストールし、アップグレードを再度実行し、initramfsを再生成することを確認してください。/boot必要な場所にインストールするファイルをクリーンアップする必要があるかもしれません。

おすすめ記事