eMMCの付いたRaspberry PiをPoEで動かしてみました。

こんにちは、SBCにはeMMC載ってないと嫌な派の坪井です。

Seeed株式会社はSeeedからRaspberry Piを仕入れて下さっている販売店さんにRaspberry Piの日本語でのテクニカルサポートを提供したりしています。ですので仕事でCompute Moduleを扱うこともあります。しかしながら個人的には最近のCompute Moduleを使ったことがなかったので、ときどきサンプルとして製品を取り寄せるついでに取り寄せてみました。

f:id:ytsuboi:20200423201712j:plain

www.seeedstudio.com

www.seeedstudio.com

取り寄せをしたのは上記2つです。Compute Module 3+は、32GBのeMMCが搭載されているものを選択しました。通常のRaspberry Piはmicro SDにOSを書き込んで使いますが、eMMCを搭載したCompute ModuleはeMMCにOSを書き込まなければなりません。この手順はFlashing the Compute Module eMMCというページに記載があります。今回は、このページに手順が記されていないmacOSからの書き込みを行ってみたいと思います。

さて、Compute ModuleのeMMCをパソコンからマウントするためには、rpibootというコマンドを使います。rpibootを手持ちのmacOSでコンパイルするのは面倒だったので、Homebrewを使おうと思いました。誰かformulaを作っていないかと検索をしてみたところ、homebrew-rpibootを見つけたので、これを使わせてもらいます。

$ brew tap gmerlino/rpiboot
$ brew install --HEAD gmerlino/rpiboot/rpiboot

これだけの手順でrpibootがインストールできました。

次にCompute ModuleのeMMCに書き込むRaspbianですが、Download Raspbian for Raspberry PiこちらのページからRaspbian Buster Liteをダウンロードしてきて、unzipしました。僕はeMMCと同じくらい(ディスプレイ等を繋がないで運用する)ヘッドレスが好きです。

ハードウェアはwikiを参考にしながら、Compute ModuleをCompute Module PoE Boardに取り付け、僕はPoEを使いたいのでPoEのジャンパをEN側に差し替えをしました。あとは、Compute Module PoE BoardのSlaveと書いてあるUSBコネクタとパソコンを接続し、PoEスイッチに繋がっているイーサネットケーブルを挿しました。

f:id:ytsuboi:20200423201802j:plain

この状態で、rpibootを実行すると、下記のようなメッセージが表示されました。

$ rpiboot
Waiting for BCM2835/6/7/2711...
Sending bootcode.bin
Successful read 4 bytes 
Waiting for BCM2835/6/7/2711...
Second stage boot server
File read: start.elf
Second stage boot server done

これでCompute ModuleのeMMCがパソコンから見えるようになりました。 f:id:ytsuboi:20200423211112p:plain disk2として認識されている様です。もちろん、$ diskutil list等でデバイス名を調べても良いでしょう。

後はeMMCにRaspbianのイメージをddします。block sizeを4194304 bytesにしたのは、ドキュメントのコマンド例のオプションがbs=4MiBだったからです。4 MiB == 4194304 bytesのはずです。

$ sudo dd if=~/Downloads/2020-02-13-raspbian-buster-lite.img of=/dev/disk2 bs=4194304
Password:
441+0 records in
441+0 records out
1849688064 bytes transferred in 602.583642 secs (3069596 bytes/sec)

私が実行したときには、10分程度で書き込みが終わったみたいです。書き込みを終えたら、USBケーブルを抜いた上でイーサネットケーブルも抜きました。

最後に、USBケーブルをCompute Module PoE BoardのUSB TO UARTと書かれたコネクタと接続し、イーサネットケーブルを挿して電源を入れます。Compute Module PoE BoardにはCP2102が載っており、これでCompute Moduleのシリアルコンソールに乗れます。手元のmacでminicomを使って/dev/cu.SLAB_USBtoUARTを115,200bpsで開くと、ブートメッセージが流れたあと、ログインプロンプトが表示されました。raspi-configでsshdを有効にし、IPアドレスを確認したら、もうUSBケーブルも要らなくなりました。

f:id:ytsuboi:20200423194855j:plain

イーサネットケーブル一本だけで動くeMMCの載ったRaspberry Piはとても快適です。

変更履歴

日付 変更者 変更内容
2020/4/23 ytsuboi 作成