それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

raspi4 が起動しなくなった(EEPROMエラー)のでなおした。

Raspi が起動しなくなった

5月某日、Raspi4を移動しようと電源を抜いた後、画面が真っ黒のまま、何も反応がなくなりました。

HDMIケーブルや端子が死んでるのかなと思い、別のRaspi4やケーブルを試したけど徒労でした。

EEPROMが壊れてました。

LEDの明滅を確認した。

RaspberryはLED点滅でエラー状況を教えてくれる。アルミケースを外して中身を取り出しLEDの点滅状況を見ることにした。

長点滅4回+短点滅5回でした。

LED 明滅とエラーの詳細。

公式サイトの記述から、長点滅4回+短点滅5回は、ファームウェアが破壊されて何もできない状況だとわかりました。

Long flashes Short flashes Status
0 3 Generic failure to boot
0 4 start*.elf not found
0 7 Kernel image not found
0 8 SDRAM failure
0 9 Insufficient SDRAM
0 10 In HALT state
2 1 Partition not FAT
2 2 Failed to read from partition
2 3 Extended partition not FAT
2 4 File signature/hash mismatch - Pi 4
3 1 SPI EEPROM error - Pi 4
3 2 SPI EEPROM is write protected - Pi 4
3 3 I2C error - Pi 4
3 4 Secure-boot configuration is not valid
4 4 Unsupported board type
4 5 Fatal firmware error
4 6 Power failure type A
4 7 Power failure type B

本体のROMが壊れたので、もうダメかもしれないと思ったが、色々と調べたらリカバリできるかもしれないと判明。

EEPROM のリカバリイメージファイルを準備する。

色々と調べたら、リカバリイメージファイルをダウンロードして書き込みすると復活可能であるという記事を見つけた

Githubにファイルがリリースされている。ここから、あえてちょっと古めのファイルを探してきてSDカードに焼き込んだ。

公式サイトによると、Raspberry Pi Image で Misc Utility Images から boot loader でSDカードを選べばいいと書いてあったけど、うまく動かなかった。(Raspberry Pi Imager で使えるのはEEPROM更新ではなく、ブート順変更なんじゃないのこれ)

EEPROM更新ではなく、Bootloader順序の修正イメージ??試したけどうまく動かなかった。

EEPROM更新は多分こっち

そして、SDカードのみが想定されていた2020 年のものを利用することにした(参考サイトが使ってたので合わせた)

Use Custom から ダウンロードしたイメージを設定してSDカードに書いた

シリアルコンソールを接続して、閲覧する。

シリアル(UART)を繋いで、状況を閲覧できるように準備して。

シリアルコンソールで更新を確認

HDMIだけでは状況が全くわからないので、SDカードを差し込むときに、UART(シリアル)で状況をモニタリングできるようにした。UARTがあるとちょっと時間がかかる更新も安心してウォッチできる。

HDMIがずっと真っ黒のままなので、UARTはかなり安心材料だった。

画面が「グリーン」になる

シリアルコンソールで、更新が確認できた頃、画面がグリーンになって、更新が成功したことを通知してくれた。

再度電源を投入した

電源を入れ直すと、無事にカラーチャートが表示されブートローダーが動作した。

起動後の処理

あとは、OSの入ったイメージファイルを用意して、ネットワーク経由でraspi-configを叩くなど、ブートローダーを最新版に更新したり、ブート順(ブートオーダ)を修正したりした。あえて古めのEEPROMを使ったので更新が必要になった。

ブートローダーの更新

sudo rpi-eeprom-update
vcgencmd bootloader_version
vcgencmd bootloader_config

故障したときの症状

画面に何も表示されない。ネットワークも点灯しない。電源は点灯する、LEDは点滅する。

焦らずに、LED点滅による状況表示を確認しよう。

SDカードからのEEPROM更新

ちょっと時間がかかるので、シリアルコンソール通信環境があれば、UARTを繋いで、状況をみていると安心できる。

画面が真っ黒のまま、緑色になるまで1分といったところか。

EEPROMが壊れた原因

壊れた原因は考えつかないですが、Raspi4のOSのログを見ていると、Apt update中に電源を抜いてたようです。もしかしてとてもレアケース?で更新中に電源切っちゃったという事故なんでしょうか。

Raspi4 はEEPROM故障率が高い?

フォーラムを見ているとRaspberry Pi 4 はFirmwareのエラー報告が多いように思います。一般普及して初心者が増えたからとも考えれますが、件数を見る限り壊れやすいのかもしれません。注意が必要です。USBメモリブートやネットワークブートなどが使えるために以前よりEEPROMが大きくなっていてエラーに遭遇しやすいのでしょうか。

参考資料