Raspberry Pi5でPCIeが気軽に使えるようになったので遊んでみました。
仕事で、Broadcom(LSI logic)のRAIDカードを使う機会が有ったので、これが繋がらないかチャレンジしてみました。
取り急ぎ、動作することまでは確認できたので、自分用メモ![]()
概要
参考サイトにある様にRAIDカードの動作実績も有るみたいでした。 必要な作業としては
- 対応するKernelの再構築
- ドライバのビルドと導入
- RAIDカードユーティリティの導入
が必要な事は解りました。
結論としては、
- Rasbianのカーネルソースに含まれているMegaRAIDのドライバを有効にしたカーネルを作成すればカードが動作する事
- Broadcomで配布されている、CLI/Webのツールのarm64版が問題なく動作しインストール可能で有る事
が確認できました。
環境
- Hardware
- Raspberry Pi5 4GB?
- 16GB microSD(OS)
- Broadcom 9580-8i8e
- M.2 NVMe HAT
- M.2 NVMe -> PCIe Adapter
- HPE Power Supply(12V)
- テスト用 Storage
- SATA SSD(SanDisk X400 2.5 7MM 128GB)
- SATA HDD(TOSHIBA MQ01ABF050)
- SAS HDD 15krpm (EH0600JDYTL)
- Software
- Rasbian(2025-12-04-raspios-trixie-arm64-lite.img)
- StoreCLI(007.3503.0000.0000MR 7.35Storcli.zip)
- LSA for Linux(008.015.010.000MR 7.35LSA aarch64.zip)
参考サイト
- https://pipci.jeffgeerling.com/
- https://pipci.jeffgeerling.com/cards_storage/broadcom-megaraid-9460-16i.html
- https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/72
- https://nw-electric.way-nifty.com/blog/2024/10/post-9042bb.html
導入手順
- RaspbianをSD(16GBに書き込む)
- 2025-12-04-raspios-trixie-arm64-lite.img
- 起動する
- 初期ユーザ作成・パスワード設定
- SSH有効化
- /etc/ssh/sshd_config
- PermitRootLogin yes
- systemctl enable ssh
- Debianのアップデート
- apt update
- apt upgrade
- 必要なツールをインストール
- sudo apt-get install -y git bc bison flex libssl-dev make
- カーネルソースを取得する
- git clone --depth=1 https://github.com/raspberrypi/linux
- カーネルをビルドする
- cd linux
- make ARCH=arm64 bcm2712_defconfig
- vi .config
以下のオプションを設定する
- CONFIGIRQPOLL=y
- CONFIGMEGARAIDSAS=y
- make -j6 ARCH=arm64 Image.gz modules dtbs
- カーネルをインストールする
- KERNEL=kernel2712
- make -j6 modulesinstall
- cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
- cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
- cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
- cp arch/arm64/boot/dts/overlays/.dtb /boot/firmware/overlays/
- cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/
- CLIツールをインストール
storcli64007.3503.0000.0000arm64.debを導入
- dpkg -i storcli64007.3503.0000.0000arm64.deb
- ln -s /opt/MegaRAID/storcli/storcli64 /usr/local/sbin/storcli
- LSAをインストール(LSAlibutils2-8.00-00)
LSALinuxaarch64.zipを転送
- unzip LSALinuxaarch64.zip
- cd aarch64
- ./install_deb.sh
- Y Agree ULA
- Since Log Clear
- gateway
- 2463 Web Server Port(Default)
- 9000 LSA Port (Default)
- SLP Yes
http://
:2463 でアクセス
- rootパスワードを設定する(rootユーザーでログオンしないとLSAが参照のみになり設定が出来ない)
- sudo passwd root
動作テスト
- ディスクをOSに認識させる
- LSAでDG/LDを作成する
- OS上でsdaとして認識される
- ディスクをフォーマットしてマウント
- fdisk /dev/sda g n
- mkfs.ext4 /dev/sda1
- mount /mnt /dev/sda1
パフォーマンス測定ツールの導入とテスト
- apt-get install fio
- コマンドライン例(ランダムリード?)
fio --name=rand-read --rw=randread --bs=4k --size=1G --numjobs=4 --runtime=60 --timebased --groupreporting --ioengine=libaio --iodepth=16
fio --name=rand-read --rw=randread --bs=4k --size=1G --numjobs=4 --runtime=60 --timebased --groupreporting --ioengine=libaio --iodepth=16 --filename=/mnt/test1g- 測定結果(IOPSが想定より4倍ぐらい出てる気がするけど何故?まぁ目安として...)
Mem: read: IOPS=410k, BW=1600MiB/s (1678MB/s)(93.8GiB/60001msec)
SSD: read: IOPS=158k, BW=616MiB/s (646MB/s)(36.1GiB/60001msec)
SD:read: IOPS=17.3k, BW=67.6MiB/s (70.9MB/s)(4054MiB/60004msec)
HDD(SATA):read: IOPS=157, BW=630KiB/s (645kB/s)(36.9MiB/60036msec)
HDD(SAS):read: IOPS=918, BW=3673KiB/s (3761kB/s)(215MiB/60004msec)
その他のメモ
9580-8i8e の消費電力
実測で推定10W程度だが、容量に余裕のある電源を使った方が良さそう。
手元のHDD用の12V/2AのACアダプタでは稼働しなかった。
dmesgで、PCIeがLinkDownのログが上がっており、認識すらしなかった。
公式MegaRADドライバ
BroadcomのMegaRAIDドライバをビルドしようと思ったが、エラーが出てビルドできない。
結果的に、カーネル側でMegaRAIDらしきドライバを有効にすることで動作したので良しとした。
/home/pi/megaraidsas-07.723.02.00/megaraidsas_base.c:45:10: fatal error: asm/unaligned.h: No such file or directory
45 | #include
| ^~~~~~~~~~~~~~~~~
コメント