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が大きくなっていてエラーに遭遇しやすいのでしょうか。
参考資料
- https://www.fastoe.com/blog/rpi-4_400-eeprom-recovery-guide
- https://github.com/raspberrypi/rpi-eeprom/releases
- https://www.raspberrypi.com/documentation/computers/configuration.html#led-warning-flash-codes
- https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER
- https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#boot-diagnostics
- https://forums.raspberrypi.com/viewtopic.php?t=247064
- https://forums.raspberrypi.com/viewtopic.php?t=297487
- https://forums.raspberrypi.com/viewtopic.php?t=260382
- https://forums.raspberrypi.com/viewtopic.php?t=247724
- https://forums.raspberrypi.com/viewtopic.php?t=327278