RaspberryPi 2Bの頃から、数え切れないくらいの RaspberryPi を使ってきました。
低価格なうえに小型で省電力、そのわりにちゃんとしたLinux環境で、ほぼフルスペックの環境。
GPIOも装備しているので、IoTのプロトタイピングにも最適な環境です。
そんな RaspberryPi に、新モデル RaspberryPi5 が国内発売開始となりました。
海外モデルは少し前から入手可能だったのですが、技適の問題などもあったので、国内販売を待っていたら(後はお財布事情もあり)ちょっと遅くなってしまいました。
Table of Contents
アップグレードされたハードウェアとパフォーマンス
RaspberryPi5は、これまでのRaspberryPiに比べても大きなハードウェアの魅力があります。
- 電源ボタンがついた
- PCIe接続端子を搭載
- PCIeに接続した NVMe M.2 SSD からブート 可能
- ハードウェアファン端子が追加
- 強化された CPUパワー(BCM2712クアッドコア1.8GHz)
- 8GBのメモリー(4GBモデルもあり)
RaspberryPi4 も USB3経由で SSDを接続する HAT(増設ボード)がありましたが、起動は MicroSDからのみでした。
電源仕様には注意が必要 5A Type-C ACアダプターが必須
従来のRaspberry Piシリーズでは3AのUSB Type-C電源で動作可能でしたが、Raspberry Pi 5では5AのType-C電源 が推奨されています。
推奨とは言っても、実際には5Aを出力できるACアダプターを用意するのがベストです。
安定した動作を求める方には必須のアイテムです。
RaspberryPi5 と一緒に 5A 出力できる AC電源 を用意しておきましょう。
GPIO のピン配列も継承
RaspberryPi 5は、今までと同様に GPIOがあります。
pinout コマンド で RaspberryPi5 の GPIO の情報を出力した結果は以下の通りです。
pinout
コマンドでは、RaspberryPi 5 の基本情報も出力されます。
name | RaspberryPi 5 |
---|---|
SoC | BCM2712 (BCM2712クアッドコア1.8GHz) |
Memory | 8GB |
Storage | microSD |
USB ports | 4 (of which 2 USB3 ) |
Ethernet port | 1 (1000Mbps) |
Wi-fi | True |
Bluetooth | True |
Camera port (CSI) | 2 |
Display port | 2 |
pinout コマンドは、RaspberryPi のハードウェア情報をスグに確認できるので、便利なコマンドです。
新規追加の PCIeコネクタと電源ボタン
今までの MicroSD スロットの上部に PCIe 接続のコネクタがあります。
その脇には、電源スイッチがついています。
RaspberryPi5 のサイドには、電源用の Type-C ポートと、microHDMI が2ポートあります。
サイドのデザインは、RaspberryPi4に似ていますが オーディオ端子が無くなって ます。
今回は RaspberryPi5 専用のファンも追加してあります。
ファンの電源/制御コネクタは、USB端子の後ろにあります。
出荷時には、簡単に外れるカバーがついていますので、カバーを外してコネクタを接続します。
外部ポート回りは、RaspberryPi 4 を同じポートがあります。
- USB 2ポート
- USB3.0 2ポート
- Giganet Ethernetポート RJ45
PCIe NVMe SSD HAT を装着
RaspberryPi5 のファンを取り付けたら、その後は PCIe NVMe SSD も取り付けます。
この NVMe SSD HAT は、 2242 もしくは 2232 の PCIe NVMe M.2 SSD が接続できます。
HAT と RaspberryPi5 をつなぐリボンケーブルは、本体の MicroSDスロットの上部にあるコネクタに接続します。
これで、ハードウェアのアセンブリは完了となります。
Raspberry OS の準備
今までは RaspberryPi Imager を使って microSD に Raspberry OS をインストールしていましたが、今回は NVMe M.2 SSD から起動します。
このため NVMe M.2 SSD に RaspberryPi のイメージを書き込む必要があります。
NVMe M.2 SSD を接続するために、USB接続の M.2 アダプターを使用します。
M.2 SSD の選択 (NVMe と SATA と B-M-Key/M-Key)
ご存じの方も多いでしょうが、M.2 SSD には NVMe と SATA接続の他に、コネクタの切り欠きによって B-M-Key や M-Key, B-Key などの種類があります。
2つの切り欠きのある M.2(B-M-Key) は対応が少ないこともありますので、切り欠きが 1つのタイプの NVMe M.2 SSD M-Keyタイプ を使用します。
コネクタの違いと、NVMe/SATA/ACHIの違いは長くなるので割愛します。
価格的には 若干高くなりますが、長く使うものですので NVMe M.2 SSD M-Key 2242 仕様のストレージを購入するのが安全です。
NVMe M.2 SSD をUSBアダプターに接続したら、WindowsやmacOS,Linuxなどで Raspberry OS のイメージ を書き込みます。
RaspberryPi Imager は 最新のものを使用 してください。
古いバージョンでは、最初の「Select Device」で RaspberryPi5 が選択できません。
今回は Raspberry OS 64bit版を使用しました。
後は 今までの RaspberryPi のインストールと同じですので、インストール作業は省略します。
Raspberry Pi 5の実力をUnixBenchで測定
OSのインストールが完了したら、早速 RaspberryPi5 の実力を試してみます。
Raspberry Pi 5のパフォーマンスを測るために、オープンソースのベンチマークアプリ「UnixBench」を使用しました。
今回使用したのは、 UnixBench というオープンソースのベンチマーク アプリケーションです。
以下の手順で RaspberryPi 5 にインストールします。
1 2 3 4 | wget https://github.com/kdlucas/byte-unixbench.git cd byte-unixbench/UnixBench make |
コンパイルができたら Run
を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ sudo ./Run ... # # # # # # # ##### ###### # # #### # # # # ## # # # # # # # ## # # # # # # # # # # # ## ##### ##### # # # # ###### # # # # # # ## # # # # # # # # # # # # ## # # # # # # # ## # # # # #### # # # # # ##### ###### # # #### # # Version 5.1.3 Based on the Byte Magazine Unix Benchmark Multi-CPU version Version 5 revisions by Ian Smith, Sunnyvale, CA, USA January 13, 2011 johantheghost at yahoo period com ------------------------------------------------------------------------------ |
時間がかかりますので終了まで待ち、結果が次の表になります。
今回は、以下の RaspberryPi (とJetSon Nano) でベンチマクーを実行した結果を比較します。
- JetSon Nano 2GB
- RaspberryPi Zero
- RaspberryPi 2B+
- RaspberryPi 3B+
- RaspberryPi 4 + USB3.0 M.2 SATA SSD
- RaspberryPi 5 + PCIe NVMe M.2 SSD
ベンチマーク結果:驚異のスコア
テスト結果を比較すると、Raspberry Pi 4に対し倍近いスコアを出すケースも多く、Raspberry Pi 5の性能向上が目に見えて実感できます。
特にハイエンドなIoTやプロトタイピング用途に最適な選択肢となりそうです。
Raspberry Pi 5で広がる可能性
Raspberry Pi 5の価格は少し上昇しましたが、その分性能も格段にアップしています。
特に、k8sなどの複雑なクラスタシステムを組む際には、従来モデルよりも圧倒的なアドバンテージが得られるでしょう。
今までのRaspberry Piでは難しかった重たい処理もこなせるようになり、さまざまな活用が期待できます。
まずは、色々な準備のために、前に書いた記事を元にして Docker 環境を準備していきます。