HAVRMの空空活動誌

「空空」は「うつらうつら」と読むらしいです.まぁ常に寝不足なもんで...

Rock Pi 4A v1.4+Penta SATA HATによるNAS構築 Vol. 1 ~開封からRock Piの起動まで~

こんにちは
HAVRMです.

これまでデータについてはロジテックのガチャベイのRAID非対応にHDDを4枚挿したものに保存していました.
www.logitec.co.jp
ただ,写真・動画の画質向上や様々なデータが積み重なり,容量の空きがなくなったので次のものを用意する必要が生じました.

そこで1年以上前に購入したRock Pi 4A v1.4とPenta SATA HATを使ってNASを構築していこうと思います.もともとは購入した時にセットアップをする予定でしたが,いろいろ忙しく手を出せていませんでした...

そもそもRock Pi 4A/Bとは

あの有名なRaspberry Pi(RPi)と同じような見た目・形をした(コネクタは互換性がある)シングルボードコンピュータ(SBC)です.

Rock Pi 4A外観

rockpi.org
まだRPi4Bが発表される(2019年6月?)前に圧倒的な性能を持ったSBCとして中国のRadxaというメーカが発表した(2018年11月)ボードになります.
購入当時は「Radxa ROCK Pi 4 Model A」でしたが,今では「Radxa ROCK 4 Model A」と「Pi」が消えました.「Radxa」がブランド名で製品名は「ROCK」だと強調したいためだそうです(ここに記載があります).

性能について

発表された当時,RPi3B+までしかなく,ギガビットイーサネット正式対応やUSB3.0対応で(一部で)話題になり,またM2. SSDにまで対応しているのが特徴になります.性能全体としてはRPi4Bとそん色なく,十分使える性能になっています.なお,RPi4BはそれまでのModel Bとは違い,HDMIが2ポート有りますが,Rock Pi 4A/BについてはRPi3B+依然と同様HDMIは1ポートのみです.HDMIが2ポートになったものとしてRock Pi 4Cが販売されています.
簡単に性能比較をするとこのようになります.

RPi3B+ Rock Pi 4A/B RPi4B
発売・発表日 2018/3/14 2018/11/7 2019/6/24
コア数 4 6 4
クロック 1.4GHz 1.8GHz×2
1.4GHz×4
1.5GHz
メモリ 1GB 1~4GB 1~8GB
USBポート USB2.0×4 USB2.0×2
USB3.0 OTG×1
USB3.0×1
USB2.0×2
USB3.0×2
ストレージ microSD microSD
eMMC
M2. SSD SATA/NVMe
microSD
有線
ネットワーク
Gigabit Ethernet
(~300Mpps)
Gigabit Ethernet Gigabit Ethernet
電源 5V 2.5A
PoE with HAT
GPIO
USB PD 2(9V 2A/12V 2A)
PoE with HAT
GPIO
5V 3A
PoE with HAT
GPIO
価格 $35 $42~$79 $35~75

参考:

さすがに最新機種のRPi400と比べると少し落ちるかなという気もしますが,十分な性能だと思います.またRPi4Bと比べて少し割高ではありますが,M2. SSDが使えることを考慮すると十分買いだと思います.最近ではRock 4A+やRock 3,Rock 5等様々な製品を開発・販売しています.RPiよりは在庫があるイメージです.

無線について

さて上の比較表ではあえて書いてないですが,Rock Pi 4Aと4Bの違いは無線の有無になります.RPi等日本の有名どころ(秋月電子通商,スイッチサイエンス...)が販売しているものについては日本国内の無線の使用許可の「技適」を受けているので特に気にせず無線を使うことができます.一方でこのような有名どころが販売してないものについては無線を使う時は注意が必要です.開発会社が登録していればいいのですが,技適に登録されてない無線搭載機器を使うのは電源を付ける時点で電波法違反になります.というのも電波を発することができる状態にすることがアウトなのでソフトウェア的にオフにするとかもダメです.実際に総合通信局に聞いたYoutubeが大変助かりました.
【技適マーク問題】完全解決‼電源を入れただけで違法です。総合通信局に電話問い合わせしました - YouTube

