TOC
以下の記事の続きです。
Orange Pi 5のOSをJoshua Riek氏のビルドするUbuntu Serverにスイッチ、簡易温度測定
そもそものOrange Pi 5でのM.2スロットの注意
RK3588Sを搭載しているOrange Pi 5ですが、M.2スロットがボードの裏面にあり、ここにSSDを接続できます。1
ですが、このM.2スロットがPCI Express 2.0の1レーンで接続されているので、なかなかの低速でしか使えません。
どのくらいの低速かというと、PCI Express 2.0の転送レートは理論値は1レーンあたり5Gbpsで、8b10bで通信をするので実効値の上限は4Gbpsです。
他方、SATA3の通信速度は6Gbpsであり、こちらも8b10bで通信をするので実効値の上限は4.8Gbpsです。
つまり、Orange Pi 5のM.2スロットの通信速度はSATA3よりも遅い。ということを前提にしてNVMe SSDを使うことになります。2
なので、今回は十分に遅い通信速度でSSDを繋ぐことから読み書き時の発熱はかなり小さいだろうという目論見でTBW重視でSSDを選びました。
今回のSSDはこちら!色々いわくつきのSiliconPowerのP34A80 1TB(SP001TBP34A80M28)
SP P34A80 PCIe Gen 3x4 M.2 2280 SSD_Compact and case-less for ultrabooks or tablet PCs
なぜこれを選んだかというのは理由が様々あるわけですが、今回これを選んだのは
- 安い
- SLCキャッシュとDRAMキャッシュ付き
- 5年orTBW内保証
- TBWが800TBと長め(https://www.silicon-power.com/support/lang/big5/TBW.pdf)
だからです。逆になぜいわくつきなのかというと
- 同じ品番なのにNANDチップがメーカーごと変わる
- 同じ品番なのに片面実装になったり両面実装になったりする
- 中国共産党・人民解放軍と関係があると言われていてアメリカで禁輸措置が取られているYMTC(长江存储科技有限责任公司)のNANDチップが使われていた
という話題に事欠かないSSDです。NANDチップがロットで変わることを考えると信頼性については疑問が残りますが、今回はそもそも読み込み3.4GB/s、書き込み3GB/sの高速SSDをSATA3よりも遅い超低速環境で使うので、問題があったとしても顕在化しないだろうと高を括っている部分はあります。
Orange Pi 5とGeekworm N506に取り付け
これをまずはOrange Pi 5に取り付けて、その後Geekworm N506に取り付けます。
ちなみに両面実装でした。仕様に書かれてるDRAMキャッシュは表面実装で間に合うのかな?それとも裏面分はDRAMキャッシュなし?
NANDチップはYMTCのロゴが見えるので、やっぱりアメリカで禁輸措置の取られてるYMTCなのかな?東芝の64層3D TLC NAND(BiCS 3)ではありませんでした。
「YA2070701」「CAA 2244」「YMN0BTE1B1JC3B」は情報が見つかりませんでした。CAA 2244は製造ラインと2022年44週製造かな?
Orange Pi 5に取り付け
2242のサイズを超えているので、この跳ね上がった状態でOrange Pi 5への装着は完了です。
Geekworm N506に取り付け
Orange Pi 5をN506に取り付けるとこんな具合になります(仮どめ状態なのでネジ穴が真ん中になってないですがこのあと真ん中になります)
そして裏面のNANDチップはちょうど実装部分だけが上に何もない状態に。ここだけでもヒートシンク付けたほうがいいかな…
装着完了の図。SSDにヒートシンクを付けるべきかの是非ですが、ボードの下側の余裕が数mmしかないので付けれないものもあります。ケースの下側から風を送れれば十分だとは思います。
MicroSDで起動してSSDにUbuntuをインストール
SSDを装着したOrange Pi 5にこれまで通りMicroSDを挿して電源を入れると以前と変わらずMicroSDから普通にブートするので、諸々の作業をします。
SSDを認識しているか
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mtdblock0 31:0 0 16M 0 disk
mmcblk1 179:0 0 59.6G 0 disk
├─mmcblk1p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk1p2 179:2 0 59.1G 0 part /
nvme0n1 259:0 0 953.9G 0 disk
パーティションを切っていないので、デバイスだけ認識される状態でnvmeで始まる文字列が表示されていれば問題ないでしょう。
一応S.M.A.R.T値を見る
# apt-get install smartmontools
# smartctl /dev/nvme0 -a
smartctl 7.2 2020-12-30 r5155 [aarch64-linux-5.10.160-rockchip] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Number: SPCC M.2 PCIe SSD
Serial Number: 230195305xxxxxx
Firmware Version: VB421D70
PCI Vendor/Subsystem ID: 0x10ec
IEEE OUI Identifier: 0x00e04c
Controller ID: 1
NVMe Version: 1.3
Number of Namespaces: 1
Namespace 1 Size/Capacity: 1,024,209,543,168 [1.02 TB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 500e04 c012070d10
Local Time is: Mon Jul 10 23:31:55 2023 JST
Firmware Updates (0x02): 1 Slot
Optional Admin Commands (0x0017): Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0014): DS_Mngmt Sav/Sel_Feat
Log Page Attributes (0x02): Cmd_Eff_Lg
Maximum Data Transfer Size: 32 Pages
Warning Comp. Temp. Threshold: 100 Celsius
Critical Comp. Temp. Threshold: 110 Celsius
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 8.00W - - 0 0 0 0 230000 50000
1 + 4.00W - - 1 1 1 1 4000 50000
2 + 3.00W - - 2 2 2 2 4000 250000
3 - 0.50W - - 3 3 3 3 4000 8000
4 - 0.0090W - - 4 4 4 4 8000 30000
Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 0
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 38 Celsius
Available Spare: 100%
Available Spare Threshold: 32%
Percentage Used: 0%
Data Units Read: 19 [9.72 MB]
Data Units Written: 0
Host Read Commands: 443
Host Write Commands: 0
Controller Busy Time: 0
Power Cycles: 2
Power On Hours: 1
Unsafe Shutdowns: 1
Media and Data Integrity Errors: 0
Error Information Log Entries: 0
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Error Information (NVMe Log 0x01, 8 of 8 entries)
No Errors Logged
新品のSSD感漂っていますね。
SSDにUbuntu Serverをインストール
私の場合はJoshua Riek氏のビルドしたUbuntu Serverを使っているので、このイメージをそのままSSDに焼き付けます。手順としてはEtcherでMicroSDに焼いたイメージファイルをddコマンドでSSDに焼くだけです。
https://github.com/Joshua-Riek/ubuntu-rockchip/releases
ここから落としたOrange Pi 5用のUbuntu Serverのイメージファイル(ubuntu-22.04.2-preinstalled-server-arm64-orangepi5.img.xz)をMicroSDに転送してrootユーザーで扱える場所に持っていきます(私はいつもSFTPでコピーしてます)
# xz -dc ubuntu-22.04.2-preinstalled-server-arm64-orangepi5.img.xz | dd of=/dev/nvme0n1 bs=4k
1563904+0 records in
1563904+0 records out
6405750784 bytes (6.4 GB, 6.0 GiB) copied, 51.9053 s, 123 MB/s
# sync
これでNVMe SSDから起動すれば初期設定に入れますが、ボード上のSPIを書き換えない限りMicroSD以外から起動できないみたいなのでSPIを書き換えます。
まずは現在のSPIをバックアップ。
# dd if=/dev/mtdblock0 of=/root/mtdblock0.bkup
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 1.04916 s, 16.0 MB/s
これで/root/mtdblock0.bkup
に現在のSPIがバックアップされるので、なにかおかしくなったらなんとかしてSPIを戻します。
Orangepi-config missing · Issue #41 · Joshua-Riek/ubuntu-rockchip · GitHub
このissueの一番下にあるrkspi_loader.zip( https://github.com/Joshua-Riek/ubuntu-orange-pi5/files/10889255/rkspi_loader.zip )をダウンロードして展開すると中に入っているrkspi_loader.imgをやっぱりMicroSDに転送してrootユーザーが扱える場所に持っていきます。この例ではrootユーザーのホームディレクトリに置いています。
# dd if=/root/rkspi_loader.img of=/dev/mtdblock0 conv=notrunc
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 236.167 s, 71.0 kB/s
これが信じられないくらい遅くて4分かかるので、雑用でもしましょう。書き込みが終了したらOrange Pi 5はMicroSDが刺さっていない場合はNVMe SSDから起動するようになっています。
MicroSDが刺さっている場合はこれまで同様MicroSDから起動するらしいので、今後はMicroSDは不要です。Orange Pi 5の電源を落とします。
# shutdown -h now
MicroSDを抜いて起動したら、再び初期設定を行います。内容は以前Joshua Riek氏のビルドでMicroSDにインストールした時と同じです。sshログインはubuntu / ubuntuでログイン時にパスワード変更をさせられます。
rootユーザーのパスワード設定(su - root)でrootになるので
$ sudo passwd root
作業ユーザーの追加
su -
でrootユーザーになってから
# adduser hogehoge
作業ユーザーをsudoグループに追加
# gpasswd --add hogehoge sudo
LAN内のapt-cacher-ngを参照させる
/etc/apt/apt.conf.d/02cacher-ng
を以下の内容で作成
Acquire::http::Proxy "http://192.168.1.210:3142/";
aptの初回更新
# apt-get update
# apt-get upgrade
ロケールを日本に設定
$ timedatectl set-timezone Asia/Tokyo
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-timezone ===
Authentication is required to set the system timezone.
Multiple identities can be used for authentication:
1. Ubuntu (ubuntu)
2. ,,, (hogehoge)
Choose identity to authenticate as (1-2): 2
Password:
==== AUTHENTICATION COMPLETE ===
ひとまずOrange Pi 5に特有の初期設定についてはこれで終了です。
簡易温度チェック
恐怖の時間がやってきました。SSDを付けた状態のCPU温度チェックです。
CPU温度は以下のコマンドで取得します。
$ echo `cat /sys/class/thermal/thermal_zone0/temp` / 1000 | bc
38
なお、今回の室温は32度です。既にMicroSDの時より室温比で2度高いです。
CPU負荷をかけるコマンドは以下で行います。終了時はCtrl+cで停止します。
$ openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
MicroSD運用の時と同じ時間で計測しました。
負荷時間 | CPU温度 (室温32度、SSD運用) | CPU温度 (室温31度、MicroSD運用) |
---|---|---|
15秒 | 56度 | 43度 |
40秒 | 71度 | 50度 |
60秒 | 73度 | 54度 |
90秒 | 70度 | 54度 |
なかなか如実に熱いです。想像以上だったのでもう一回回してCPU温度ではなくS.M.A.R.Tで表示されるTemperatureを見てみましたがこちらはそれぞれ38度、39度、39度、40度となっていてSSDからの発熱はない(CPU負荷を見てるので理想の結果ではあるんですが)ということになって、そうするとOrange Pi 5は実は基板の裏側から放熱してるところにSSDを挿すと蓋をした状態になってるのかなとか色々考えられます。
また、60秒時点の73度から90秒時点の70度は目に見える下がり方なので、CPUのサーマルスロットリングが始まってるとしたらそれはそれで安心ではあるんですが。やっぱりもうちょっとSoC冷やしたいですね。
スポンサーリンク
comments powered by Disqus