Raspberry Pi 5 体験記【PCIe SSD化】

Raspberry Pi/電子工作
スポンサーリンク

こんにちは、あろっちです。

Raspberry Pi 5が国内販売開始されたので8GBモデルを購入してみました。
PCIe接続でのSSD化するまでの過程などを記載したいと思います。

スポンサーリンク

スペック(Raspberry Pi 5とRaspberry Pi 4の比較)

スペックRaspberry Pi 5Raspberry Pi 4 Model B
プロセッサBroadcom BCM2712
64ビットクアッドコアArm Cortex-A76、2.4GHz
Broadcom BCM2711
64ビットクアッドコアCortex-A72 (ARM v8)、1.8GHz
(旧ロットは1.5GHz)
RAMLPDDR4X-4267 SDRAM (4GBおよび8GB)LPDDR4-3200 SDRAM (1GB, 2GB, 4GB, 8GBのオプション)
GPUVideoCore 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、BLE2.4 GHzと5.0 GHz IEEE 802.11ac wireless、Bluetooth 5.0、BLE
USB2 × USB 3.0(同時に5 Gbpsの通信が可能)、2 × USB 2.02 × USB 3.0、2 × USB 2.0
GPIORaspberry 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は巷では結構高温になるとのことなので何もしないより冷却できるようにしておいた方がよいのではと思っています。

アクティブクーラーのファームウェア仕様
  • CPU温度が60°Cでファンが起動
  • 67.5°Cでファンの速度が上昇
  • 75°Cでファンが最大速度に移行
  • 60°C以下でファンが自動停止

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を起動します。

キーボードとマウスのレシーバーをUSBに挿しています。

今回は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をベンチマークしてみました

次のサイトのベンチマークツールで測定してみました。

2022 Raspberry Pi Storage Benchmarks
The Compute Module 4 is dominating the storage benchmarks by using actual NVMe via a PCIe adapter. Some new drives have ...

コマンド

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/s778.98 MB/s
HDParm
Cached Disk Read
403.33 MB/s746.99 MB/s
DD
Disk Write
282 MB/s442 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/s214497 KB/s
IOZone
4k write
171015 KB/s193367 KB/s
IO Zone
4k random read
59801 KB/s66842 KB/s
IO Zone
4k random write
186049 KB/s216205 KB/s
Score3992549273

同じ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拡張ボード、電源アダプターともになかなかいい製品だと思いました。

引き続きこのまま使っていこうと思います。

関連記事

コメント

  1. しんちょろ より:

    とても分かりやすい記事をありがとうございます!
    そのままの手順で、SSD化に成功しました。
    8G RAMでも、もっさりした動きでしたが爆速になりました!
    ありがとうございました!

    • あろっち あろっち より:

      こちらこそ、お役に立てたようで嬉しいですね。
      コメントしてくださいましてありがとうございます。

      無事、SSD化が成功したということで今後活用の幅が広がりそうですね!

タイトルとURLをコピーしました