今では届出を出せば実験的目的であれば180日間使える特例制度(特にお金はかかりません)があるのでこれに届出をすれば使えます.
www.tele.soumu.go.jp

とは言ったものの,ずっと使うためにはこのような届出をしなくても済むことに越したことはありません(期間後に別の目的で届出をすることで同じ機器を使い続けることはできるそうです).
このRadxaの製品についても技適は通してないですが,Rock Pi 4Aについては無線素子が載ってないので技適の対象から外れており,国内でも使えます.4Bは無線が搭載されているので観賞用にするか,届出を出して使うことになります.

なお自分は有線環境をきちんと整えているので無線は特に必要ないので(実際RPi2BやRPi4Bでは使ってないです)Rock Pi 4Aを購入しました.

RadxaのWikiについて

RadxaのWikiページは用意されてます.
wiki.radxa.com

しかし,Homeからだと上部の「Product」からしか各Wikiに行けないとか,リンクがだいぶ死んでいるとか,問題が多いです(2022/11/16現在).
最終の詳細なページ自体は用意されていることが多いので,下手に途中ページに行かずに,直接行くようにしたほうがいいです.
本ブログでは参考にしたWikiページ等掲載しているのでもし実際に使うのであればリンクを踏むと行きやすいです.
自分は「該当ページなし」に行くたびに経路を変えて目的のページに行けるよう試行錯誤していました...

Penta SATA HATとは

Rock Pi 4AにはM.2 SSD NVMeが挿せるといいましたが,このポートはPCIeポートと同義になります(厳密には違いますがそう認識していいはずです).そのためこのポートをPCIeの代わりに使うことも可能です.以前はそういうHATがあったような気がしましたが,今探しても見つからないので気のせいだったかもしれません.
このM.2 SSD NVMeポートを使ったHATとしてRadxaはPenta SATA HATを販売しています.
https://wiki.radxa.com/mw/images/5/5b/Penta_sata_hat_angle.png

これはSATA×4,eSATA×1の計5つのSATAタイプのHDD/SSDが接続できるHATになります.RPi4Bが発表された後にRPi4Bでも使えるDual/Quad SATA HATを販売していますが,こちらはUSB3.0のポートを埋めるので使い勝手は少し悪いです.

これを使うと簡単にNASを構築できます.通常のNASのガワだけでも数万円とかするので意外と安く済むうえにカスタムし放題なのでできると思う人は買ってみてもいいと思います.

購入について

これについては当然国内で販売していないので海外の通販で購入することになります.今回はRadxaのサイトでも販売箇所として紹介されている「ALLNET.CHINA」を使いました.NASにするうえでガワがあるキットもありますが,私はガワは3Dプリンタで作ることにしてなしで購入しました.
購入にかかった金額は次の通りです.

・Rock Pi 4 Model 4 2GB V1.4 :$55
・Penta SATA HAT for Rock Pi 4:$49
計:$104

購入当時(2021年4月頃?)のレートは$1=¥110なので大体¥11,000ぐらいになります.購入時に特に不満を持った記憶はないので特に問題なく届いていたと思います.ただ,購入情報が残らないのが少し不安ですね...

この記事を書いているときに気づいたのですが,Penta SATA HATの購入サイトのほうに「Penta SATA HATを使うならRock Pi 4にヒートシンクが必須だ」と書いてありました...Wikiのほうには書いてなかったので気づかなかったようです.冷却のためか,はたまた固定のためかわかりませんが,どちらもできるようなケースを作らないとだめですね...ヒートシンクはあるもので代用しましょう...

