ASRock マザボの BIOS改造:暫定版


関連ページへのリンク




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

  1. BIOS ファイル改造
  2. 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 がそれらの違いをバッファリングして変換している。
    そして O/Sや アプリのプログラムや設定値は HDD(SSD) に記憶されるので、通常は Windows上から実行/編集/削除などの処理が行えるが、 BIOS プログラムは BIOS Memory Chipと呼ばれる専用の小さな 不揮発性メモリーに記憶されており(更にBIOSのユーザー設定値は通称 CMOSと呼ばれる小さな One Chip CPU内の RAMに記憶されている)、アップデートなどの書き換えには専用のツールで極めて特殊な操作をする必要がある。
    更に、新しく登場した CPUなどに対応させたり、発売後の不具合に対応するために その BIOS プログラムを個人で編集・改造することは殆どないが、メーカーとしては発売後のそうした事態に対処しないと返品交換や旧式在庫が増えるので機能としては不可欠だ。
    今回 2018年購入の PC工房(iiyamaブランド=mouse computer)の PCが Sleep不具合で、 PC工房のサポートでは BIOSアップデート対応はしていないと言うことで、 やむなく個人で BIOS編集を行うことにした(現時点で この Sleep不具合が BIOS起因だという確証はないが)。
    PC使用歴 ≒40年の私でも、今まで BIOS改造なんて しようと思ったことはなく伏魔殿のような世界だと思っていたくらいで、今回初めて 一から Web検索して勉強した。
    検索結果分かったこととして BIOSアップデートに関する Web情報は多いが、BIOS改造に関する Webページは多くはないということ。 ただ、ありがたいことに 非常に詳しいページが見つかった。 ここでは このページに基づいて、PC工房(マザボは ASRock OEM)の PCの BIOSを改造した過程を具体的に紹介する。
    (但し 2021/1/4 時点では まだ実際のマザボにアップロードして確認していない。確認にはあと 2週間ほどかかるので 後日変更する可能性大
    いずれにしても BIOSに関する作業は最悪 PC起動ができなくなるリスクがある。ここでの情報に基づいて作業する場合、保証はしないので 各自の判断と責任で行ってほしい。
    )
  3. Tool の準備
  4. 上記 参考にしたページにも一部の Toolのダウンロードリンクは掲載されていない。AMI社などの開発元の意向だというから 著作権やビジネス上の理由があるんだろう。 仕方ないので Webを検索しまくって探したがどうやら このページの一番下の stasio さんの投稿で 最下行の SEE MOREの部分をクリックすると表示されるリストの中に殆どがありそう。 例えば Aptio V用 MMToolの最新バージョン MMTool Aptio 5.02.0025 については Virusの地雷を踏まないでダウンロードするのは難しそうだったが、ここのリンクからは Mega Cloud でダウンロードが出来た。(2020/12/30 時点)
  5. UBU ツールによる BIOS 改造
  6. 参考にした上記 Akiraさんのページによれば、BIOS 改造方法はいくつかあるが 多分一番簡単(と言っても環境やターゲットの MBによって結構な紆余曲折があるので 最低半日は覚悟しないと無理!)
    斜め読みした限りでは UBU(UEFI BIOS Updater) による方法が最も確実だと思われる。
    私も最終的にはこの説明に基づいて行ったので 以下 ASRock B360M の BIOS(M0.11) の改造方法の過程を具体的に説明する。


    ① ツールの準備:ダウンロード
    改造に必須なのは UBU Tool / MMTool の最新バージョンと Intel ME System Tools については 使用しているマザボの 搭載チップセットに対応したバージョン、更に 使用しているマザボの現状の BIOS ファイル(マザボメーカーの Webから入手するか SPI Writerなどで読み出す)。
    また 上記 UBU最新バージョンでは Python と言う言語ツールを別途インストールする必要があるが、それをしないためには MC_Extractor_v1.52.2_r171.rar などに含まれる MCE.exe と言う実行ファイルもあったほうがいい。
    更に改造後のチェックなどには NE Tools/UEFI Toolと呼ばれている UEFITool_NE_A58_win32.zip などの解析ツールや 場合によっては汎用の Binary Editor/ Binaryファイル比較ツールなどもあったほうがいい。 更に更に、上記 UBU などのダウンロードファイルの多くは 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フォルダーにコピーする。
    Intel ME System Tools v10.0 r8.rar を解凍して "Intel ME System Tools v10.0 r8" フォルダーのまま C:\UBU フォルダーにコピーする。
    ただし "Intel ME System Tools v10.0 r8" は B360M チップセットの場合で バージョン番号は MB の搭載チップセットによって異なるのでエラーが出たら違うバージョンで試す。
    また 改造する対象の BIOSファイルを UBUフォルダーにコピーして BIOS.bin とリネームしておく。




    ③ UBU の実行
    以下 実際の工程に従って詳しく説明するが、このツールは コマンドラインツールの BATファイルによって進行するので、画面表示が簡易的で処理前と処理後など同じ画面が表示されることが多い。
    一回処理したつもりなのに、もう一度同じような選択画面が表示されると「あれっ もとに戻った?」と勘違いし易いが、その処理を抜けて上位のルーチンに戻るにはもう一度元の画面で「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 ファイルを指定すると解析が始まり、数分かかって右図のように「続行するには何かキーを押してください」と言う指示が出る。

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



    図-3

    C. UBU.bat の図-3 のような「Main Menu」が表示されるので 「Choice:」に アップデートするコードの種類に応じた番号を入力する。 CPU Microcode の場合は「5」を入力する。
    なお実際にアップデートする CPU Microcodeは
    C:\UBU\Files\intel\mCode\ 配下のフォルダーにあり
    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 のリストが表示される。
    この画面では 念のために 「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 の更新履歴がズラーっと表示されて、最後に「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 マザボの場合はこのファイルを SPI Writerなどでマザボの BIOSメモリチップに書き込めば BIOSがアップデートできる。
    なお、CPU Microcode 以外の Disk Controller/ Video OnBoard/ Network などのファームウェアもアップデートする場合は L.項で 「0」で抜けないで Main Menu で 「1~4」 あるいは 「S」 などの該当の文字を入力すれば各ファームウェアのアップデート BIOSができる。
    しかし ASRock B360M の場合、Disk Controller は 更新ファイルが存在せず、 Video OnBord は マイナーバージョンが 「1」だけ、NetWorkはファイルが更新されたと言う表示が出たがバージョンは不明だった。
    という事で、CPU Microcode 以外はあまり変更がなさそう。



    次回は 実際にアップデートした BIOSファイルを SPI Writerでアップロードする方法をアップする予定。


    図-21

    補足1: 上記 B.項 で 「指定されたパスが見つかりません」と言うエラーが出た場合、変換途中などの bios.bin と言うファイルが UBUフォルダーに存在している可能性がある。
    この場合、 C.項以降の操作を続けても無駄になる可能性があるので、作業途中でもいいので 一旦 コマンドプロンプトを閉じて、UBUフォルダー中のこの bios.bin と言うファイルを削除してから もう一度 最初から UBU.bat を実行してみるといい。 UBU フォルダー内の MCE.db.temp MCE.py.temp  csmcore fit.dump といったファイルも新規作成されたものなので削除して構わない。



    図-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.項を実行すればいい。



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

Back to Page top

Access Counter:  総アクセス数