アップデート一覧に戻る
New releaseAug 11, 2026

Intel-Linux-Processor-Microcode-Data-Files microcode-20260811

Linuxシステム上でプロセッサファームウェアを更新し、セキュリティ脆弱性を緩和して機能上の問題に対処するための、公式Intelマイクロコードデータファイル。

共有

Linux 用 Intel プロセッサー・マイクロコード・パッケージ

概要

Intel Processor Microcode Update (MCU) パッケージは、セキュリティ勧告および機能上の問題(エラッタを含む)に関する更新をリリースするためのメカニズムを提供します。さらに、MCU は、(SGX 機能をサポートするプロセッサー上で)SGX エンクレーブの起動、複雑な動作(アシストなど)の実装なども担当します。MCU を適用する推奨方法は、システム BIOS を使用することです。Intel プロセッサーの一部では、オペレーティング・システムを使用して実行時に MCU を更新することもできます。ここで共有されている Intel マイクロコード・パッケージには、OS による MCU のロードをサポートするプロセッサー向けの更新が含まれています。

マイクロコードを更新する理由

マイクロコードを更新すると、CPU の特定の潜在的なセキュリティ脆弱性を軽減し、また、例えばハング、クラッシュ、予期しない再起動、データエラーなどの予測不能なシステム動作を引き起こす可能性のある特定の機能上の問題に対処するのに役立ちます。Intel プロセッサーへの MCU の適用の詳細については、マイクロコード更新ガイダンス を参照してください。

マイクロコード更新のロード

このパッケージは、Linux ディストリビューターが OS リリースに含めるために提供されています。Intel は、OS ベンダーの更新メカニズムを使用して最新の MCU を入手することを推奨します。良い出発点は、OS およびソフトウェア・ベンダー です。エキスパート・ユーザーは、OS ベンダーのメカニズムの外でマイクロコードを直接更新できます。ただし、この方法は複雑であり、誤って実行するとエラーが発生する可能性があります。そのようなエラーには、システムのフリーズ、起動不能、パフォーマンスへの影響、論理プロセッサーが異なる更新をロードすること、一部の更新が有効にならないことなどが含まれますが、これらに限定されません。そのため、この方法はエキスパート・ユーザーのみが試す必要があります。

MCU は BIOS からロードするのが最適です。特定の MCU は BIOS からのみ適用する必要があります。そのような MCU は、OS 配布に適していないため、このパッケージには決して含まれません。OEM は、BIOS に含めるために、このパッケージに含まれるもののスーパーセットであるマイクロコード更新パッケージを受け取る場合があります。

OS ベンダーは、カーネルが早期ロードのために使用できる MCU を提供することを選択できます。例えば、Linux はカーネル起動シーケンスの非常に早い段階で MCU を適用できます。BIOS 更新が利用できない状況では、早期ロードがプロセッサー・マイクロコードを更新する次の最良の代替手段です。マイクロコードの状態は電源リセットによりリセットされるため、起動プロセス中に毎回 MCU をロードする必要があります。

推奨事項

initrd メソッドを使用して MCU をロードすることをお勧めします。このメソッドは、最も広いカバレッジを得るために最も早い時点で MCU をロードするためです。ダウンタイムに耐えられないシステムは、遅延ロード・メソッドを使用して、再起動せずに実行中のシステムを更新できます。

Processor Signature、Family、Model、Stepping、Platform ID について

Processor Signature は、Intel プロセッサーのモデルとバージョンを識別する番号です。これは、CPUID 命令lscpu コマンド、または /proc/cpuinfo の内容から取得できます。通常は、Family、Model、Stepping の 3 つのフィールドとして表示されます。

例えば、プロセッサーが CPUID 命令 から "0x000906eb" という値を返す場合:

ReservedExtended FamilyExtended ModelReservedProcessor TypeFamily CodeModel NumberStepping ID
31:2827:2019:1615:1413:1211:87:43:0
xxxx00000000b1001bxx00b0110b1110b1011b

対応する Linux 形式のファイル名は "06-9e-0b" になります。ここで:

  • Extended Family + Family = 0x06
  • Extended Model + Model Number = 0x9e
  • Stepping ID = 0xb

プロセッサーは複数のプラットフォーム・タイプ向けに実装される場合があります。Intel プロセッサーは、MSR(17H) に最大 8 タイプのプラットフォーム・タイプを指定する 3 ビットの Platform ID フィールドを持っています。指定されたプロセッサー・モデル用の MCU ファイルは、複数のプラットフォームをサポートする場合があります。MCU によってサポートされる Platform ID は 8 ビットのマスクであり、各セット・ビットは MCU がサポートするプラットフォーム・タイプを示します。プロセッサーの Platform ID は、Linux では msr-tools の rdmsr を使用して読み取ることができます。