本体はRPi4Bと比べ少し割高ですが,2022/11/16現在でまだ在庫があったので,急ぎでSBCが欲しい人は買うのはアリだと思います.ただ,配送にどの程度かかるかはわからないですが(物流も結構混乱している+中国からの発送はそもそも遅い)…

Rock Pi 4Aのセットアップ

まずはRock Pi 4AにOSを書き込んで動くか確認しましょう.
インストールは下のWikiにあるのでその通りに進めます.
wiki.radxa.com

マイクロSDカードの準備

マイクロSDカードについてはサイトに128GBまで対応とあったので,自分は比較的安めのSDXC UHS Speed Class 1の64GBを購入しました.3年保証がついているのでいざというときは対応してもらえるかも?

自分は近くのPCデポで税込¥1,500で購入しました.

書き込みツールのインストール

今回はWindowsマシンで操作を行います.Radxaの方でSDカードに書き込むためのソフトを用意しているのでそれを以下のサイトからダウンロードします.
wiki.radxa.com

自分がダウンロードしたバージョンは「balenaEtcher-Setup-1.4.9-x86.exe」でした.
まずダウンロードしたファイルを実行します.
この時次のような画面が表示されるので中身を読んで「同意する」を押してください.

ライセンス同意

その後すぐにセットアップの画面が表示されるので,終わるのを待ちます.

セットアップ中

終わると画面が勝手に閉じるのでそのまま起動するのを待ちます.次の画面が出たらインストール完了です.

初期画面

なお,私の場合はこのとき更新するかを聞くような画面(下)が表示されましたが,「Skip」を選択しました.

更新版の確認

インストールするイメージの選択

OSのインストールですが,下手なOSを入れるとPenta SATA HATのドライバーがないということになりえるので,どのOSがいいかを調べることにします.ここからはPenta SATA HATのWikiページを見ます.
wiki.radxa.com

実際にドライバーをインストールする際に先方がShellscriptを用意してくれているようなので,そのコードを確認したところ,次のOSで確認済みだそうです(echoで出力することになっています).

どれがいいかわからない(個人的にはUbuntuがうれしいですが...)のでReviews & Guideにあるサイトを確認しましたが,リンクに書いてある通りフランス語で書いてあります...
hardware.developpez.com

さすがにフランス語はわからないのでここはGoogle先生に頑張ってもらいます.Google Chromeで外国語サイトを開くと右上の検索欄の右端にGoogle翻訳のアイコンが表示され,これを選択すると好きな言語に翻訳して表示してくれます.細かい翻訳ミスはあるので普段は使わないですが,読んでみてもさっぱりだったので今回はお世話になりました(普段は8割FireFoxで2割Chromeという感じでブラウザを使っています.以前は10割FireFoxでしたが,使えないサービスが増えたり,以前のような軽量なブラウザではなくなってきたうえに,Chromeのメモリーバカ食い問題も解消されつつある(もしくはあまり差がなくなった)ので少しずつChromeに移行しています.パスワードとかの観点で移行しきってない感じです...).

この記事?を書いた人はArmbianを使ったようです.Armbianは「全てのナノコンピュータ専用のDebianベースのディストリビューション」だそうです.これを選んだ理由としてはNASの制御に使う「openmediavault」がDebianベースであり,最新バージョンである必要があるため,Armbianを選択したそうです.ただ私はNAS構築に以前RPi4Bで使用していた(電源を間違えて引っこ抜いたためにOSが破壊されましたが...)Sambaを使うつもりでいるので,Ubuntuにします.

ということでUbuntuをインストールすることにしますが,この時フランス語のサイトのⅢに気になる文言を見つけました.
「実際、NAS が組み立てられると、RockPi に統合された microSD カード リーダーにアクセスできなくなります。」
今回使おうと思っているのはマイクロSDなので(eMMCもセットで買ったような気もするのですが,物がないので買ってないのでしょう),これが電子的になのか物理的になのかでだいぶ変わります.ただ周りの文章を読んだ感じだと,この記事で使用しているNASケースにマイクロSD用のスペースがなく(Rock Piの場合,マイクロSDは基板よりだいぶ外にはみ出ます),ケーブルとも干渉するためケースを組み立てられないということのようです.

