Skip to main content

Compute Module 4のEEPROMを更新する

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Compute Module 4とは

Raspberry Pi Compute Module 4 (CM4)は、人気のRaspberry Pi 4 Model Bの計算能力を活用し、前世代と比較して劇的な性能向上を実現しています。高速なCPUコア、優れたマルチメディア機能、より多くのインターフェース機能を備えています。そして今回初めて、RAM密度や無線接続オプションの複数の選択肢が提供されています。

外形寸法に関しては、このバージョンでは完全に新しい機械的標準を採用しています。キャリアボード上のモジュールの全体的なフットプリントが縮小され、製品への統合に適したより小型でコンパクトなフォームファクターを実現しています。

pir

note

埋め込み用途向けのコンパクトなフォームファクターにRaspberry Pi 4のパワーを搭載。Raspberry Pi Compute Module 4は、クアッドコアARM Cortex-A72プロセッサ、デュアルビデオ出力、および幅広いインターフェースを組み込んでいます。32種類のバリエーションがあり、RAMやeMMCフラッシュのオプション、無線接続の有無を選択できます。 -- Raspberry Pi CM4{target=_blank}

Seeed Studio Compute Module 4製品

reTerminalEdgebox-RPI-100EdgeLogix-RPI-1000reRouterデュアルギガビットイーサネットNICキャリアボード
pirpirpirpirpir

CM4 EEPROMを更新する方法

前提条件

必要なハードウェア:

  • Linuxベースのホストコンピュータ(以下のいずれか):
    • Raspberry Pi 4B(Raspberry Pi OSがインストールされているもの)
    • 最新のUbuntu OSがインストールされたPC
  • USB Type-Cケーブル

適用可能なSeeed Studioハードウェア:

reTerminalreRouterデュアルギガビットイーサネットNICキャリアボード
pirpirpir
note

このプロセスでは、CM4 eMMCストレージを「USBマスストレージ」モードにする必要があります。これは現在、reRouterおよびreTerminalでのみ適用可能です。Edgebox-RPI-200またはEdgeLogix-RPI-1000をお持ちの場合、CM4 eMMCストレージをUSBストレージモードにすることができるCM4開発ボードが必要です。例えば、デュアルギガビットイーサネットNICキャリアボード{target=_blank}などです。

CM4 eMMCストレージをUSBマスストレージモードにする

reTerminalの場合

  • ステップ1: ケースを開けてreTerminalのヒートシンクを取り外し、ブート選択スイッチにアクセスします。reTerminal Getting Started Wiki Pageの手順に従い、ブートモードスイッチを切り替えるまで進めてください。

reRouterの場合

  • ステップ1: 下図のように、底面の4つのネジと底面カバーを取り外してreRouterのケースを開けます:

pir

  • ステップ2: ケースからreRouterボードをスライドさせて取り出します。

pir

  • ステップ3: 3ピンインターフェースを見つけ、GNDとBOOTピンをショートさせます。
note

デュアルギガビットイーサネットNICキャリアボードはreRouterと同じPCBを使用しているため、ステップ3のみを実行してブートモードを選択する必要があります。

pir

ソフトウェアのセットアップとEEPROMファームウェアの更新

PCまたはRaspberry Pi 4B(フラッシュツール)で

note

Raspberry PiのEEPROMを更新するにはLinuxベースのオペレーティングシステムが必要です。以下の手順はUbuntu 22.04を搭載したPCおよびRaspberry Pi OS(64ビット)を搭載したRaspberry Pi 4B(フラッシュツール)でのみテストされています。

  • ステップ1: 必要なシステムソフトウェアパッケージをインストールします。Terminalアプリを開き、以下のコマンドを入力してください:
sudo apt-get update

sudo apt install git pkg-config make gcc libusb-1.0-0-dev
  • ステップ2: usbbootツールリポジトリをクローンします。
cd ~/

git clone --depth=1 https://github.com/raspberrypi/usbboot

cd usbboot
  • ステップ3: usbbootツールをビルドします。
make
  • ステップ4: EEPROMを更新します。
note

usbboot GitHubリポジトリには最新のEEPROMブートローダーファームウェアが含まれているはずです。以下の手順で最新のEEPROMブートローダーファームウェアに更新されます。

cd recovery

./update-pieeprom.sh

以下のようなメッセージが表示されるはずです:

pir

オプション: 特定のリリースのブートローダーファームウェアを使用したい場合は、rpi-eeprom{target=_blank}リポジトリのファームウェアフォルダを訪問し、ファームウェアbinファイルを選択してpieeprom.original.binファイルを置き換えることができます。例えば:

