Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@kark1223

ラズパイ4で使える外付けSSDケース

ラズパイ4 で使える外付け2.5インチケースは?

Raspberry pi4でミュージックサーバーを作ろうとしたら、2.5インチ外付けケースにはまったのでメモ。

IMG_20200202_201545.jpg
ケースは千石電商で売ってるPimoroniのアルミケース
I2SDACはAVIOT DAC01 ピンヘッダには40pinのゲタを履かせ、スペーサー代わりに消しゴムを挟んでます

入手したケースは4つですがそのうち3つ。
IMG_20200202_194847.jpg
左から時計回りにSalcar JMS567チップ、Inateck FE2013、ORICO 2588C3-G2

結論を言ってしまうと、明暗分けるのはUSB-SATAチップで、中華に多いJMS567チップが曲者。
Windowsなら大丈夫ですが、raspberry pi4では駄目となりました。

MPDの操作にえらく待たされたり、音楽を再生しても途中で止まる、マウントしたディレクトリをターミナルで見ようとしても何秒も待たされ、お亡くなりかと思いきや復活という具合です。

SSDはSamsung 860 QVO 1Tは裏には5V1.4Aとありますが平均消費電流は2.2W =0.44A位とか。なので電源問題では無い。海外フォーラムを見ていたら同じ問題が上がってました。
 https://blog.codetitans.pl/post/ssd-over-usb3-on-raspberry-pi-4/

hdparmで簡易ベンチマークをしてみたら、驚きの結果が。

$ sudo apt install hdparm
$ sudo hdparm -tT /dev/sda1
/dev/sda1:
 Timing cached reads:   1666 MB in  2.00 seconds = 833.53 MB/sec
 Timing buffered disk reads:  22 MB in 31.24 seconds = 721.14 kB/sec

 721kB/secは何じゃこりゃぁ~です。個体の問題ではなく、同じチップ採用のメーカも基盤レイアウトも違う2台で同じ結果です。JMS567チップはラズパイでは全滅という事ですヮ。

$ sudo lsusb
Bus 002 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge

$ sudo lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M

更に調査するとraspberry側はUASPドライバをロードしています。
このチップを使うなら、/boot/cmdline.txt に以下を追加します(行の最初に入れ、元からのも1行で)

usb-storage.quirks=152d:0578:u

u=IGNORE_UAS としてJMS567をブラックリストに登録したよ、という意味らしい。
これでusb-storageドライバが代用されます。

$ sudo lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

結果はOKとなり、MPDのもたつきや突然死も無くなりました。
だけど手間なのは変わらないし、ラズパイのOS入れ替えればまた同じ事しなければなりません。それは嫌なので、何が良いのかチップから探してみました。

USB3.1 Gen2 ASM1351、VL716 10Gbps対応
USB3.1 Gen1 ASM1153E  5Gbps+対応

今の所この辺が安全らしい。該当する2.5インチSSD/HDDケースはというと、こんな感じです。-2020.2月

ORICO 2588C3-G2 VL716 USB3.1 Gen2 USB-C プラケース TYPE-C/C, TYPE-C/A
ORICO 2139C3 VL716 USB3.1 Gen2 USB-C 透明ケース TYPE-C/A
Inateck FE2011 ASM1153E USB3.1 Gen1 TYPE-microB 金属ケース
Inateck FE2013 ASM1153E USB3.1 Gen1 TYPE-microB プラケース

Inateck FE2013はraspberryに通電しただけでは起動せず、電源ボタンを押す必要があります。
raspberryのUSBポートは電源ボタンを押してもすぐには通電せず、前面のアクセスLEDが光ってから6秒位の時に電源ボタンを押せばOKみたいです。だけどうっかりMPDデーモンが先に起動してしまうと、マウント先のSSDが無いと判断されてしまいます。そうなると厄介。

で、最終的にはORICO 2588C3-G2にしました。
接続はUSB TYPE-C/A ケーブルなので10Gbpsではなく5Gbps+UASPですが、将来を見越して。
プラケースですがSSDなので音楽再生程度では熱くはならないです。

以下はhdparmによる簡易ベンチマークでご参考まで。Readだけ3回やってみての中間値です。
ORICO 2139C VL716チップ usaドライバ経由

$ sudo hdparm -tT /dev/sda1
/dev/sda1:
 Timing cached reads:   1660 MB in  2.00 seconds = 829.87 MB/sec
 Timing buffered disk reads: 992 MB in  3.00 seconds = 330.66 MB/sec

Inateck FE2013 ASM1153Eチップ usaドライバ経由

$ sudo apt install hdparm
$ sudo hdparm -tT /dev/sda1
/dev/sda1:
 Timing cached reads:   1632 MB in  2.00 seconds = 815.76 MB/sec
 Timing buffered disk reads: 988 MB in  3.00 seconds = 329.13 MB/sec

Salcar JMS567チップ usb-storageドライバ経由

$ sudo hdparm -tT /dev/sda1
/dev/sda1:
 Timing cached reads:   1600 MB in  2.00 seconds = 800.41 MB/sec
 Timing buffered disk reads: 888 MB in  3.00 seconds = 295.73 MB/sec

さて、pi4の発熱問題は公式ブログでも言われていて、ファームウェア改善でかなり良くなったらしいですが、それでも放熱ケースやファンは必要です。
 https://www.raspberrypi.org/blog/thermal-testing-raspberry-pi-4/

ミュージックサーバーの代表的なのはVolumio2, Moode Audioと思いますが、
Volumio2はraspberryを常にフルスピードで動作させます。

$ grep "" /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

performanceなので1.5GHzの最大値。30分も動作させていると放熱ケースでも熱い風呂くらいになります。温度下げるには/boot/config.txt に arm_freq=600 force_turbo=1 を追加して600MHz固定にすればOKらしい。再生もOKですがどうもねぇ

Moode AudioはVersion 6.4でRaspberry pi4にも対応し、こちらはondemandで動作します。再生時は600MHzでした。音がどうにかならないかと弄ってみて、MPDのバッファサイズを4096 -> 8192にしたらvolumio2の音に近づいたような気がします。

Moode Audioのジャケ写真一覧はvolumioみたいな欠落も無く、落ち着いてJazzが聞けるようになりました。
2020-01-31_21h45_23.jpg

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
8
Help us understand the problem. What are the problem?