こんにちは、あろっちです。
Raspberry Pi 5が国内販売開始されたので8GBモデルを購入してみました。
PCIe接続でのSSD化するまでの過程などを記載したいと思います。
スペック(Raspberry Pi 5とRaspberry Pi 4の比較)
スペック | Raspberry Pi 5 | Raspberry Pi 4 Model B |
---|---|---|
プロセッサ | Broadcom BCM2712 64ビットクアッドコアArm Cortex-A76、2.4GHz | Broadcom BCM2711 64ビットクアッドコアCortex-A72 (ARM v8)、1.8GHz (旧ロットは1.5GHz) |
RAM | LPDDR4X-4267 SDRAM (4GBおよび8GB) | LPDDR4-3200 SDRAM (1GB, 2GB, 4GB, 8GBのオプション) |
GPU | VideoCore VII、OpenGL ES 3.1、Vulkan 1.2をサポート | VideoCore VI、OpenGL ES 3.0、Vulkan 1.0をサポート |
ディスプレイ | Dual 4Kp60 HDMI®ディスプレイ出力、HDRサポート | 2つのmicro HDMIポートを介した最大4Kのデュアルディスプレイサポート |
ワイヤレス通信 | 2.4 GHzと5.0 GHz IEEE 802.11ac wireless、Bluetooth 5.0、BLE | 2.4 GHzと5.0 GHz IEEE 802.11ac wireless、Bluetooth 5.0、BLE |
USB | 2 × USB 3.0(同時に5 Gbpsの通信が可能)、2 × USB 2.0 | 2 × USB 3.0、2 × USB 2.0 |
GPIO | Raspberry Pi標準の40ピンヘッダ | Raspberry Pi標準の40ピンGPIOヘッダ |
電源 | 5V/5A DC電源、USB-C経由、Power Deliveryサポート | 5V/3A DC電源、USB-C経由 |
カメラ/ディスプレイポート | 2 × 4レーンMIPI カメラ/ディスプレイポート | 1 × 2レーンMIPIカメラポート、1 × 2レーンMIPIディスプレイポート |
その他 | PCIe 2.0 x1 インターフェース(高速ペリフェラル用、別途 M.2 HAT またはその他のアダプターが必要) リアルタイムクロック(RTC)、パワーボタン、FANコネクタ、UARTコネクタ | 4極ステレオオーディオおよびコンポジットビデオポート |
生産期間 | 2035年1月まで | 2031年1月まで |
個人的に興味を持ったのはPCIeインターフェースが追加されたことで、PCIe接続でM.2 NVMe SSDが使えるようになったところですね。
気になるところとして5V/3Aでも動作するようですが(USBの出力電流が600mAに制限される)、5V/5Aの電源を使う方がいいみたいなので、対応した電源アダプターを別途購入しました。後ほど紹介します。
Raspberry Pi 5本体
まずは開封の様子
メモリは8GBモデルです。
箱手前に技適マークが確認できます。技適マークは箱にあるだけなので大切に保管しましょう。
開封したところ。開封の瞬間はテンション上がりますね。ロゴ印字が逆さなので取り出してみます。
取り出したところ。印字の向きもこの向きでいいみたいですね。
今回、冷却部品として純正アクティブクーラーを同時購入しました。そしてアクティブクーラーを取り付けたところ。
今回は購入していませんが、Raspberry Pi 5専用ケースの場合、ケースにヒートシンクやファンが付属していることが多いみたいです。
(記事執筆後、ケースを購入しました。ケースについて追記しています。)
Raspberry Pi 5は巷では結構高温になるとのことなので何もしないより冷却できるようにしておいた方がよいのではと思っています。
PCIe SSD化にあたり入手したもの
- Geekworm PD27W(5.1V 5A) 電源アダプター
- Geekworm X1001 V1.1 PCIe NVMe M.2 SSD 2280拡張ボード
- M.2 NVMe SSD 128GB (シリコンパワー製)
電源アダプターはSSD化のためというよりRaspberry Pi 5の要求電源(5V/5A)のために購入しました。
いずれもAmazonで入手できますが、GeekwormのSSD拡張ボードと電源アダプターはAliExpressのGeekworm official storeでセットになったものが売っていたので今回そちらで購入しました。
Geekworm PD27W(5.1V 5A) 電源アダプター
箱です。
表面 GEEKWORMのロゴが確認できます。
裏面
5.1V/5A(27W)の表記が確認できます。PSEマークも確認できました。
ケーブルが割と太くてしっかりした作り(長さ: 1.2m 太さ: AWG 18)になっています。
実際に使ってみると5V/3Aで起動した時に表示される電流不足のアラートは表示はされなくなりました。
Geekworm X1001 V1.1 PCIe NVMe M.2 SSD 2280拡張ボード
拡張ボードの他、写真付きのマニュアルが付属しています。
組み付けのビスの他、M.2 NVMe SSDを固定するビス(銀色)も付属しています。
M.2 NVMe SSD 128GB
シリコンパワーのこちらをチョイス
NVMeにしては珍しく(?)小容量の128GBにしました。
Amazonで購入したのですが、256GBのSSDより若干安かったというのと自分の使い方だとRaspberry Piでは容量を使いこむようなヘビーな使い方をしたことがないというところでこちらにしました。
組み立て
では組み立てていきます。
Raspberry Pi 5本体に支柱となるスペーサーとPCIeケーブルを取り付け。
SSD拡張ボードをビスで固定し、PCIeケーブルを拡張ボードに取り付け
拡張ボードにSSDを取り付けて銀色のビスで固定
これで完成
結構様になっていますね。
GPIOには干渉していないのでGPIOは使えそうです。
GPIO使用例
フェードLチカをしてみました。
LEDはアノードを抵抗(220Ω)を介してGPIO18に接続、カソードをGNDに接続しています。
gpiozeroライブラリを使う場合
Thonnyから実行できます。
from gpiozero import PWMLED
from signal import pause
led = PWMLED(18)
led.off()
try:
led.pulse()
pause()
except KeyboardInterrupt:
led.close()
gpiozeroライブラリは簡潔に記述できますね。
RPi.GPIOライブラリを使う場合
Raspberry Pi 4など旧モデルで以前よく使われたライブラリです。
ライブラリのインストール
Raspberry Pi OS(bookworm)にはデフォルトでRPi.GPIOライブラリがインストールされていないため別途PythonのRPi.GPIOライブラリをインストールしました。
pip install --break-system-packages rpi-lgpi
ソース (Python)
Thonnyから実行できます。
import RPi.GPIO as GPIO
import time
LED_PIN = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
led = GPIO.PWM(LED_PIN, 100)
led.start(0)
try:
while True:
for i in range(0, 101):
led.ChangeDutyCycle(i)
time.sleep(0.01)
for i in range(100, -1, -1):
led.ChangeDutyCycle(i)
time.sleep(0.01)
except KeyboardInterrupt:
pass
led.stop()
GPIO.cleanup()
セットアップ
予めPCからRaspberry Pi Imagerを使ってRaspberry Pi OS(bookworm 64bit)をSDカードに焼いて、日本語環境設定等まで済ましていました。
今回はSDカードからSSDをセットアップする手順を記述します。
まずSDカードからOSを起動します。
今回はSDカードの環境をSSDにコピーする方法をとります。
環境をコピーするにはSD Card Copierを使います。
メニューから[アクセサリ] > [SD Card Copier]を起動します。
[Copy From Device:]にSDカード、[Copy To Device:]にSSDを指定し、SSDは新規作成ということでNew Partition UUIDsにチェックを入れて、[Start]をクリックします。
SSDの中身を消去してよいか尋ねられますので[Yes]をクリックします。
コピー中の画面。完了するまでしばらく待ちます。
完了したら[OK]をクリックし、SD Card Copierを終了します。
次にSSDから起動するための設定を行います。
ターミナルを起動し、raspi-configを起動します。
sudo raspi-config
[6 Advanced Options]を選択します。
[A4 Boot Order]を選択します。
[B2 NVMe/USB Boot]を選択します。
NVMeからのブート(起動)がデフォルトになります。
raspi-configを終了し(タブを何度か押してFinishを選択)、一度シャットダウンします。
SDカードスロットからSDカードを抜いて起動します。
こちらがSSDからブートした画面。dfコマンドでディスク容量を確認したところです。
128GBあることが確認できました。
SSDをベンチマークしてみました
次のサイトのベンチマークツールで測定してみました。
コマンド
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
PCIe 2.0(Raspberry Pi 5のデフォルト)の結果は次のとおりでした。
PCIeをPCIe 3.0に変更(手順は後述)してベンチマークした結果は次のとおりでした。
比較表
テスト | PCIe 2.0(デフォルト) | PCIe 3.0 |
---|---|---|
HDParm Disk Read | 404.19 MB/s | 778.98 MB/s |
HDParm Cached Disk Read | 403.33 MB/s | 746.99 MB/s |
DD Disk Write | 282 MB/s | 442 MB/s |
FIO 4k ramdom read | 107225 IOPS (428900 KB/s) | 196923 IOPS (787692 KB/s) |
FIO 4k random write | 82580 IOPS (330322 KB/s) | 84979 IOPS (339917 KB/s) |
IOZone 4k read | 178345 KB/s | 214497 KB/s |
IOZone 4k write | 171015 KB/s | 193367 KB/s |
IO Zone 4k random read | 59801 KB/s | 66842 KB/s |
IO Zone 4k random write | 186049 KB/s | 216205 KB/s |
Score | 39925 | 49273 |
同じSSDでもPCIe 3.0接続すると速くなるのが分かりますね。
PCIe 3.0の設定
PCIeはデフォルトで2.0です。
raspi-configコマンドでPCIe 3.0を有効にできます。
PCIe 3.0を有効
sudo raspi-config nonint do_pci 0
PCIe 3.0を無効(デフォルトに戻す)にするには最後の引数を1にします。
sudo raspi-config nonint do_pci 1
以下は、記事執筆時にraspi-configコマンドがdo_pci
をサポートしていなかったため記述した手順です。
raspi-configコマンドを使わない場合はこちらの手順は今でも使えるので、備忘録として残しておきます。
PCIe 3.0にするには「/boot/firmware/config.txt
」に以下の行を追加します。
追加位置は末尾の[all]以下でよいかと思います。
dtparam=pciex1_gen=3
追加後、再起動します。
ケースをつけてみました
SSD拡張ボードをつけたまま格納できるケースをGeekworm純正メタルケース(P579)以外で探していました。
なぜかといいますと純正のケース、見た目が自分の好みに少々合わなかったというのが理由の1つです。
それで、今回(本当に格納できるのか悩みつつ)購入したのがこちらのRaspberry Pi 5用 アルミニウムケース
SSD拡張ボードをつけたまま格納できるケースの条件として、
- 基板前面の端子がケース部品に干渉しないこと
→SSD拡張ボードの先端がほぼ端子の先まできているため - SSD拡張ボードのスペーサーの下部から締め付けられるようになっていること
→基板の上からビスで固定するタイプはNG
この2点がクリアできたケースならGeekworm純正のケースでなくても格納できるとみていました。
そこで、画像で判断し今回のケースを選んだ次第です。実際に見ていきましょう。
見事にスッポリと格納できました。基板底部ビス穴4箇所にスペーサーを取り付けており、そのスペーサーを底面パネルにビスで固定しています。
底面はこんな感じです。ゴム足が付いている箇所にビス固定しています。
試しにSDカードを挿入してみたところです。SDカードの挿抜はスムーズにできますね。
後ろから見たところ。ボタンも普通に押すことができますし、LEDの状態も確認できます。
前面はこんな感じです。
サイドの端子面はこんな感じです。
記事内でも触れましたが、ケースにはファンやヒートシンクが付属しています。
今回はアクティブクーラーをつけているので不要でしたね。
上部は半透過のアクリルパネルです。中が見えてなかなかよいデザインだと思います。
まとめ
Raspberry Pi 5をPCIe接続でSSD化できたのは嬉しいですね。
今はPCIe 3.0接続で使用しています。
電源アダプターについては5V/5A(正確には5.1V/5A)が供給されているようで電流不足のアラートが表示されることなく安定動作しています。
今回Geekwormの製品に決めて試しましたが、SSD拡張ボード、電源アダプターともになかなかいい製品だと思いました。
引き続きこのまま使っていこうと思います。
コメント
とても分かりやすい記事をありがとうございます!
そのままの手順で、SSD化に成功しました。
8G RAMでも、もっさりした動きでしたが爆速になりました!
ありがとうございました!
こちらこそ、お役に立てたようで嬉しいですね。
コメントしてくださいましてありがとうございます。
無事、SSD化が成功したということで今後活用の幅が広がりそうですね!