note

このオプションの手順では、執筆時点での最新のstableビルドであるpieeprom-2023-01-11.binpieeprom.original.binファイルを置き換えます。

cd ~/usbboot/recovery

rm -f pieeprom.original.bin

curl -L -o pieeprom.original.bin https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/stable/pieeprom-2023-01-11.bin

./update-pieeprom.sh

以下のようなメッセージが表示されるはずです:

pir

  • ステップ5: USB Type-Cケーブルを使用して、CM4デバイス(reTerminalreRouterデュアルギガビットイーサネットNICキャリアボード)とホストPC/Raspberry Pi 4B(フラッシュツール)デバイスを接続します。このとき、CM4デバイスUSBマスストレージモードに設定されている必要があります。

  • ステップ6: EEPROMファームウェアを適用して更新します。

cd ~/usbboot

./rpiboot -d recovery

以下のようなメッセージが表示されるはずです:

pir

この時点で、CM4デバイスには新しいブートオーダーが設定され、EEPROMファームウェアが更新されています。

ブートオーダーの変更とEEPROMの更新

note

上記のセットアップ手順をステップ3まで完了している必要があります。

  • ステップ1: boot.confを編集します。
cd ~/usbboot/recovery

nano boot.conf

ファイルは以下のようになっているはずです:

[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0

# Try SD first (1), followed by, USB PCIe, NVMe PCIe, USB SoC XHCI then network
BOOT_ORDER=0xf25641

# Set to 0 to prevent bootloader updates from USB/Network boot
# For remote units EEPROM hardware write protection should be used.
ENABLE_SELF_UPDATE=1

BOOT_ORDER=0xf25641 行はブート順設定を示しており、現在のブート順設定は SD CARD/eMMC > USB-MSD > NVME > BCM-USB-MSD > NETWORK > RESTART です。ブート順を NVME > USB-MSD > BCM-USB-MSD > SD CARD/eMMC > NETWORK > RESTART に変更したい場合、ブート順設定は BOOT_ORDER=0xf21564 にする必要があります。

したがって、新しいブート順設定を含む boot.conf は以下のようになります:


[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
 
# 最初にSDを試し(1)、次にUSB PCIe、NVMe PCIe、USB SoC XHCI、そしてネットワーク
BOOT_ORDER=0xf21564
 
# USB/ネットワークブートからのブートローダー更新を防ぐには0に設定
# リモートユニットではEEPROMハードウェア書き込み保護を使用する必要があります。
ENABLE_SELF_UPDATE=1

nano エディタで保存して終了します。

以下は、BOOT_ORDERの異なるブートモード設定のプロパティを定義した参考表です。

モード説明
0x0SD CARD DETECTSDを試し、カード検出がカード変更を示すのを待つ - 現在は0xf(RESTART)が利用可能なため非推奨。
0x1SD CARD/eMMCSDカード(またはCompute Module 4のeMMC)。
0x2NETWORKネットワークブート
0x3RPIBOOTRPIBOOT
0x4USB-MSDUSBマスストレージブート
0x5BCM-USB-MSDUSB 2.0ブート(CM4:CM4IOボードのUSBタイプAソケット)。
0x6NVMECM4のみ:PCIeインターフェースに接続されたNVMe SSDからのブート。
0x7HTTPイーサネット経由のHTTPブート。
0xeSTOP停止してエラーパターンを表示。 この状態を終了するには電源サイクルが必要。
0xfRESTARTBOOT_ORDERフィールド内の最初のブートモードから再起動、つまりループ

参考: BOOT_ORDER Property Table

  • ステップ 2: 最新のファームウェアを取得

wget -O pieeprom.original.bin https://github.com/raspberrypi/rpi-eeprom/blob/master/firmware/stable/pieeprom-2023-01-11.bin
  • ステップ 3: 新しい boot.conf を使用してEEPROMファームウェアを更新

./update-pieeprom.sh
  • ステップ 4: USB Type-CをCM4デバイス(reTerminal \ reRouter \ Dual Gigabit Ethernet NICs Carrier Board)とホストPC/Raspberry Pi 4B(フラッシュツール)デバイスに接続します。この際、CM4デバイスUSBマスストレージモードに設定する必要があります。

  • ステップ 5: デバイスにファームウェアを適用

cd ~/usbboot

sudo ./rpiboot -d recovery

以下のようなメッセージが表示されるはずです:

pir

この時点で、CM4デバイス は新しいブート順設定と更新されたEEPROMファームウェアを持つようになります。

技術サポートと製品に関する議論

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...