RPi4B+PoE HAT(左)とRock Pi 4A(右)にマイクロSDを挿したところ(赤枠がはみ出している部分)

とりあえずやってみて,無理だったらおとなしくeMMCを買うことにしましょうか(今は少し落ち着いたとはいえ円高なのでドルで購入したくはないのです...)...

イメージのダウンロード

イメージのダウンロードはRock Pi 4のWikiページにあるように専用のOSインストールサイトがあります.
wiki.radxa.com

さて,どのOSがダウンロードできるかなと確認したところUbuntu Serverが「20.04」しかないです...先に書いたようにRock Pi 4で確認済みなのは「18.04」なので未確認ということになります...Rock 3の方では「20.04」が確認済みのようなので動くと信じて「20.04」でやってみます.
もしダメだったら,過去のリンクを探って掘り出すしかないですね(あきらめて他のOSを使うことになるかも)...

2022/11/16現在,Ubuntu Server 20.04にはLinux 4.4版と5.10版があります.ネットにあったスライドと公式サイトによると,Linux 4.4は長期間サポート(LTS)の対象であるものの,2022年2月にサポートが終了,Linux 5.10もLTSであり,2026年12月までサポートとなっています.
Linux Kernel のバージョンと Longterm Stable Kernel (LTS)
The Linux Kernel Archives - Releases

なので,サポートが切れたものを使ってもしょうがないのでLinux 5.10版をインストールします.
ダウンロードページのRock Pi 4A/4A+/4B/4B+用のLinux 5.10版のUbuntu Server 20.04を選択して,Githubに飛ばされました...
Release 20221101-0235 · radxa-build/rock-pi-4b · GitHub

とりあえず「rockpi-4b-ubuntu-focal-server-arm64-20221101-0358-gpt.img....」となっているファイル全てをダウンロードします.
結局どれかわからないのでソフトに任せましょう.ということでSDカードをPCに挿入し,先ほどインストールした書き込みツール「balenaEtcher」を起動します.
この時点でSDカードを挿しているのでSDカードが選択されます.間違いがないことを確認しましょう.

balenaEtcher起動時(SDカード認識済み)

次に「Select image」でイメージを選択しようとすると「....xz」の方のみ選択可能でした.そのためそのまま「....xz」を選択します.他のファイルも持っておいたほうがいいのかどうかは判断できないですが,ダウンロードしておいて損はないでしょう.

balenaEtcher起動時(イメージ選択済み)

その後は「Flash!」を選択するといつもの管理者権限を要求されて,それを許可すると書き込みが開始されます.
まず書き込み開始の準備(フォーマット等?)を行い,

balenaEtcher書き込み時(準備中)

書き込みを行い,

balenaEtcher書き込み時(書き込み中)

書き込み後は検証を行い,

balenaEtcher書き込み時(検証中)

終了画面が表示されます.

balenaEtcher書き込み終了

どうも書き込み速度等でかかる時間が変わるようで(タスクマネージャーで確認したらアクティブな時間が90%以上だった),USB3.0のUSB-SD変換アダプタを使って4分かかりました.
終わった直後に3つぐらいウィンドウが表示されて「ドライブ~を使うにはフォーマットする必要があります。」と表示されますが,正常のはずなので気にしなくていいです.UbuntuのOSで使うフォーマットがWindowsに対応していないためにおきることなので,何度も出てくる「フォーマットしますか」のウィンドウをすべて「キャンセル」しながら,デバイスの取り出しを行いましょう.

起動

ということで起動してみます.
電源はUSB PDとあるのでAnkerの「PowerPort Atom PD 2」とUSB PD 100W対応ケーブルで電源を入力することにしました.

