コンピュータを診断のために製造元に送り、ビデオ出力の問題を解決しました。彼らはBIOSを更新しました。それ以来、私は
[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)
以前にインストールされたmicrocodeまたは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
このメッセージの突然の出現はかなり奇妙です。以前のファームウェアが行っていたのに対して、更新されたファームウェアはCPUのマイクロコードをアップグレードしなくなったことを示しています。奇妙な...(別の考えられるシナリオは、CPUがもともとTSC期限をまったくサポートしていなかったことで、ファームウェアがマイクロコードをTSC期限のサポートを宣言するバージョンですが、エラッタを使用不可にしています。)
いずれにしても、TSCの期限サポートは便利ですが、重要ではありません。カーネルには、計時と時限イベント処理のための精巧なフレームワークがあります。 TSCの期限は、イベント処理の1つの可能な実装ですが、それだけではありません。それをサポートするCPUでは、非常に効率的であるため、これを使用するのは良いことです。
マイクロコードをアップグレードしてTSC期限サポートを再度有効にするには、Debianのcontrib
およびnon-free
リポジトリからマイクロコード更新パッケージをインストールできます。これを行うには、/etc/apt/sources.list
を編集して、Debianリポジトリ定義にmain
、contrib
、およびnon-free
;が含まれるようにします。次に実行します
Sudo apt update
に続く
Sudo apt install intel-microcode
(Intel CPUの場合)または
Sudo apt install AMD64-microcode
(AMD CPU用)。それが完了したら、再起動すると、マイクロコードが更新されます。 TSC期限サポートが再度有効になっている場合、起動時にエラーメッセージは表示されず、tsc_deadline_timer
のflags
行に/proc/cpuinfo
が表示されます。
Debian wikiには マイクロコードの更新に関する詳細情報 があります。