大昔に買ったChromebox、ASUS CN60(Celeron!!)という化石にProxmoxを入れているが、UEFI更新後の再起動中に電源を切断してしまった、ヤッチマッタ。
UEFI更新後の再起動時には、黒画面のまま数分処理が行われるため、事前に警告が表示される。けど何を思ったか途中で電源を落としてしまった。
当然UEFIが立ち上がらなくなり、化石から文鎮に変化してしまった。どうやら復旧にはファームウェアが格納されたチップに書き込まないといけないらしい。
必要なモノ
CH341A USB Programmer (以降、プログラマー)
SOP8 Clip
前者は、USBとクリップの橋渡し、後者はクリップとチップの橋渡し。このために買いました。
手順
基本的に以下の手順を踏襲した形とはなり、Linux PCで作業を実施する。
とはいえども、メインPCはWindowsなので、めんどくさい…WSLでやっていくのでその忘備録。
WSLは以下のとおり進めるとインストールできる。今回はOracleLinux 9.1を使用する。
Ⅰ.CN60を御開帳、チップを発見
CN60は結構Chromeboxの先駆けといったところかな、分解記事は結構出てくる。
Haswellだしもう需要ほぼなさそうだよね。SkyLakeおじさんではなく、Haswellひいおじい(?)
ほこりがヤバすぎてモザイクするが、CPUファンの下にいるwinbondの25Q64FVSIGが今回の主役です。
Ⅱ. uebipdをインストール
WSLからは通常USBデバイスを扱えないが、それを実現するためのソフト。
1.以下から、usbipd-win_<version>.msiを落としてインストール。今回は4.3.0を使用。
2.PowerShellを管理者権限で開き、以下を実行すると、接続されているデバイスが表示される。
usbipd list
接続してあるプログラマーは、USB-EPP…として表示されている。(黄文字)
3.以下を実行すると、プログラマーがWSLにパススルーされる。
usbipd bind --busid <BUSID>
usbipd attach --wsl --busid <BUSID>
これで、WSLからデバイスを扱えるので、前述のサイトの手順どおりに実行できるはず。
Ⅲ.UEFIダウンロード、書き込み
1.WSLで以下を実行すると、接続されているチップが表示される。
sudo flashrom -p ch341a_spi
WinbondのW25Q64というのがしっかりと認識されている。
2.では、以下のコマンドでUEFIのファームウェアを落として、しっかり検証しよう。
以下から選ぶ、CN60は”coreboot_edk2-panther-mrchromebox_20240914.rom”
wget https://mrchromebox.tech/files/firmware/full_rom/<coreboot>.rom
wget https://mrchromebox.tech/files/firmware/full_rom/<coreboot>.rom.sha1
sha1sum -c <coreboot>.rom.sha1
※チップからMACアドレスやHWIDを抽出しないと、書き込み時に消えてしまうらしい。
ただ、何回やっても以下か表示されてうまくいかないので、中身がぶっ壊れているのかも・・・
E: This is a legacy image that contains only a CBFS
E: The image will be left unmodified.
3.ただ、以下のコマンドを実行することで、MACアドレスを手動で書き込むこともできる。
wget https://mrchromebox.tech/files/util/vpd.tar.gz
tar zxf vpd.tar.gz
./vpd -f <coreboot>.rom -i RO_VPD -O
./vpd -f coreboot.rom -i RO_VPD -s "ethernet_mac"="<MAC>"
4.以下のコマンドを実行すると、いざ書き込み開始。クリップの接触はシビアなので動かさぬよう…
sudo flashrom -p ch341a_spi -w <coreboot>.rom --ifd -i bios
黄文字がでてきたら、書き込み後の検証が終わった状態。自分は横着なのでそのままプログラマーを引っこ抜いた。
息を吹き返した
おー無事生還、Celeronにこんな労力かけていいものか…N100とか同程度の消費電力で数倍高性能。
省電力なのでバックアップ用途のNASとしてこき使っていく!あと10年はよろしく。
コメント