キーボード・マウスは配線の都合上とりあえずエレコムのUSB切替機「U3SW-T4」を使って接続しました.

以前Ubuntu14.04をある事情から起動した際は使えませんでしたが,今回は試してみて使えました(実際に起動した後です).
またRock Pi 4Aには無線がついてないのでCat.6相当の有線ケーブルを使ってネットワークに接続します.
またディスプレイの方も普段使っているHD画質のモバイルモニターに接続します.

USB PD電源を入力すると,初回起動時は画面が出ず,基板の電力を示す緑LEDが点灯し,動作を示す?青LEDが点灯を始めます(2回点滅を繰り返します).
その後一度青LEDの点滅が止まり,再び青LEDの点滅が再開するとログイン画面が表示されました.

Ubuntu 20.04 LTS rockpi-4b tty1
rockpi-4b login:

画面では「rockpi-4b」となっていますが,rockpi-4aです.無線モジュールの有無だけなのでほとんど関係はないですが...

この時に初めてユーザ名とパスワードを確認することを忘れてて慌てて探すことになりました.
きちんとWikiに書いてありました(イメージをダウンロードしたサイト(githubじゃない方)の「Install Wiki」です).
wiki.radxa.com

他にもGPIOの使い方等きちんと載っていたのであらかじめ読んでおけばよかったです...

書いてある通りにユーザ名(rock)とパスワード(rock)でログインできました.

