Raspberry Pi Advent Calendar 2020の10日目です。
8日目はまめもさんのシリアルコンソールのすすめ、9日目はドライソさんのRaspberry Pi入門レポートでした。お二方ともMastodonからのご参加でした。ありがとうございました!
さて、今日はいよいよ着弾したRaspberry Pi Compute Module 4(以下CM4)のレポートです。おとといに着弾して、早速PCI Expressカード各種をぶち込んで動く動かないを検証して遊んでいます。
まずは開封の儀写真
パッケージ表面。最近のRaspberry Pi製品のパッケージと揃えたデザインですね。上がIOボード、下がCM4本体です。ちなみに、今回は無線LANが搭載されていないモデルがRAM1GBのみだったため、RAM1GB、eMMCストレージなし、無線なしのモデルとなります。ラインナップが充実してきたら8GB RAM版もほしいところ。
パッケージ裏面。IOボードは搭載ポートの説明などがあります。
本体を取り出して、表面。IOボードはHATを載せられたりCM4を水平に載せたりする都合上どうしても大きくなりますが、充実のインターフェイス。電源はUSB-CでもMicroUSBでもなく12V丸DC(センタープラス)なので、なにか適当に持っている必要があります。あるいはGPIOやPoEからの供給も可能です。CM4は表面にSoC、RAMチップ、GbEチップ(BCM54210PE)と、左下に電源回路があります。左上の何も乗っていない部分は、無線付きなら無線チップがある場所です。
本体裏面。IOボードは表面にぜんふ載ってるので裏はそれほど見るところはありません。CM4は細かなチップ類と、IOボードに接続するためのコネクターが2つついています。向きを間違えるとどうなるかちょっと確かめてみましたが、そもそも乗らないような感じだった(多分)ので、安心ですね。
先代のCompute Moduleとの比較
CM4でCompute Moduleが初見だった方もWebでの反応を見るとまあまあいらっしゃったようなので、先々代のCM3との比較写真も。Compute ModuleはRaspberry Pi 1相当の時代から存在しており、1、3、3+、そして今回の4が4世代目です。2はスキップされていますね……。過去3代はDDR2 SO-DIMMのフォームファクターを採用していましたが、今回からは独自のフォームファクターを採用しています。サイズはひと回り小さくなったような気がしますが、面積的にそれほど変化がなさそうな気もします。どのみち小さいです。CM4のコネクターのピン数はデータシート曰く200ピン(1コネクターあたり100ピン)だそうです。あれ、DDR2 SO-DIMMと変わらないのか。実装の柔軟性との兼ね合いなんでしょうかね。
早速遊ぶ
今回はeMMCがないモデルなので、OSはいつもどおりMicroSDカードに焼いて、IOボードのSDカードスロットに差し込んで起動します。まあ、例によって起動してしまえばいつものRaspberry Piなので、普通の起動は略です。
個人的にCM4というかこのIOボードで最も遊べると思っている要素として、PCI Expressポートがx1スロットで用意されている点が挙げられます。これは通常のRaspberry Pi4ではUSB3.0ポートx2を提供するVL805チップに使用されていますが、CM4のIOボードにはこれが省略された代わりに、自由なにボードを差し込めるようにしてあるというわけです。なので、同じVL805チップか別の何かのUSB3.0ポート増設ボードを差しても良いし、GbEや10GbEを増設してもいいし、気合を入れればGPUも差せるかも?という夢があるポートなわけです。
ただし、スロットはx1のため、x4, x8, x16のカードはそのままでは差し込めません。そこで、変換ケーブルまたは変換ボードを使うことを使うことで接続できるようにしてやります。(当然ですが、接続はできても性能はフルには出せません。)
今回はAmazonで雑に変換ボードをポチポチしました。発送元がAmazonであることだけは確認しました。この手のやつ青基板青コネクタ青ケーブルだったりするのに珍しくピンク系です。おもろい。そしてもう売れきれてなくなっているという。
手持ちのボードはこんな感じ。SolarFlareの10GbEボード、GeForce GTX750、BroadComの1GbEボード。1GbEはx1なので変換がなくても刺さりました。
10GbEボードを接続しようとするとこんな感じです。変換ボードとの接続はUSB3.0ケーブルです。そんなんでいけちゃうんですね。ちなみに、変換ボード側の電源にも、IDE-USB変換についてきたペリフェラル4ピンの電源を差し込んであります。
認識できるか?PCIeボード各種調査中
レポートは一旦ここまで。実はサクッと認識などといううまい話はなく、カーネルを拾ってきてドライバーをコンパイルしたり、コンパイルできてもうまく動かなかったりしているところです。もともとRaspberry PiにPCI ExpressがもたらされたのがPi4からで、VL805にしか最適化されていなかったわけですから、PCIeデバイス向けドライバーが含まれていなければ、もろもろの考慮もなかったりしています。そのへんの話はまた明日!
ちなみに、PC-98の起動音がなる同人ハードのボードは動きました。電気とってるだけのハズなので、まあそうなんですけどね。