Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
マイクロコードのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
マイクロコード
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:CPU]] [[de:Microcode]] [[en:Microcode]] [[es:Microcode]] [[ru:Microcode]] [[zh-CN:Microcode]] [[Wikipedia:ja:マイクロプログラム方式|プロセッサのマイクロコード]]はプロセッサのファームウェアと同種のものです。カーネルは BIOS のアップデートをすることなくプロセッサのファームウェアをアップデートすることができます。 :''マイクロコードのデータファイルには全ての Intel プロセッサのための最新のマイクロコードが定義されています。Intel はマイクロコードのアップデートをリリースすることで、それぞれのプロセッサの仕様のアプリケーションに文書化されているようにプロセッサの挙動を修正します。一般的に、このマイクロコードの更新を行うのは BIOS のアップデートによりますが、これは管理者を困らせるような羽目になることがあるのを Intel は了解しています。Linux オペレーティングシステムや VMware ESX プロダクトには起動後にマイクロコードを更新する仕組みが備わっています。例えば、Linux システムの {{ic|/etc/firmware}} ディレクトリにファイルが配置されると、オペレーティングシステムの仕組みがこのファイルを使用します。'' ~[https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23082 Intel] {{Note|Arch Linux はアップデートを処理するのに {{ic|/etc/firmware}} は使いません、代わりにファームウェアのバイナリは {{ic|/usr/lib/firmware/*.}} に作成されます。}} == マイクロコードのアップデート == Intel のプロセッサの場合、{{Pkg|intel-ucode}} をインストールしてください。 AMD のプロセッサの場合、マイクロコードのアップデートは {{Pkg|linux-firmware}} で利用することができ、このパッケージはベースシステムの一部としてインストールされます。 === Intel のマイクロコードのアップデートを有効にする === {{warning|linux 3.17-2 と linux-lts 3.14.21-2 以降から、Intel のマイクロコードのアップデートは自動では行われなくなりました。}} アップデートを有効にするにはブートローダーの設定ファイルに {{ic|/boot/intel-ucode.img}} を一番目の initrd として追加する必要があります。通常の initrd ファイルとは別に追加します。 === サンプル === ==== EFI ブートスタブ / EFI ハンドオーバー ==== 2つの {{ic|1=initrd=}} オプションを追加: {{bc|1=initrd=/intel-ucode.img initrd=/initramfs-linux.img}} ==== Gummiboot ==== {{ic|/boot/loader/entries/*.conf}} で {{ic|initrd}} オプションを二回使用: {{bc|title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options ...}} ==== rEFInd ==== 上記の EFI ブートスタブと同じように {{ic|/boot/refind_linux.conf}} のブートオプションを編集する、例: {{bc|1="Boot with standard options" "ro root=UUID=(...) quiet initrd=/intel-ucode.img initrd=/initramfs-linux.img"}} 手動で {{ic|/boot/refind.conf}} にカーネルを定義している場合はメインの部分ではなく options 行に {{ic|1=initrd=/intel-ucode.img}} や {{ic|/boot/intel-ucode.img}} を追加してください。 ==== Grub ==== Arch の開発チームが grub におけるマイクロコードのアップデートの処理を決定するまで ([https://bugs.archlinux.org/task/42354 FS#42354] を参照)、grub ユーザーはマイクロコードのアップデートの有効化に2つの選択肢が存在します。以下に記載されている二つの方法のうち、どちらか一方を選択してください。 ===== 1. grub.cfg を手動で編集 ===== 以下のように {{ic|grub.cfg}} に {{ic|/intel-ucode.img}} や {{ic|/boot/intel-ucode.img}} を手動で追加: {{bc| [...] echo 'Loading initial ramdisk ...' initrd /intel-ucode.img /initramfs-linux.img [...]}} {{Note|すべてのメニューエントリに追加してください。}} {{warning|更新があると {{ic|/usr/bin/grub-mkconfig}} によってファイルが自動的に上書きされるため、ファイルの変更は取り消されてしまいます。}} {{Tip|initramfs のパスと同じように、{{ic|/intel-ucode.img}} のパスは boot パーティションとの相対パスです。つまり別個の {{ic|/boot}} パーティションを使用する場合は {{ic|/intel-ucode.img}} を使用し、{{ic|/boot}} を分割しない場合は {{ic|/boot/intel-ucode.img}} を使用します。}} ===== 2. /etc/grub.d/10_linux を手動で編集 ===== ファームウェアイメージを検出して適切に {{ic|grub.cfg}} に書き出させるように {{ic|/etc/grub.d/10_linux}} を手動で編集してから、{{ic|grub-mkconfig -o /boot/grub/grub.cfg}} を使って {{ic|grub.cfg}} を再生成します: {{hc|/etc/grub.d/10_linux|<nowiki> if test -n "${initrd}" ; then + if test -f "${dirname}/intel-ucode.img"; then + ucode="${rel_dirname}/intel-ucode.img" + else + ucode= + fi # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - initrd ${rel_dirname}/${initrd} + initrd ${ucode} ${rel_dirname}/${initrd} EOF </nowiki>}} {{Note|このファイルに変更を加えると上流でパッケージのバージョンが上がった時に正しくインストールされない可能性があります。[[Pacnew と Pacsave ファイル]]を見て下さい。}} ==== Syslinux ==== {{ic|/boot/syslinux/syslinux.cfg}} で複数の initrd をカンマで区切って指定できます: {{bc|LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux INITRD ../intel-ucode.img,../initramfs-linux.img APPEND ...}} == 起動時にマイクロコードのアップデートがされたか確認する == マイクロコードがアップデートされたかどうか確認するには {{ic|/usr/bin/dmesg}} を使用します: {{ic|<nowiki>dmesg | grep microcode</nowiki>}}。 Intel が載っているシステムでは、マイクロコードのアップデートがされていると以下のような表示がされます: {{bc|<nowiki> [ 0.000000] CPU0 microcode updated early to revision 0x1b, date = 2014-05-29 [ 0.221951] CPU1 microcode updated early to revision 0x1b, date = 2014-05-29 [ 0.242064] CPU2 microcode updated early to revision 0x1b, date = 2014-05-29 [ 0.262349] CPU3 microcode updated early to revision 0x1b, date = 2014-05-29 [ 0.507267] microcode: CPU0 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507272] microcode: CPU1 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507276] microcode: CPU2 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507281] microcode: CPU3 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507286] microcode: CPU4 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507292] microcode: CPU5 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507296] microcode: CPU6 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507300] microcode: CPU7 sig=0x306a9, pf=0x2, revision=0x1b [ 0.507335] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba</nowiki>}} 最新のハードウェアの場合、CPU のマイクロコードアップデートが存在しないという可能性も考えられます。そのときは、以下のような出力がなされます: {{bc|<nowiki> [ 0.292893] microcode: CPU0 sig=0x306c3, pf=0x2, revision=0x1c [ 0.292899] microcode: CPU1 sig=0x306c3, pf=0x2, revision=0x1c [ 0.292906] microcode: CPU2 sig=0x306c3, pf=0x2, revision=0x1c [ 0.292912] microcode: CPU3 sig=0x306c3, pf=0x2, revision=0x1c [ 0.292956] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba</nowiki>}} AMD 環境では、マイクロコードはブートプロセスのやや後ろのほうでアップデートされます。したがって出力は以下のような感じです: {{bc|<nowiki> [ 0.807879] microcode: CPU0: patch_level=0x01000098 [ 0.807888] microcode: CPU1: patch_level=0x01000098 [ 0.807983] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba [ 16.150642] microcode: CPU0: new patch_level=0x010000c7 [ 16.150682] microcode: CPU1: new patch_level=0x010000c7</nowiki>}} {{Note|表示される日付は {{pkg|intel-ucode}} パッケージのバージョンとは対応しません。Intel がマイクロコードのアップデートを行った最後の日付が表示されます。}} == マイクロコードのアップデートができる CPU == 特定のモデルがサポートされているのかどうかは以下のリンクから Intel や AMD のサイトで確認することができます: * [http://www.amd64.org/microcode.html AMD の Operating System Research Center]。 * [https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=24290&lang=jpn Intel のダウンロードセンター]。 ==== マイクロコードのアップデートが必要かどうか確認する ==== {{AUR|iucode-tool}} を使って、使用している cpu のマイクロコードイメージが {{ic|intel-ucode.img}} に含まれているかどうか確認できます: * {{Pkg|intel-ucode}} をインストール (アップデートがあるかどうか確認するのに initrd の変更は必要ありません) * [[AUR|AUR]] から {{AUR|iucode-tool}} をインストール * {{ic|# modprobe cpuid}} * {{ic|<nowiki># bsdtar -Oxf /boot/intel-ucode.img | iucode_tool -tb -lS - </nowiki>}}<br />(マイクロコードイメージを展開して cpuid を検索します) * アップデートが存在する場合は、''selected microcodes'' の下に表示されます。 ==== カスタムカーネルで Intel のマイクロコードのロードを有効にする ==== カスタムカーネルでロードを行うには、"CPU microcode loading support" をカーネルに組み込む必要があります。モジュールとしてコンパイルしても動作しません。"Early load microcode" プロンプトが有効になるので "Y" に設定してください。 CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_INTEL_EARLY=y CONFIG_MICROCODE_EARLY=y
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
マイクロコード
に戻る。
検索
検索
マイクロコードのソースを表示
話題を追加