Edited at

Raspberry PiでマザーボードのBIOS修復

マザーボードのBIOSをアップデートしたら起動しなくなったのでその時の修復方法。

自分の環境ではおおよそ3000円前後で必要な機材が揃いました。


起動しなくなったマザーボード

Asrock Z370 Pro4


購入したもの

・Raspberry Pi Zero WH ケースセット(マルツで2650円 ケースなしなら2000円)

・ジャンパーワイヤー メスメス(千石電商で400円)


Raspberry Pi Zero WHを選んだ理由

GPIOピンが付いている(Zeroの無印やWだと別途はんだ付けが必要)

WiFiが付いている(リモートで操作が楽)

互換機だとGPIO操作が面倒(情報があまりない)


既に持っていたが無ければ購入するもの

・8G以上のmicrosd(400円程度)

・電源用USBケーブル(microB 150円程度)


必要環境

・Raspberry Pi Zero WHをセットアップと操作をするPC

・WiFiルーター


BIOSチップの確認

目では見えない小ささの刻印。デジカメで撮影して拡大したところMX25L12873Fと判明。

IMG_0158.JPG


BIOSチップとRaspberry Pi Zero WHの接続

最初はテストクリップを用いて接続を考えていたが、マザーボードを見たらBIOSのすぐ左に接続用らしきピンがあったのでそれに接続しました。

(BIOSの左にあるPH1コネクタ)

IMG_0161.JPG

ピンアサインをネットで調べたが一切情報がない。テスターで調べたところ以下のようなピンアサインとなっているようです。

スクリーンショット 2018-12-03 0.25.14.png

参考までにMX25L12873Fのデータシート

http://www.macronix.com/Lists/Datasheet/Attachments/7396/MX25L12873F,%203V,%20128Mb,%20v1.2.pdf


マザーボードとRaspberry Piを接続

GPIOピンアサイン

Raspberry-Pi-GPIO-Layout-Model-B-Plus-rotated-2700x900-1024x341.png

17番にSIO2、VCC、SIO3を接続

19番にSI/SIO0を接続

21番にSI/SIO1を接続

23番にSCLKを接続

24番にCS#を接続

25番にGNDを接続

IMG_0939.jpeg


ROM焼き

操作はrootで。


SPIを有効にする

$raspi-config nonint do_spi 0

要再起動。raspi-configはOSのバージョンで若干の変更があるので通らなかったら調べて下さい(後述のflashromで/dev/spidev0.0のエラーが出たらSPIが有効になっていません)。


flashromをインストール

$apt install flashrom


BIOS内を消去

Erase。速度を16000に指定。

$flashrom -c MX25L12835F/MX25L12845E/MX25L12865E -E -V -p linux_spi:dev=/dev/spidev0.0,spispeed=16000


書き込み

AsrockのサイトからダウンロードしたBIOSをbios.romにmv後に以下のコマンドを実行。

$flashrom -c MX25L12835F/MX25L12845E/MX25L12865E -w bios.rom -V -p linux_spi:dev=/dev/spidev0.0,spispeed=16000

Erase/write done.

Verifying flash...

VERIFIED.

と出力されれば成功。


注意点

マザーボードのボタン電池は一応外しておきましょう。

内蔵LANのMacAdressが変わります(88-88-88-88-87-88)。

Windowsの再認証が必要となるでしょう。

たぶんシリアル番号やUUIDも飛んでいるのでWindows10でも再認証になる可能性が高いです。

flashromで以前のBIOSのバックアップを取って、新しいBIOSにバイナリエディタで書き換えれば大丈夫らしいですが、自分の時はバックアップが取れなかったので再認証となりました。


その他

違うマザーボードでもチップ名を調べてテスターがあればなんとかなります。

ピンがない場合やピンアサインを調べるのが面倒だったら、ICテストクリップで直接繋いでしまいましょう。