- ダメ元で Windows上で BIOS Updateツールを試してみた
20年くらい前に PCを組み立てていた頃は必要もないのにマザボメーカーのHPをチェックして BIOS更新情報があると律儀に Updateしていたが、その後 マザボの品質もアップし Windows O/Sも信頼性が向上したのか その必要性を感じなかった。
その間 BIOSはレガシーBIOSから UEFIに変わり、ブートドライブの形式も MBRから GPTに変わるなどして、BIOSへの関心もなくなって ちょっと疎遠になってしまった。
それでも頭の片隅に「最近は BIOS設定画面からでなく Windows上で BIOS更新が出来たはずだが?」と言う程度の知識があって、確認すると AMIなどのメジャーな BIOSベンダーが汎用の Windows版 BIOS更新ツールを公開している事がわかった。
幸いにして PC工房購入の 件の PCの UEFI画面を確認すると BIOSベンダーは AMIだと分かった。AMI BIOSはメジャーな BIOSで BIOSアップデート/編集の情報が多い。
この ツールを使えば もしかして UEFI設定画面に BIOSアップデートメニューのない PC工房のマザボの BIOSも Update出来るかも?
と言う一縷の望みが湧いてきて マザボを確認すると シルク印刷は 「ASRock B360M」となっているので ASRock の HPで確認すると B360M-HDV と言うマザボが写真ではほぼ同じ部品レイアウトだった。
そこでダメ元で この マザボの最新 BIOSをダウンロードしてみた。
更に AMI社の HPなどから 汎用の BIOS更新ツールをダウンロードして Windows上から実行してみると 現状のマザボ上の BIOSらしきものを HDDに読み出すことが出来たが、ASRockからダウンロートした BIOSとはサイズが違う。
当然、ASRock の Webからダウンロードした BIOSファイルを書き込みしようとしても「形式が違う」とケラれて、ファイルサイズをファイル後端から等しい位置でかつブロックの切れ目らしい部分でトリミングしてみたが、「レイアウトが違う」とケラれてしまった。
この時点でやはり無手勝流では不可能と断念。・・・それでも一縷の望みは捨てがたく検索ワードを組み替えては Webを検索しまくった。
後日追記:実は 一連の BIOS改造>Update をアップし終わってから、Windows上の コマンドプロンプトから実行する BIOS Updateツールの存在に気づいた。詳細は
こちら
- SPI Writer 購入
実は 大昔、1980年代前半に NVRAM(不揮発性RAM)の半導体製造プロセスが実用化されたとき、
その情報に飛びついて某F通という会社に仕様を提示してゴリ押しの末カスタム開発し真っ先に製品(その時はフィルムカメラで、世界初のEEPROM採用製品になった)搭載したのは私なんだが、その甲斐あって 今でも シリアル EPROMがどんなものかという概念だけは理解している。
で、そこから類推するに BIOSを記憶させている シリアルEPROMはシリアル通信ラインさえ分かれば、そこから直接読み書き出来るはず。初期の BIOSチップは DIP-8 Pinのパッケージで抜き挿し出来た記憶があるが、問題の ASRock のマザボに搭載されているチップは SOP-8 と呼ばれるハンダ直付けで取り外しは困難だと判明。
しかし 上記の B360M-HDV と言うマザボの写真を見ると、BIOSチップの近傍に 何やら BIOS_PH1と印刷された 10Pin程度のピンヘッダーがある。もしや?と思って検索すると、少なくとも ASUSのマザボにはサービス対応用に シリアルラインが Pin接続出来て、そこに SPI Writerと言う EPROMの読み書きツールを繋げば BIOSの読み書きが出来ると分かった。
しかも SPI Writerは ネット通販で 1000円程度で購入可能だった。
そう分かってしまえば、私の性格ではもう買うしかない。 という事で、問題の PC工房ブランドの BIOS書き換え記事は見つからないままに Amazonで送料込み 900円弱の SPI Writer(CH341A)を発注し入手した。
ただし、安価な CH341Aには ドライバーや読み書きのツール・ソフトは付属してこない(説明書や保証書も当然ない)。
勝手に Webで検索してダウンロードしろという姿勢で、いかにも Made in China のコピー商品&マニアのツールという感じだ。
注意しなければならないのは、こうしたマニアックなツールを Web検索してダウンロードしようとするとウィルス感染したり、危険なサイトに誘導される危険性が高いので セキュリティ対策は必須だ。
特に CH341A 関連のツールは製造元関連で中国語サイトが多く、Googleなどの安全性アイコンを頼りにするのが吉。
更に念を入れて ダウンロードしたり、解凍して動作させる時は USBメモリなどから起動できる LINUXなどの別 O/S上で行うか、作業前に O/Sパーティションのイメージを保存しておいて 作業完了後にそのイメージで書き戻せば万が一 Virus感染しても回復が可能なので万全だ。
- SPI Writer 用ユーティリティのダウンロード・セットアップ
現在入手できる殆どの安価な SPI Writerは中華メーカーによって ハードウェアコピーされたもので、使用するために必要なユーティリティはユーザーが別途<勝手に>ダウンロードすることが必要。
ただ Webで検索して見つかるダウンロードサイトは危ないサイトやファイルが多く安易にはアクセスしないほうがいい。おすすめは
ここ (直接リンクが効かなければ
ここのページの途中の図の部分をクリックして開く MEGAサイトの CH341A フォルダーの中の「NeoProgrammer_2.2.0.3.zip」をダウンロードする。
落とした zipファイルを解凍すると「CH341A Mini Programmer (Black Edition) By_NSC」というフォルダーの中に、DRVSETUP64.exe と CH341A.exe などのファイルがある。(余分な話だが NSC=National Semi Conducter ?)
まず DRVSETUP64.exe(x64 O/Sの場合) の方を実行すると USB > シリアルポート変換のドライバー類がインストールされ CH341A が使用できるようになる。
CH341A.exe の方は O/Sの言語を判別しているらしく、実行したら日本語化されていた。ただし実行中に表示されるダイアログなど一部に中国語が混入する状態だが、理解に不自由はないレベル。
- SPI Writer の接続
B360Mの SPIチップ周りのレイアウトは 図-4のようになっている。(BIOS書き換え時には CMOS電池を外す必要があるので
写真ではそれも示した。電池周りの金属の部品を黄色い ▲ の方向に爪で広げると電池は飛び出してくる。)
後先になったが、買ってから 件のマザボの PH1 Pinヘッダーと SOP-8 ICの足の導通をテスターでチェックしてみたら図-4の通りになった。(コネクタとSPIチップの向きは上の写真と同じ) この図を参考に CH341A のソケットと マザボの対応コネクタピンを接続する。
また マザボに搭載されている SPIチップには電源電圧が 5V/3.5V の物があるので、読み書きするチップに応じて CH341A 上のジャンパーピンを接続する。
(私の購入した CH341Aは購入時すでに 3.5V側のジャンパーがされていた。よほど古いマザボでない限り 5Vの SPIチップはないと思う。)
(ただし実際のマザボの回路は VDD(High)に接続された Pinがあるので導通テストではそれらの区別はつかない。
CH341A のソケットの両側には 14本の ピンがあってソケットのピンと対応しているのでこのピンを使ってもいいが、結局この Pinでは Vddピンなどが足りなかったりで、私は下の 図-5 の写真の通り DIP 8Pinの空ICソケットにジャンパー線の先を差し込んで、更にそれを CH341Aの ZIFソケットに接続した。)
このようにジャンパーワイヤを一旦空の ICソケットに刺して CH341Aの ZIFソケットに装着するようにすると、書き込み終わってこの空ソケットを ZIFソケットから抜けばそのまま PCを再起動チェックできる。(ジャンパーワイヤは垂れ下がっているが Open状態なので動作に支障はない。ただし静電気とケースなどへの短絡には注意が必要)
再装着の場合も、ZIFソケットに空ソケットを装着するだけなのでマザボや CH341A側にも余分な力も加わらず、今回のように実験で繰り返し BIOS編集しては書き込んで試すのには非常に具合がいいことに途中で気づいた。
このピンの対応で、CH341Aと B360M の PH1 ピンヘッダーを接続したのが 図-6 の写真。
(ASRock のシルク印刷の「A」の文字の下に見える SOP-8 パッケージの ICが BIOSを 記憶している SPIチップ(EPROM)。PC工房のマザボではチップの表面に BIOSバージョン?(P1.10)のラベルが貼ってあった。)
写真の状態で CH341A用の CH341A.exe を実行して「読み込み」操作をしてみると、どうやらフルサイズの BIOSがダウンロード(ダンプ)出来た様子。ファイル・サイズは 16MBになるし Binary Editorで見る限り UEFI BIOS全体がダウンロードできている様子。
一旦現状の BIOSがバックアップ出来たら、今後は仮に不正な BIOSをアップロードして起動しなくなっても 再度 元の BIOSをアップロードし直せば少なくとも現状(購入時)にはリカバリー出来るので BIOSファイルを思う存分いじり倒せる。(私にはそのつもりはないが、書き戻せばサポートも可能だろう)
ということで、本格的に BIOS改造に取り掛かることに。
(但し、一旦 BIOSを書き換えたら保証文言上は メーカー保証は受けられなくなるので真似する場合はそのつもり&自己責任で)
- CH341A による書き込み/読み出し
SPIライターCH341A を使用した読み出し/書き込み手順は、
A まず PCの電源を切る(バックパネルの電源スイッチを切るか、コンセントから抜く)。
B 次にマザボの CMOS電池を抜いて電源コンデンサのチャージが完全に抜けるまで 30秒ほど待つ。
C SPIライターを図-6の写真の通り マザボの SPI端子に接続してから SPIライターを書き換え用別 PCの USB端子に接続し、CH341A.exe などの読み出し/書き込み用実行ファイルを実行する。
① 接続したら、「検出」ボタンを押すと、赤点線のように SPIチップの品番が検出されて表示される。
ここでチップの情報が表示されなければジャンパーの接続が間違っているか SPIライターの不良、または実行ファイルが不適切ということになる。(または上記 3.項でドライバーのインストールが失敗している)
② 最初はまず現状 BIOSをバックアップするために「読み込み」ボタンを押す。16MBチップだと 5分ほどかかって終了する。
読み込みの間 ?P の部分にプログレスバーが表示される。
読み込みが終わったら、「ファイル」>「保存」で分かりやすい名前で保存する。
万が一、この後の BIOSアップデートで「起動しない」などの不具合がある場合、この保存 BIOSがあればそこに戻せるのでこの作業は重要だ。
③ 「消去」ボタンで書き込まれているデータを一旦完全に消去する。
④ 消去が完了したか確認するために「ブランク」ボタンを押してブランクチェックを行う。やはり 5分程度必要。
⑤ 「開く」ボタンまたは「ファイル > 開く」から書き込む BIOSファイルを指定してから「書き込み」ボタンを押して書き込む。5分程度必要。
⑥ 「ベリファイ」ボタンを押して、書き込んだデータを読み出して書き込みデータと照合する。5分程度必要。
書き込みが無事終わったら、CMOS電池を裏表間違えないように元通り入れ直して PCを起動すると UEFI設定画面が表示される。CMOSリセットされているので、デフォルトではない設定が必要な場合は設定し直してセーブしてから Exitで抜けて Windowsを起動すれば完了。(最初だけ 3~4回 メーカーロゴの起動画面が表示される)
③~⑥ は「自動」ボタンを押しても可能だが ②のステップは保険として必ず行うこと。
- Windows上で BIOS 書き変え
ここの一連のページをアップし終わって、しばらくしてから Win-Raid.com をうろついていて、「えっ!?」と思う情報を見つけた。
UBUツールの中に Windows上のコマンドプロンプトから BIOS更新が可能になる実行ファイル「
FPTW64.exe」があるという。
FPTW64.exe は
ここの 3.項で
説明したツールのダウンロード先からダウンロードした "Intel CSME System Tools v12 r30" を解凍した中の
"Flash Programming Tool\WIN64" フォルダーにある。(同じ名前でも CSMEバージョン毎に異なる可能性があるので "v12"の部分はチップセットに合わせる)
早速、ダウンロードしてあった UBU関連のツールの中から 件のツールを探し出して実行してみた。
手順は図の通り、
① コマンドプロンプトを立ち上げて、FPTW64.exe のあるディレクトリに CD で移動する。
② 同じディレクトリに 更新する BIOSファイルをコピーしておいて
③「
FPTW64 -bios -f biosfilename.bin」 と打ち込む (.exe はなくても可、biosfilename.bin は更新する BIOSファイル名)
結果は・・・・右図の通り 2分くらい作業が続き「
FPT Operation Successful」と表示されて、
あっさり更新できてしまった。
(結果は再起動して UEFI設定画面などで確認する)
今まで エッチラオッチラ CMOSリセットして > マザボのコネクタに SPIライターをつないで
> 別 PCで SPIライター用書き換えツールを起動して・・・とやっていたのに、このコマンドを打って、再起動するだけ・・・・実に簡単。
不良の BIOSをアップデートさえしなければ SPIライターも不要だ。(だからといって、いざ 起動しなくなってしまったら、
やはり SPIライターに頼るしかないので購入したのが無駄だったとは思わないが)
補足: 図-8 の赤点線部分から "
-bios" オプションを付けた場合書き換えられたのは SPIチップ全領域 16384KB 中 13312KB だけだとわかる。
同じ FPTW64に -I パラメータをつけて実行したのが 図-9で、この図から書き換えられたのは赤下線の BIOS領域( 300000 ー FFFFFF の 13312KB)だとわかる。
つまり先頭の DESC領域(000 - FFF)と GbE領域(1000 - 2FFF)を含む 2FFFFFFまでのエンジン領域(CSME:緑矢印)は書き換えられていない。
私はまだ実行していないが、16MB 全領域を書き換える場合 -bios オプションを付けなければいいのだろう。(後日確認予定)
>続き その2:BIOS編集