ASRock マザボの BIOS編集:
Microcode の更新方法

Translate this page into English


関連ページへのリンク


履歴: 2021/ 1/ 4 初回アップ

  1. BIOS ファイル改造
  2. (必須ではないが、これからの作業に先立ってここのページの BIOSファイルの構成の説明を読んでおいたほうがいいかもしれない。)
    PCが電源ON後 まず実行するのは、HDD(SSD)に保存された Windows/Linuxなどの O/Sではなくて、その O/Sを起動するための BIOS(現在は UEFI) と呼ばれる F/W(ハードウェア制御用プログラム)だ。
    この BIOSと呼ばれるプログラムの動作は普段 PCユーザが目にすることは殆どないが、PCの電源ボタンを押して メーカーロゴが表示されている間に 「DEL」や 「F2」などのキーを押すと設定画面が表示されるが、この画面を表示させて ここで設定された値に基づいて PCを起動し、 多岐にわたる CPUやビデオチップ、ディスクコントローラーチップ、ネットワーク用チップなどの違いによる処理の差を変換しつつ HDD上の O/Sプログラムを起動する働きをしている最下層の(最もH/Wに近い)プログラムのことだ。
    通常 Windows O/Sや アプリはそのPCで使用している HDD/SSDがどんな I/Fかとか、CPUの種類が何で Coreがいくつあるかとか、 ビデオ回路や入出力 I/Fは何が幾つあるかなど H/W の違いを気にすることなくプログラミングしても一通りは使えるように この BIOS がそれらの違いをバッファリングして変換している。
    図-A
    そして O/Sや アプリのプログラムや設定値は HDD(SSD) に記憶されて、通常は Windows上から実行/編集/削除などの処理が行えるが、 BIOS プログラムは BIOS Memory Chip(SPI Chip = 右図)と呼ばれる専用の小さな 不揮発性メモリーに記憶されており (更にBIOSのユーザー設定値は通称 CMOSと呼ばれる小さな One Chip CPU内の RAMに記憶されて いわゆる CMOS電池でバックアップされている)、 BIOSプログラムのアップデートなどの書き換えには専用のツールで極めて特殊な操作をする必要がある。
    更に、発売後に新しく登場した CPUなどに対応させたり、不具合に対応するために その BIOS プログラムを特殊な方法でアップデートすることはあっても、 通常それらの更新用 BIOSファイルはメーカーが配布したもので、個人で BIOSファイルを編集・改造することは殆どない。
    しかし、メーカーとしては発売後のそうした事態に対処しないと返品交換や旧式在庫が増えるので機能としては不可欠だ。
    今回 2018年購入の PC工房(iiyamaブランド=mouse computer)の PCが Sleep不具合を起こして Windowsの設定をあれこれいじったが解決せず、 「BIOSアップデートしかない」という自己判断になったが、PC工房のサポートでは BIOSアップデート対応はしていないと言うことで、 やむなく個人で BIOS編集を行うことにした(その時点で この Sleep不具合が絶対に BIOS起因だという Web情報も確証もなかったが)。
    PC使用歴 ≒40年の私でも、今まで マザボメーカーの配布するファイルを使ってBIOSアップデートした経験があるものの BIOS改造なんて  しようと思ったことはなく伏魔殿のような世界だと思っていたくらいで、今回初めて 一から Web検索して勉強した。
    検索結果分かったこととして BIOSアップデートに関する Web情報は多いが、BIOS改造に関する Webページはほとんどないということ。  ただ、ありがたいことにここで使う多くのツールの開発者と支援者の英文ページと そこを参考にしたと思われる 日本語ページが見つかった。
    ただ、元の英文ページはほぼ全てのチップセットや周辺IC、CPUを網羅しているので情報量が多すぎて、実際に自分のマザボの編集・改造をしようとした途端 具体的な作業方法は何もわからず、 膨大なファイルの中から自分のマザボにはどのファイルを適用すればいいのか分からず、トライアンドエラーの繰り返しになってしまった。
    そこで同好の士のために、ここでは これらのページに基づいて、PC工房(マザボは ASRock OEM)の PCの BIOSを改造した過程をステップバイステップで具体的に紹介する。
    最初に断っておくが、ここで説明する手順は一部のDeskTop機については参考になると思われるが、Note-PCではさほど役に立たないかも知れない。
    実は これらのページを書き始めたときには、改造したBIOSで本当に PCが問題なく起動するのか、問題の Sleep不具合は解消するのか? 全く自信はなかった。 しかしその後、このページに記載したように 問題のマザボに改造した BIOSを何度かアップロードして確認し、最終的にはめでたく不具合の修正ができた
    いずれにしても BIOSに関する作業は最悪 PC起動ができなくなる・メーカー保証を受けられなくなるなどのリスクがある。
    またボードに直接手を触れることから静電気破壊の危険性もある。ここでの情報を参考に作業する場合、当然保証はしないので 各自の判断と責任で行うこと。
  3. Tool の準備
  4. 上記 参考にした日本語ページにも一部の Toolのダウンロードリンクは掲載されていない。英文ページには一応ほとんどのツールや F/Wのダウンロードリンクがあるが、 あまり分かりやすいリンクではない。
    一部のツールは AMI社などの開発元の意向で OEM向けにしか提供されていないというから 著作権やビジネス上の理由があるんだろう。
    私は最初訳がわからないまま Webを検索しまくって探したが、どうやら このページの一番下の stasio さんの投稿で 最下行の SEE MOREの部分をクリックすると表示されるリストの中に殆どがありそう。<やはり数日でページはリンク切れになった。 tweaktown.comで検索ボックスに「AptioV stasio」などと検索すると URLリストページが表示されると思う。
    例えば Aptio V用 MMToolの最新バージョン MMTool Aptio 5.02.0025 については他のリンクからは Virusの地雷を踏まないでダウンロードするのは難しそうだったが、ここのリンクからは mediafire.com でダウンロードが出来た。(2020/12/30 時点)
  5. UBU ツールによる BIOS 改造
  6. 参考にした上記 Akiraさんのページによれば、BIOS 改造方法はいくつかあるが 多分一番簡単な Microcode (と言っても環境やターゲットの MBによって結構な紆余曲折があるので) でも最低数時間は覚悟しないと無理! PMCなど Management Engine 領域内の改造では数日を要するかもしれない。(私は結局 BIOS内のほぼ全ての領域の F/Wとデータを更新するのに2ヶ月以上を要した)
    斜め読みした限りでは UBU(UEFI BIOS Updater) による方法が最も確実だと思われる。
    私も最終的にはこの説明に基づいて行ったので 以下 ASRock B360M の BIOS(M0.11) の改造方法の過程を具体的に説明する。
    その後、COFFEELAKE CPU の変換ならcoffeeTimeというツールが有ることが分かったが、microcode のアップデートについてはこちらのほうが簡単かもしれない。ただし私は coffeeTimeの方は変換しただけで マザボへのアップロードはまだ試していない。
    UBUにしろ coffeetime にしろ、実際に BIOSファイルの解析を行って module や microcode の置換を実行するのは MMTool や MCE.exe などの BIOSメーカーのアプリとなっている。


    ① ツールの準備:ダウンロード
    Microcodeの置換に必須なのは UBU Tool / MMTool の最新バージョン(Aptio IV で OROMを更新する場合と Aptio V で Microcodeを更新する場合)と Intel ME System Tools については 使用しているマザボの 搭載チップセットに対応したバージョン、更に 使用しているマザボの現状の BIOS ファイル (マザボメーカーの Webから入手するか SPI Writerなどで読み出す。 私の場合は前述のように PC工房が一切の BIOSを公開していないので、マザボから CH341Aでダンプしたファイルを使用した)。
    更に次ページの PMC(Power Management Controller)ファームウェアの改造には Imtel CSME System Tools と言うツールセットが必要になる。(詳細は次ページ参照) また 上記 UBU最新バージョンでは Python と言う言語ツールを別途インストールする必要があるが、「このためだけに Pythonをインストール?」という向きには 上記 tweaktown.com のリンク先から MC_Extractor_v1.52.2_r171.rar をダウンロードしてそこに含まれる MCE.exe と言う実行ファイルが必要。
    更に改造後のチェックなどには NE Tools/UEFI Toolと呼ばれている UEFITool_NE_A58_win32.zip などの解析/改造ツールや 場合によっては汎用の Binary Editor/ Binaryファイル比較ツールなどもあったほうがいい。 更に更に、上記 UBU などのダウンロードファイルの多くは Windowsが非対応の rar形式で圧縮されているので 7Z などの圧縮解凍ツールも必要になる。



    ② ツールの準備:解凍 > コピー > リネーム
    上記「英文ページ」のリンク先からダウンロードした UBU_v1_79_xx.rar のファイルを C:\UBU などの起動ドライブのルート配下のフォルダー(以下 UBUフォルダーと呼ぶ)に解凍する。
    同じフォルダーに MMTool 5.02.0025.rar を解凍した中身の MMTool64.exe を mmtool_a5.exe とリネームしてコピーする。
    Python をインストールしておらずインストールする気もなければ、ダウンロードした MC_Extractor_v1.52.2_r171.rar を解凍すると MC_Extractor_v1.52.2_r171 フォルダーの中に MCE.exe と言うファイルがあるので、 これも UBUフォルダー直下にコピーする。
    また 改造する対象の BIOSファイルを UBUフォルダーにコピーして BIOS.bin とリネームしておく(bios.bin が UBUフォルダーになければファイル選択画面が開くので必須ではない)。




    ③ UBU の実行
    以下 実際の工程に従って詳しく説明するが、このツールは コマンドラインツールの BATファイルによって進行するので、通常の GUIアプリと違って画面表示が簡易的で処理前と処理後など同じ画面が表示されることが多い。
    一回処理したつもりなのに、もう一度同じような選択画面が表示されると「あれっ (何も処理されないで)もとに戻った?」と勘違いし易いが、その処理を抜けて上位のルーチンに戻るにはもう一度元の画面で「Exit」などを選択する必要がある。
    私も逐一説明書に基づいて操作することは苦手だが、こうしたことから結局はこの手順通りに操作したほうが確実だ。



    図-1

    A. UBUフォルダーの中にある UBU.bat を実行する。(ダブルクリックで CMDが起動しなければ タスクバーの検索欄に "CMD" と入力して CMD.exe を選択して起動する。
    コマンドプロンプトが起動したら
    C:\WINDOWS\system32> cd c:\ubu
    C:\UBU> ubu.bat
    と打ち込んで UBU.bat を実行する。)
    上記のように UBUフォルダーに BIOS.bin と言う名前の BIOSファイルがある場合はそのまま解析が進むが、別名だったりすると 一瞬「ファイルが見つかりません」と言う表示が出るが、 直後に「アップロードの選択」というファイル指定ダイアログが開くので、改造対象の BIOSファイルを指定する。
    BIOS ファイルを指定して解析が始まっても、解析に時間がかかるので画面はすぐには変わらない。



    図-2

    B. BIOS ファイルを指定すると解析が始まり、数分かかって右図のように「続行するには何かキーを押してください」と言う指示が出る。
    ここで表示される GUID情報は マニュアルで F/Wなどをアップデートする場合に必要になるのでメモ帳にでもコピペしておくのがいいが、当面必要はない。

    補足1: 図-2 ではなく「指定されたパスが見つかりません」と言うエラーが出た場合



    図-3

    C. 図-3 のような UBU Toolの「Main Menu」が表示される。
    ここで表示されているのが、HDD/SSD制御などのディスクコントローラー・オンボードのビデオ出力用チップ・ネットワーク関連の夫々のモジュールのバージョンになる。
    microcode についてはここでは表示されないので 「Choice:」に「5」を入力する。
    なお実際にアップデートする CPU Microcodeは
    C:\UBU\Files\intel\mCode\ 配下のフォルダーにあり(Intelの場合)
    UBU_v1_79_11_fix.rar/ B360 マザボ/搭載 CPU i7 8700 で 2020年1月時点の場合には \1151v2\ フォルダー内の cpu906EA_plat22_ver000000DE_2020-05-25_PRD_76A2F81F.bin となる。
    ファイル名から 更新される Microcode は platformID: 22 CPUID code: 906EA Revision: DE だと思われる。
    (事実、更新 Microcode が表示された下記 図-10 の 906EA 欄の Revision、日付はファイル名と一致している)



    図-4

    D. MC Extractor の実行
    図-3 の Choice に「5」を入力すると 図-4 のように MC Extractor が実行され、現状の BIOS内の Microcode のリストが表示される。
    B360Mに搭載されている CPUの 906EA(Core i7-8700)場合、BIOS内の Microcodeのリビジョンは「96」で「Last」欄が「No」となっていることから最新版ではないことが分かる。
    この画面での「Last」は 実行している UBUが作成されたときに組み込まれたデータベースとの照合なので、念のために 「S」を入力して、MC Extracter内の Microcode Databaseを更新する。(インターネット接続が必要)




    図-5

    E. MC Extracter の Database が更新されて 再び 図-4 と同じ表が表示されるが、図-5 のように最下行に 更新対象の CPU ID の入力が求められるので、 合計 8桁の CPU ID を指定する。
    桁数が足りなければ左に 「0」を追加する。
    i7 8700 の場合を例にとると「000609EA」を指定する。
    各 CPU ID の Microcode の一番右の欄「Last」が 赤く「No」となっているのは、 改造しようとしている BIOSに内蔵されている Microcode(Revision: 96) がこのバージョンの UBU Toolで更新される Microcode(Revision: DE) よりも <かなり>古いリビジョンであることを示している(=更新可能)。



    図-6

    F. 対象 CPUの Microcode の更新履歴がズラーっと表示されて(ほぼ1ヶ月毎に更新されている!)、最後に「Enter」キーの入力を求められる。



    図-7

    G. Enter」を入力すると、再び 図-4 と同じ画面 が表示されるので、今度は 「Choice:」に 「C」を入力する。



    図-8

    H. 図-7 で 「Choice: 」に 「C」を入力すると MC Extracter と Database の更新が行われて MCEと DB の右端の Updated の欄が緑の 「Yes」となって表の下に「MC MC_Extractor & Database are up to date !」 と表示されたら Enter キーを押して MC Extracterの更新を抜ける。
    (ここでは MC Extracter/Database の更新が行われただけで BIOS内の Microcode はまだ更新されていない)


    補足2:右図のような表示でなく 緑色の 「Yes」の部分が 赤の 「No」で 紫色の「MC Extracter & Database are outdated!」と表示された場合



    図-9

    I. Database の更新が済んだら、 図-9 の画面に戻るが 右端の表示はまだ「No」のままなので今度は Choice: に 「F」を入力すると CPU Microcode の更新の可否がチェックされる。



    図-10

    J. 表の下に「These microcodes will be entered into your BIOS file(Microcodeが BIOSに挿入されます)」と表示され 右端欄が「Yes」になったら Choice: に A を入力して BIOS内の Microcodeを更新する。 (MMToolがある場合/なければ 「R」を入力)



    図-11

    K. 「A」(または R) を入力すると BIOS内の Microcode が新しいコードによって置き換えられて その経過が表示される。
    UBUフォルダーに MMTool の適切なバーッジョンが存在すれば 「A」が表示されるが、なければ 「R」 だけが表示される。
    (この時点で 改造されたテンポラリファイルが bios.bin と言う名前で UBUフォルダに保存される)
    最後に何かキー入力を求められる。



    図-12

    L. 再び図-4 /図-10 と同じ画面に戻るが 表のすぐ下の行が「These microcodes will be entered in your BIOS file」だったのが「These microcodes are in your BIOS Files」と変わって Revision が新しくなり、右端の「Last」が 「Yes」に変わったことを確認し、変換された BIOSを保存するために 「0」を入力して MC Extracter を抜ける。



    図-13

    M. MC Extracter を抜けると Main Menu に戻る。 改造された BIOSファイルを保存するには UBU Tool を終了するために 「0」を入力する(右図 A)と 改造 BIOSを名前を付けて保存するための選択に移る。
    続けて「Rename?:」と選択を求められる (右図 B)。
    1」を入力すると 元の BIOSファイル名の先頭に mod_ が付けられて別名保存される。
    同名ファイルが存在すると、警告が出て bios.bin と言う名前のままのファイルが残る。
    0」を入力するとテンポラリファイルの bios.bin と言うファイル名のまま保存される。



    N. 以上で CPUの Microcode を更新した改造 BIOSファイルが生成できた。
    ASRock B360Mマザボの場合は UEFIメニューに 更新ボタンはないので、このファイルをここの手順で SPI Writerを使ってマザボの SPIメモリチップに書き込めば BIOSがアップデートできる。
    なお、CPU Microcode 以外の Disk Controller/ Video OnBoard/ Network などのモジュールもアップデートする場合は、 上記 L.項で 「0」で抜けないで Main Menu で 「1~4」 あるいは 「S」 などの該当の文字を入力すれば各ファームウェアのアップデート BIOSができる。
    ただし、ダウンロードしたままのUBU ツールは、それらの多岐にわたるモジュールの更新ファイルは含んでいない。
    Disk Controller/ Video OnBoard/ Network 等の場合は、UBU実行の前に予め アップデート用のそれぞれの 更新ファイルをダウンロードして UBUフォルダーの Files\Intel 配下の該当フォルダーにコピーしておく必要がある。別ページで説明するがこれは結構面倒な作業となる。
    もう一つ、BIOSにとって重要な機能の電源管理(Intel CSME/PMC)などの ME(Management Engin)領域のコードは UBUTool / UEFIToolなどのツールではなく Flash Image Tool によってのみアップデート可能 :情報元ページ



    改造した BIOSファイルを SPI Writerでマザーボードにアップロードする方法はこちら


    図-21

    補足1: 上記 B.項 で 「指定されたパスが見つかりません」と言うエラーが出た場合、以前の変換途中などの bios.bin と言うファイルが UBUフォルダーに存在している可能性がある。
    この場合、 C.項以降の操作を続けても無駄になる可能性があるので、作業途中でもいいので 一旦 コマンドプロンプトを閉じて、UBUフォルダー中のこの bios.bin MCE.db.temp MCE.py.temp  csmcore fit.dump といったファイル、更には \tmp ファルダー内のすべてのファイル・フォルダーも UBUが BIOSファイルを読み込むたびに作成されるものなので削除するとエラーは回避される。



    図-22

    補足2: 上記 H.項 で 「MC Extracter & Database are outdated!」と紫で表示された場合、その下の行の URLをコピーしておいて 一旦 コマンドプロンプトを閉じて その URLにアクセスして MC_Extractor_v1.xx.x_rxxx.rar などというファイルをダウンロードして解凍し、その中の MCE.exe / MCE.db と言う2つのファイルを UBUフォルダーに上書きコピーして 再度コマンドプロンプトを立ち上げて、UBU.bat を実行し直す。
    立ち上げ直したら 今度は 上記 A.~C. 項の次に D.~H.項は飛ばして I.項を実行すればいい。



    >続き その3:BIOS改造(PCM F/W更新)


このページ(BIOS_edit02.html)にコメント/質問をどうぞ
タイトル(30文字以内)
コメント
お名前(ID:10文字以内)
URL(HP or ブログをお持ちの方)
パスワード*
タイトル・コメント・ID は必須です
このページ(BIOS_edit02.html)への今までのコメント/質問
このページにはまだ表示できる投稿がありません。

Back to Page top

Access Counter:  総アクセス数



WiFiがどうしてもつながらない時  by Amazon
オススメの PLCアダプタ(2個セット)