マイクロコード更新手順

intel-ucode ディレクトリには、family-model-stepping 形式で名前が付けられたバイナリ MCU ファイルが含まれています。このファイル形式は、ほとんどの最新の Linux ディストリビューションでサポートされています。通常は /lib/firmware ディレクトリに配置され、以下の遅延ロード更新手順に従ってマイクロコード再ロード・インターフェースを介して更新できます。

早期ロード更新

早期ロード initrd を更新するには、早期ロード用に MCU ファイルをパッケージ化する方法について Linux ディストリビューションに確認してください。一部のディストリビューションは update-initramfs または dracut を使用します。以下の遅延ロード手順を試みる前に、OS ベンダー推奨の方法を使用して、早期ロード用に MCU ファイルが更新されていることを確認してください。

遅延ロード更新

システムの intel-ucode パッケージを更新するには:

  1. /sys/devices/system/cpu/microcode/reload の存在を確認します
  2. 最新のマイクロコード・ファームウェアをダウンロードします
    $ git clone https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git または
    $ wget https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/main.zip
  3. intel-ucode ディレクトリを /lib/firmware にコピーし、/lib/firmware/intel-ucode/ 内のファイルを上書きします
  4. 再ロード・インターフェースに 1 を書き込んで、マイクロコード・ファイルを再ロードします。例:
    $ echo 1 > /sys/devices/system/cpu/microcode/reload
    マイクロコードの更新は、システムを再起動せずに自動的に適用されます。
  5. 既存の initramfs を更新して、次回カーネル経由でロードされるようにします:
    $ sudo update-initramfs -u
    $ sudo reboot
  6. 起動時、または echo コマンドによる再ロードでマイクロコードが更新されたことを確認します:
    $ dmesg | grep microcode または
    $ cat /proc/cpuinfo | grep microcode | sort | uniq

OS ベンダーの方法を使用して MCU を適用している場合、上記の手順は更新プロセス中に自動的に実行されている可能性があります。

intel-ucode-with-caveats ディレクトリには、特別な処理が必要な MCU が含まれています。BDX-ML MCU は、Linux カーネルに特別なコミットが必要なため、このディレクトリに提供されています。そうしないと、更新すると予期しないシステム動作が発生する可能性があります。OS ベンダーは、BDX-ML MCU を遅延ロード用にパッケージ化する前に、linux-kernel-patches で提供されている遅延ローダー・パッチがディストリビューションに含まれていることを確認する必要があります。

linux-kernel-patches ディレクトリは、MCU の適用に関連するさまざまな問題に対処するカーネル・パッチで構成されています。

注記

  • より高い MCU バージョンにのみ更新できます(提供されている手順ではダウングレードは不可能です)
  • Family-Model-Stepping を計算するには、Linux コマンドを使用します:
    $ printf "%x\n" <number_to_convert_to_hex>
  • 更新前に MCU バージョン番号を確認する方法は複数あります。この Intel Microcode 更新リポジトリをクローンした後、以下を実行します:
    • $ iucode_tool -l intel-ucode | grep -wF sigiucode_tool パッケージが必要です)
    • $ od -t x4 <Family-Model-Stepping> は、<Family-Model-Stepping> で指定されたマイクロコード・バイナリ・ヘッダーの最初の 16 バイトを読み取ります。3 番目のブロックがマイクロコード・バージョンです。例: $ od -t x4 06-55-04
      0000000 00000001 *02000065* 09052019 00050654

ライセンス

詳細については、license ファイルを参照してください。

セキュリティ・ポリシー

詳細については、security.md ファイルを参照してください。

リリースノート

詳細については、releasenote.md ファイルを参照してください。

免責事項

インテル テクノロジーの機能と利点はシステム構成によって異なり、有効なハードウェア、ソフトウェア、またはサービスのアクティベーションが必要な場合があります。パフォーマンスはシステム構成によって異なります。システムメーカーまたは販売店にお問い合わせいただくか、www.intel.com で詳細をご確認ください。

絶対に安全な製品またはコンポーネントはありません。

ここに記載されているすべての情報は、予告なく変更されることがあります。最新のインテル製品仕様およびロードマップを入手するには、インテル担当者にお問い合わせください。

記載されている製品およびサービスには、公開されている仕様からの逸脱を引き起こす可能性があるエラッタとして知られる欠陥またはエラーが含まれる場合があります。現在の特性化済みエラッタは、リクエストに応じて入手できます。

インテルはこれらの資料を現状のまま提供し、明示的または黙示的な保証を行いません。

© Intel Corporation. Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。

*その他の名称およびブランドは、他社の所有物として主張される場合があります。

カテゴリ