(続き)
rockpi-4b login: rock
Password:
Welcome to Ubuntu20.04 LTS (GNU/Linux 4.4.194-10-rk3399-rockchip-***** aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <commando>".
See "man sudo_root" for details.

rock@rockpi-4b:~$

初回起動なのでいろいろと出てきます.

セットアップを行う

使う上で最低限のセットアップを行います.
内容としてはユーザ名・パスワードの変更,ソフトのアップデート・アップグレード,SSHの確認です.

ユーザ名・パスワードの変更

標準のままにするとセキュリティがザルすぎるので,変更します.変更の方法は以前RPi2B用に作った初期設定用のShellscriptを参考にしています(このスクリプトは親機でSDカードにイメージを書き込んだ後に直接homeフォルダに保存し,「.bashrc」に「. rpi_ubuntu14_setup.sh」を書き込めば必要なセットアップをすべて自動で実行するものになります).
github.com

ここではユーザを新しく作っています.

(以下コマンドライン

$ sudo useradd -m <新規ユーザ名>
$ sudo usermod -G sudo <新規ユーザ名>
$ sudo passwd <新規ユーザ名>
New password: <新規ユーザパスワード>
Retype new password: <新規ユーザパスワード>
passwd: password update successfully
$ exit

「useradd」でユーザを追加し,「usermod」で追加したユーザを「sudo」グループに追加し(こうすることでこのユーザで「sudo」(Windowsでいう管理者権限?)で実行できる.なんかコマンドオプションを間違えてる気がするけど,これで動くので問題なし),「passwd」で追加したユーザのパスワードを設定しています.なおこのコマンドを実行するとき「[sudo] password for rock:」と表示されたときはログインしているユーザ(rock)のパスワード「rock」を入れてください.
なおこの方法で行うと「$」の前の「****@rockpi-4b」の表記が消えるのでそれが嫌な人は下のブログを参考にするといいと思います.
nekodeki.com

こちらではユーザの作成ではなく,ユーザ名の変更をしています.

最後の「exit」でログアウトしています.

これで新しいユーザができましたが,このままだと前の「rock」ユーザも「sudo」実行可能状態になっているので削除しちゃいましょう.

rock-4b login: <追加したユーザ名>
Password: <このユーザのパスワード>
Welcome to Ubuntu20.04 LTS (GNU/Linux 4.4.194-10-rk3399-rockchip-***** aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

Last login:aaa mmm dd HH:MM:SS UTC YYYY on tty1
$ sudo userdel -r rock
userdel: rock mail spool (/var/mail/rock) not found
$

これ以降「[sudo] password for ****:」が出てきた場合は新しく設定したパスワードを入力してください.

なんかエラーが出ていますが,あらためて「rock」でログインしようとしてもできなくなっているのでいいでしょう.

アップデート・アップグレードをする

いつものコマンドです.「apt-get」でも動くとは思いますが,できるだけ「apt」で行いましょう.
まずはアップデートです.10秒ほどで終わります.

$ sudo apt update
Get:1 http://...
...
*** packages can be upgraded. Run 'apt list --upgradable' to see them.
$

次はアップグレードです.自分の場合は6分程度かかりました.

$ sudo apt -y upgrade
...
$

「-y」は確認せずにインストールするオプションになります.

この後温度を測ってみましたが(実際はキーボードの日本語/英字用のキーの違いで苦労したので5分後とかですが...)CPU,GPUともに50℃程度(フィン・ファンなし)だったのでそこまで発熱してないなという感じでした.計測方法は下のサイトに書いてありますが,このコマンドそのままでは実行できませんでした(というよりコマンドの意味を理解してないです...)...
forum.radxa.com

$ cat /sys/class/thermal/thermal_zone*/temp | sed 's/\(.\)..$/.\1°C/'
52.1°C
53.2°C

上がSoC(チップ)温度,下がGPU温度のようです.

$ cat /sys/class/thermal/thermal_zone*/type
soc-thermal
gpu-thermal
SSHの確認

サーバーとして運用するのでSShでログインできると楽です.すでにSSHは標準でインストールされ,起動もしているので,そのまま使えます.IPアドレスについてはUbuntu16.04LTSまでは標準搭載だった「ifconfig」が標準でインストールされています.

$ ifconfig
eth0: flags=...
      inet ***.***.***.*** ...
...
$

このeth0(有線接続1番)のinetの項目がIPアドレスになります.

なおSSHの状態については次のコマンドで核にできます.

$ sudo systemctl status ssh
• ssh.service - OpenBSD Secure Shell server
       Loaded: load (/lib/systemd/system/ssh.service; enabled; vender preset: enabled)
       Active: active (running) ...
$

「Active」の項目が「active (running)」になっていればOKです.

後は別のPCから(自分はWSLから入っています)SShでつなげるだけです.
(ほかのPCで)

$ ssh <ユーザ名>@<IPアドレス>

最初は「つなげますか?」と聞かれるので「yes」で接続開始,パスワードが効かれるので,入力すると接続できます.

シャットダウン

とりあえず,動くことは確認できたのでシャットダウンをしちゃいましょう

$ sudo shutdown -h now

このコマンドを実行するとすぐに(パスワードを聞かれる時もありますが),画面が消え,5秒後とかには青LEDの点滅も消えました.それを確認してから電源を抜いてます.

実際に動かした感想

RPiと比べて起動や動作が早いなとは感じました.とはいえ,RPi2B,RPi4BはUbuntuで,RPi zeroはRaspberryPi OSで触っていたのでRPi4BでのRaspberryPi OSの起動等と比較したわけではない+やったのが昔なので正確ではないと思いますが,RPiシリーズ特有の起動時,シャットダウン時の長々とした処理がない分,早く終わっていると思います.また性能がRPi4B以上なのに,「apt upgrade」をしてもそこまで発熱はしていませんでした.RPi4Bは起動しただけでも相当熱くなっていたのとは大違いです(自分が使っていた時はPoE HATのファンで3Dプリンタで作ったPLA製ケースがゆがんだので風自体が50~60℃になっていたと思います).省電力コアが効いているのかな?

PoE HATの温風でゆがんだRPi4Bケース

まとめ

ということで,起動と基本的なセットアップまで行いました.次は実際に「Penta SATA HAT for Rock Pi 4」の組付け+ケースの設計・作成を行います.