[メモ] ラズパイ4のEEPROMリカバリ


# 概要
Raspberry Pi Imagerを使うと、簡単にEEPROMリカバリ用のSDカードが作れる。



# 手順
## 準備
1. Raspberry Pi Imager を[ダウンロードサイト](https://www.raspberrypi.org/downloads/)から、入手<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/0b884802-ebf3-0e4e-135c-9e1d488efe87.png)
2. ダウンロードしたら、ダブルクリックして、インストール
3. メニューから、選択して実行<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/d446461e-4ecd-3560-2d4a-d2783a56a424.png)



## Raspberry Pi Imagerにて

1. "CHOOSE OS"をクリック<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/81bdc0a4-6528-dbb7-dc79-74fb1d81fbf3.png)
2. OSのリストが出てくるので、"Misc utility Images" から<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/d91943c5-34f3-14f1-8a43-054d67f084de.png)
3. "Raspberry Pi 4 EEPROM boot recovery" をクリック<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/e2378873-56de-3802-181b-e5796450c42b.png)
4. "CHOOSE SD"をクリックすると、<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/0e8e45bd-b501-7e53-8826-ffd0173e1def.png)
5. 書き込みできるデバイス・メディアのリストがでてくるので、該当するものをクリックして選択<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/92e4628e-1b9f-fc30-6aca-8760fb04bde9.png)
6. "WRITE"を押すと、<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/0645825f-a33b-54f6-87ae-bd904dabb80d.png)
7. 確認ダイアログが出てくるので、問題なければ、"YES"を押す<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/a2b1ee69-9ade-20f0-b3a8-2ace57d670be.png)
8. イメージのダウンロードと書き込みがされて、<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/56d5ac14-4e5e-f679-a82e-c51e1db90137.png)

9. 書き込み完了のメッセージがでたら、SD完成<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/24161b80-b556-ad43-e750-751ba90e4d25.png)

10. クローズボタンを押して終了<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75594/116e0bab-a18d-8209-ef65-0490475597e1.png)

## ラズパイにて
1. ラズパイに↑でできたmicroSDを挿して、電源オン。
2. 緑LEDがチカチカ点滅する。HDMIディスプレイをつないでいると、画面全体が緑色に表示される。
3. Raspberry Pi OSを焼いて、起動してみよう。



# その他

- `vcgencmd bootloader_version`でfirmwareバージョン確認

    ```shell-session:実行例
    pi@raspberrypi:~ $ vcgencmd bootloader_version
    Jul 31 2020 14:43:39
    version f8d1dc69144b10b4bd78b4b6d08658ac3005726d (release)
    timestamp 1596203019
    pi@raspberrypi:~ $ 
    ```

- `/etc/default/rpi-eeprom-update`を変更することで、アップデートできるファームウェアを変更できる

    ```bash:/etc/default/rpi-eeprom-update
    FIRMWARE_RELEASE_STATUS="critical"
    #FIRMWARE_RELEASE_STATUS="stable" とか
    #FIRMWARE_RELEASE_STATUS="beta"　とかに書き換える
    ```

    ```shell-session
    pi@raspberrypi:~ $ sudo rpi-eeprom-update 
    BCM2711 detected
    Dedicated VL805 EEPROM detected
    BOOTLOADER: up-to-date
    CURRENT: Fri 31 Jul 13:43:39 UTC 2020 (1596203019)
     LATEST: Thu 16 Apr 17:11:26 UTC 2020 (1587057086)
     FW DIR: /lib/firmware/raspberrypi/bootloader/critical
    VL805: up-to-date
    CURRENT: 000138a1
     LATEST: 000137ad
    pi@raspberrypi:~ $ sudo vi /etc/default/rpi-eeprom-update  # critical から stable に書き換え
    pi@raspberrypi:~ $ sudo rpi-eeprom-update 
    BCM2711 detected
    Dedicated VL805 EEPROM detected
    BOOTLOADER: up-to-date
    CURRENT: Fri 31 Jul 13:43:39 UTC 2020 (1596203019)
     LATEST: Fri 31 Jul 13:43:39 UTC 2020 (1596203019)
     FW DIR: /lib/firmware/raspberrypi/bootloader/stable
    VL805: up-to-date
    CURRENT: 000138a1
     LATEST: 000138a1
    pi@raspberrypi:~ $ 
    ```

- firmwareのあるフォルダ: `/lib/firmware/raspberrypi/bootloader/`
- `critical` / `stable` / `beta` のフォルダがある。
    - `critical`: The latest production release plus important security or hardware compatibility bug fixes.<br>最新の製品リリースに加えて、重要なセキュリティやハードウェア互換性のバグ修正を行いました。
    - `stable`: Contains new features that have already undergone some beta testing. These are candidates for new production releases.<br>すでにいくつかのベータテストを経た新機能が含まれています。これらは新しいプロダクションリリースの候補です。
    - `beta`: New features, bug fixes for development/test purposes. Use at your own risk<br>新機能、開発/テスト目的でのバグ修正。自己責任でご利用ください。

    (deepl先生翻訳)

- `sudo rpi-eeprom-update -d -a` にて、次の起動時に更新される、、っぽい


    ```shell-session:実行例
    pi@raspberrypi:~ $ sudo rpi-eeprom-update -d -a
    BCM2711 detected
    Dedicated VL805 EEPROM detected
    BOOTFS /boot
    *** INSTALLING EEPROM UPDATES ***
    BOOTLOADER: update available
    CURRENT: Thu 16 Apr 17:11:26 UTC 2020 (1587057086)
     LATEST: Fri 31 Jul 13:43:39 UTC 2020 (1596203019)
     FW DIR: /lib/firmware/raspberrypi/bootloader/stable
    VL805: update available
    CURRENT: 000137ad
     LATEST: 000138a1
    BOOTFS /boot
    EEPROM updates pending. Please reboot to apply the update.
    pi@raspberrypi:~ $ sudo reboot  # 再起動にて、
        ... ....... ...
        ...  再起動 ...
        ... ....... ...
    pi@raspberrypi:~ $ vcgencmd bootloader_version
    Jul 31 2020 14:43:39
    version f8d1dc69144b10b4bd78b4b6d08658ac3005726d (release)
    timestamp 1596203019
    pi@raspberrypi:~ $ 
    ```