西川和久の不定期コラム
前世代から大幅パワーアップ!「Raspberry Pi 4 Model B/4GB」紹介編
2020年1月15日 11:00
2019年11月25日、国内で技適に対応したRaspberry Pi 4 Model B/4GBが販売開始となった。編集部から実機が送られて来たので「ご紹介編」、「実践編」と2回に別けてお届けしたい。
Raspberry Pi 3 Model Bから大幅パワーアップ!
2016年6月にRaspberry Pi 3 Model Bの紹介記事を4回に別けて掲載したが、今回はそのRaspberry Pi 4 Model B/4GB版となる(今回は前後編の2回)。
Raspberry Pi 4 Model B自体は2019年6月にRaspberry Pi財団が販売を開始しているが、技適に対応して国内販売が開始されたのは11月末のタイミングだ。
強化ポイントは、
- 1.2GHz クアッドコア Cortex-A53 ARMv8 から 1.5GHz クアッドコア Arm Cortex-A72 ARMv8 64bit(GPUはVideoCore VIで4K/60p H.265のデコード対応)へ
- メモリ1GB(DDR2) から 4GB(LPDDR4)へ
- Ethernet、IEEE 802.11 b/g/n、Bluetooth 4.1+LE から Gigabit Ethernet、IEEE 802.11ac、Bluetooth 5へ
- USB 2.0×4 から USB 2.0×2、USB 3.0×2へ
- HDMI から Micro HDMI×2へ
- 電源供給がMicro USB B 5V/2.5A から USB Type-C 5V/最小3Aへ
と、Armのアーキテクチャは少し古い(2015年)とはいえ、およそ今時のエントリーPC並みの構成と言える。おもな仕様は以下のとおり。
「Raspberry Pi 4 Model B/4GB」の仕様 | |
---|---|
SoC | Broadcom 2711/4コア1.5GHz Arm Cortex-A72 ARMv8 64bit |
メモリ | 4GB(LPDDR4)※1GB/2GBモデルあり |
インターフェイス | Gigabit Ethernet、IEEE 802.11ac、Bluetooth 5、USB 2.0×2、USB 3.0×2、microSDカードスロット、Micro HDMI×2(4Kp60対応)、音声/コンポジット出力コンボ、GPIO、Camera interface (CSI)、Display interface (DSI) |
サイズ | 85×56×17mm(幅×奥行き×高さ) |
電源 | USB Type-C 5V/最小3A(GPIOヘッダーも同じ) |
なかでもうれしいのは、SoCとメモリの性能アップはもちろん、USB 3.0/Gigabit Ethernet対応となったこと。以前は100BASE-TX/USB 2.0でNAS的な用途は厳しかったが、これで速度的なウィークポイントはなくなった。
Raspberry Pi 3 Model Bの改良版「Raspberry Pi 3 Model B+」はGigabit Ethernet対応だが、内部でUSB 2.0を経由しているので速度が出ず、このRaspberry Pi 4 Model Bで真のGigabit Ethernet対応となった。
加えて電源がMicro USB B 5V/2.5Aと、少し特殊(2Aまでがほとんど)だったのが、USB Type-C 5V/最小3Aとなり、用意しやすくなった。
逆にディスプレイへの接続は一般的なHDMIケーブルが使えないので少し面倒。今回手元にたまたまMicro HDMI/HDMIケーブルがあったので助かったが(昔Surface 2用に買ったもの)、もしなければ別途購入しなければならない。
そのほか、基板サイズ、GPIO、Camera interface (CSI)、Display interface (DSI)は、GPIOの電源仕様以外は同じだ。ただしHDMIがMicro HDMI×2になったり、一部コネクタの位置/形状が異なるため、従来のケースは流用できず、Pi 4専用のケースが必要となる。
Raspberry Pi 3 Model Bとサイズや多くの位置関係が同じなので、写真の説明はとくに必要ないと思うが、1点だけ。cat /proc/cpuinfoを見ると
cat /proc/cpuinfo | |
---|---|
Hardware | BCM2835 |
Revision | c03112 |
Model | Raspberry Pi 4 Model B Rev 1.2 |
となっている。
じつはこのc03112 / Raspberry Pi 4 Model B Rev 1.2が重要で、技適対応ではない初期モデルはc03111 / Raspberry Pi 4 Model B Rev 1.1となっており、Type-Cの電源問題(eMaker内蔵ケーブルが使えない)が発生する。ハードウェア的にも違いがあり、裏のmicroSDカードスロット近くにある赤くマーキングしたチップがない。
技適対応は国内で使うため重要だが、このc03112 / Rev 1.2 / チップありも、手持ちのACアダプタ/ケーブルを簡単に使いまわしできると言う意味で重要。いずれにしても、技適対応版を選んだほうが安心だ。
セットアップおよび作動状況確認
セットアップするにはまずOSのイメージを用意する必要がある。ダウンロードサイトを見ると、「NOOBS」、「Raspbian」、「Ubuntu MATE、Ubuntu Core」(Pi 2 or 3のみ)、「Ubuntu Server」、「Windows 10 IoT Core」(Pi 2 or 3のみ)などいろいろあるが、4に未対応なものもあり、ここは素直にRaspbianを入れてみたい。
Raspbianにも「Raspbian Buster with desktop and recommended software」、「Raspbian Buster with desktop」、「Raspbian Buster Lite」と3種類あるが、取りあえずRaspbian Buster with desktopとした。
手順は、ダウンロードしたzipファイルを展開、imgファイルを適当なツール(今回はbalenaEtcherを使用)を使ってmicroSD(16GB)にOSイメージを書き込む。
あとはmicroSDをRaspberry Pi 4 Model Bにセットして、USBへマウス/キーボード、Micro HDMI/HDMIケーブル(port1はType-C側)、(必要に応じて)Ethernetを接続、最後に電源のType-Cを差し込めばBoot、そしてOSが起動する。このあたりはほかのボードコンピュータでもほぼ同じ手順なので、とくに難しいことはないだろう。
今回電源はMacBook 12付属のものを使用した。初期版では電源に関してType-Cとの互換性で問題があったものの、先に書いたとおり技適対応版は修正済みなので、安心してACアダプタの使いまわしができる。
OS起動後、初期設定で、ロケール/言語/キーボードの種類、piユーザーのパスワード、Wi-Fiの設定、ソフトウェアアップデートを経て、デスクトップが起動する。ソフトウェアアップデートは結構時間がかかるので、その間にSoCを触ってみると、この時期で室内の気温は低めなのだが、それでも10秒も触っていると火傷しそうな熱さだった。長時間運用を考えると、ヒートシンクを付けたほうが無難そうだ。
ほかのマシンからssh接続するには割り当てられたIPアドレスが必要だ(raspberrypi.localでもOK)。Ethernet/Wi-FiともにDHCPから割り当てられているため、Ethernet側(eth0)とWi-Fi側(wlan0)をifconfigで確認したところ、それぞれ192.168.11.2と192.168.11.7だった。またsshがオフになっていたため、「Raspberry Pi Configuration」でオンにする。
$ ssh pi@192.168.11.2 password: xxxxxx ※id: pi、password: 初期設定時に設定したパスワード ※@以降は割り当てられたIPアドレス。raspberrypi.localでもOK
軽く確認したところ、16GBのmicroSDカードだと約11GBの空き。sudo suはパスワードなしでOK。メモリは約3.9GB中3.6GBがフリー。かなりの余裕がある。
試しにベンチマークテストとしてGoogle Octane 2.0を実行したところ、スコア8,293を記録。筆者が合格ラインとしている1万には届かないものの、エントリーPC並みのスコアだ。冒頭に書いたとおりSoCやメモリがパワーアップしているためデスクトップ環境としても使えそうだ。
サーバーっぽく(?)sshで操作するだけならディスプレイやキーボード/マウスなどは必要ない。いったんshutdown nowして、不必要なケーブル類を外し再起動。これで準備は整った。なお、Type-Cが2つあるMacBook Proなどは、USB/Type-Cケーブル1本で起動、操作することも可能だ(と言ってもType-Cで電源供給するだけであとはWi-Fiなのだが)。
大雑把に説明すると、imgをmicroSDカードに書き込むまでは同じ。その後MacまたはLinuxでmountして、ssh オン/Wi-Fi設定のファイルを編集。umountして本体へmicroSDカードをセット。USB/Type-Cケーブルを差し込み起動、sshで接続といった感じだ。
また先のRaspberry Pi ConfigurationでVNCがオフになっているのでオンにして、macOSのFinder、サーバーへ接続(vnc://xxx.xxx.xxx.xxx:5901)でリモートデスクトップも利用可能だ。Windowsがクライアントの場合は、VNC Viewer を使えばよい。このあたりはググるといろいろ載っているので興味のある人は検索してほしい。
筆者はMacBook 12しかなく、Type-Cが1つ。おそらく動くだろうが、Mac側への電源給電ができず、見る見るバッテリが減りそうなので試していない。
UnixBench / iperf3によるベンチマークテスト
筆者はRaspberry Pi 3 Model Bを所有しており、Volumioでおもにネットラジオ/ミュージックサーバーを動かしている。その経験からRaspberry Pi 4 Model Bのほうが体感的に速く感じる。余談になるが、Volumioは、“2.599 (02-08-2019) NEW ADDITIONS Raspberry PI 4 support”と、Raspberry Pi 4 Model Bにも対応済みだ。
具体的にどれだけ速いか知りたいこともあり、UnixBenchを実行した。以前計測したRaspberry Pi 3 Model Bのスコアと比較もできる。インストールと実行方法は以下のとおり(URLが当時から変わっている)。
$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz $ tar zxvf UnixBench5.1.3.tgz $ cd UnixBench $ make $ ./Run
結果はRaspberry Pi 4 Model B vs Raspberry Pi 3 Model Bで、1 parallel copy of tests 324.7:295.4、4 parallel copy of tests 864.1:511.1となった。思ったほど速くないというのが正直なところだが、テスト時間は12分に対して25分とこれは倍速い。体感的に速く感じたのはこちらだろうか。
Raspberry Pi 4 Model BのUnixBench 5.1.3 | |
---|---|
BYTE UNIX Benchmarks (Version 5.1.3) | |
System | raspberrypi: GNU/Linux |
OS | GNU/Linux -- 4.19.75-v7l+ -- #1270 SMP Tue Sep 24 18:51:41 BST 2019 |
Machine | armv7l (unknown) |
Language | en_US.utf8 (charmap="UTF-8", collate="UTF-8") |
CPU 0 | ARMv7 Processor rev 3 (v7l) (0.0 bogomips) |
CPU 1 | ARMv7 Processor rev 3 (v7l) (0.0 bogomips) |
CPU 2 | ARMv7 Processor rev 3 (v7l) (0.0 bogomips) |
CPU 3 | ARMv7 Processor rev 3 (v7l) (0.0 bogomips) |
13:13:31 up 12 min, 2 users, load average: 0.57, 0.33, 0.27; runlevel 5 |
Raspberry Pi 4 Model B | 4 CPUs in system; running 1 parallel copy of tests | ||
---|---|---|---|
Dhrystone 2 using register variables | 10266378.6 lps (10.0 s, 7 samples) | ||
Double-Precision Whetstone | 2392.0 MWIPS (9.6 s, 7 samples) | ||
Execl Throughput | 909.9 lps (30.0 s, 2 samples) | ||
File Copy 1024 bufsize 2000 maxblocks | 114583.5 KBps (30.0 s, 2 samples) | ||
File Copy 256 bufsize 500 maxblocks | 32058.5 KBps (30.0 s, 2 samples) | ||
File Copy 4096 bufsize 8000 maxblocks | 319781.1 KBps (30.0 s, 2 samples) | ||
Pipe Throughput | 163291.4 lps (10.0 s, 7 samples) | ||
Pipe-based Context Switching | 49006.8 lps (10.0 s, 7 samples) | ||
Process Creation | 1877.8 lps (30.0 s, 2 samples) | ||
Shell Scripts (1 concurrent) | 2413.5 lpm (60.0 s, 2 samples) | ||
Shell Scripts (8 concurrent) | 733.6 lpm (60.0 s, 2 samples) | ||
System Call Overhead | 493968.0 lps (10.0 s, 7 samples) | ||
System Benchmarks Index Values | BASELINE | RESULT | INDEX |
Dhrystone 2 using register variables | 116700 | 10266378.6 | 879.7 |
Double-Precision Whetstone | 55 | 2392 | 434.9 |
Execl Throughput | 43 | 909.9 | 211.6 |
File Copy 1024 bufsize 2000 maxblocks | 3960 | 114583.5 | 289.4 |
File Copy 256 bufsize 500 maxblocks | 1655 | 32058.5 | 193.7 |
File Copy 4096 bufsize 8000 maxblocks | 5800 | 319781.1 | 551.3 |
Pipe Throughput | 12440 | 163291.4 | 131.3 |
Pipe-based Context Switching | 4000 | 49006.8 | 122.5 |
Process Creation | 126 | 1877.8 | 149.0 |
Shell Scripts (1 concurrent) | 42.4 | 2413.5 | 569.2 |
Shell Scripts (8 concurrent) | 6 | 733.6 | 1222.6 |
System Call Overhead | 15000 | 493968 | 329.3 |
System Benchmarks Index Score | 324.7 |
Raspberry Pi 4 Model B | 4 CPUs in system; running 4 parallel copies of tests | ||
---|---|---|---|
Dhrystone 2 using register variables | 41033603.3 lps (10.0 s, 7 samples) | ||
Double-Precision Whetstone | 9567.0 MWIPS (9.6 s, 7 samples) | ||
Execl Throughput | 2719.1 lps (29.9 s, 2 samples) | ||
File Copy 1024 bufsize 2000 maxblocks | 219642.5 KBps (30.0 s, 2 samples) | ||
File Copy 256 bufsize 500 maxblocks | 59351.9 KBps (30.0 s, 2 samples) | ||
File Copy 4096 bufsize 8000 maxblocks | 623613.0 KBps (30.0 s, 2 samples) | ||
Pipe Throughput | 617674.5 lps (10.0 s, 7 samples) | ||
Pipe-based Context Switching | 196196.9 lps (10.0 s, 7 samples) | ||
Process Creation | 4744.0 lps (30.0 s, 2 samples) | ||
Shell Scripts (1 concurrent) | 5820.9 lpm (60.0 s, 2 samples) | ||
Shell Scripts (8 concurrent) | 800.7 lpm (60.2 s, 2 samples) | ||
System Call Overhead | 1871127.4 lps (10.0 s, 7 samples) | ||
System Benchmarks Index Values BASELINE RESULT | INDEX | ||
Dhrystone 2 using register variables | 116700 | 41033603.3 | 3516.2 |
Double-Precision Whetstone | 55 | 9567 | 1739.5 |
Execl Throughput | 43 | 2719.1 | 632.3 |
File Copy 1024 bufsize 2000 maxblocks | 3960 | 219642.5 | 554.7 |
File Copy 256 bufsize 500 maxblocks | 1655 | 59351.9 | 358.6 |
File Copy 4096 bufsize 8000 maxblocks | 5800 | 623613 | 1075.2 |
Pipe Throughput | 12440 | 617674.5 | 496.5 |
Pipe-based Context Switching | 4000 | 196196.9 | 490.5 |
Process Creation | 126 | 4744 | 376.5 |
Shell Scripts (1 concurrent) | 42.4 | 5820.9 | 1372.9 |
Shell Scripts (8 concurrent) | 6 | 800.7 | 1334.5 |
System Call Overhead | 15000 | 1871127.4 | 1247.4 |
System Benchmarks Index Score | 864.1 |
Raspberry Pi 3 Model BのUnixBench 5.1.3 | |
---|---|
BYTE UNIX Benchmarks (Version 5.1.3) | |
System | raspberrypi: GNU/Linux |
OS | GNU/Linux -- 4.4.11-v7+ -- #888 SMP Mon May 23 20:10:33 BST 2016 |
Machine | armv7l (unknown) |
Language | en_US.utf8 (charmap="UTF-8", collate="UTF-8") |
CPU 0 | ARMv7 Processor rev 4 (v7l) (0.0 bogomips) |
CPU 1 | ARMv7 Processor rev 4 (v7l) (0.0 bogomips) |
CPU 2 | ARMv7 Processor rev 4 (v7l) (0.0 bogomips) |
CPU 3 | ARMv7 Processor rev 4 (v7l) (0.0 bogomips) |
16:02:34 up 25 min, 3 users, load average: 0.19, 0.06, 0.06; runlevel 5 |
Raspberry Pi 3 Model B | 4 CPUs in system; running 1 parallel copy of tests | ||
---|---|---|---|
Dhrystone 2 using register variables | 4362393.9 lps (10.0 s, 7 samples) | ||
Double-Precision Whetstone | 740.8 MWIPS (9.7 s, 7 samples) | ||
Execl Throughput | 530.1 lps (29.9 s, 2 samples) | ||
File Copy 1024 bufsize 2000 maxblocks | 150283.0 KBps (30.0 s, 2 samples) | ||
File Copy 256 bufsize 500 maxblocks | 43968.5 KBps (30.0 s, 2 samples) | ||
File Copy 4096 bufsize 8000 maxblocks | 359126.0 KBps (30.0 s, 2 samples) | ||
Pipe Throughput | 316759.1 lps (10.0 s, 7 samples) | ||
Pipe-based Context Switching | 55242.2 lps (10.0 s, 7 samples) | ||
Process Creation | 2573.2 lps (30.0 s, 2 samples) | ||
Shell Scripts (1 concurrent) | 2026.1 lpm (60.0 s, 2 samples) | ||
Shell Scripts (8 concurrent) | 428.5 lpm (60.1 s, 2 samples) | ||
System Call Overhead | 696284.8 lps (10.0 s, 7 samples) | ||
System Benchmarks Index Values | BASELINE | RESULT | INDEX |
Dhrystone 2 using register variables | 116700 | 4362393.9 | 373.8 |
Double-Precision Whetstone | 55 | 740.8 | 134.7 |
Execl Throughput | 43 | 530.1 | 123.3 |
File Copy 1024 bufsize 2000 maxblocks | 3960 | 150283 | 379.5 |
File Copy 256 bufsize 500 maxblocks | 1655 | 43968.5 | 265.7 |
File Copy 4096 bufsize 8000 maxblocks | 5800 | 359126 | 619.2 |
Pipe Throughput | 12440 | 316759.1 | 254.6 |
Pipe-based Context Switching | 4000 | 55242.2 | 138.1 |
Process Creation | 126 | 2573.2 | 204.2 |
Shell Scripts (1 concurrent) | 42.4 | 2026.1 | 477.9 |
Shell Scripts (8 concurrent) | 6 | 428.5 | 714.1 |
System Call Overhead | 15000 | 696284.8 | 464.2 |
System Benchmarks Index Score | 295.4 |
Raspberry Pi 3 Model B | 4 CPUs in system; running 4 parallel copies of tests | ||
---|---|---|---|
Dhrystone 2 using register variables | 11519216.5 lps (10.0 s, 7 samples) | ||
Double-Precision Whetstone | 1956.3 MWIPS (12.2 s, 7 samples) | ||
Execl Throughput | 1602.2 lps (29.9 s, 2 samples) | ||
File Copy 1024 bufsize 2000 maxblocks | 158754.4 KBps (30.0 s, 2 samples) | ||
File Copy 256 bufsize 500 maxblocks | 43738.8 KBps (30.0 s, 2 samples) | ||
File Copy 4096 bufsize 8000 maxblocks | 426885.8 KBps (30.0 s, 2 samples) | ||
Pipe Throughput | 837867.5 lps (10.0 s, 7 samples) | ||
Pipe-based Context Switching | 123367.2 lps (10.0 s, 7 samples) | ||
Process Creation | 3590.0 lps (30.0 s, 2 samples) | ||
Shell Scripts (1 concurrent) | 3018.0 lpm (60.0 s, 2 samples) | ||
Shell Scripts (8 concurrent) | 359.5 lpm (61.6 s, 2 samples) | ||
System Call Overhead | 1851450.6 lps (10.0 s, 7 samples) | ||
System Benchmarks Index Values | BASELINE | RESULT | INDEX |
Dhrystone 2 using register variables | 116700 | 11519216.5 | 987.1 |
Double-Precision Whetstone | 55 | 1956.3 | 355.7 |
Execl Throughput | 43 | 1602.2 | 372.6 |
File Copy 1024 bufsize 2000 maxblocks | 3960 | 158754.4 | 400.9 |
File Copy 256 bufsize 500 maxblocks | 1655 | 43738.8 | 264.3 |
File Copy 4096 bufsize 8000 maxblocks | 5800 | 426885.8 | 736.0 |
Pipe Throughput | 12440 | 837867.5 | 673.5 |
Pipe-based Context Switching | 4000 | 123367.2 | 308.4 |
Process Creation | 126 | 3590 | 284.9 |
Shell Scripts (1 concurrent) | 42.4 | 3018 | 711.8 |
Shell Scripts (8 concurrent) | 6 | 359.5 | 599.2 |
System Call Overhead | 15000 | 1851450.6 | 1234.3 |
System Benchmarks Index Score | 511.1 |
Gigabit Ethernetの速度はiperf3で確認。Raspberry Pi 4 Model B側をサーバー(iperf)、同一LAN上のWindowsマシンをクライアント(https://iperf.fr/iperf-download.php#windows)にして実行したところ926 Mbits/sec出ている。Gigabit Ethernetの性能は額面どおりだ。
C:\Users\PCWatch\Desktop\iperf-3.1.3-win64>iperf3 -c 192.168.11.2
Connecting to host 192.168.11.2, port 5201
[ 4] local 192.168.11.6 port 62965 connected to 192.168.11.2 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 103 MBytes 864 Mbits/sec
[ 4] 1.00-2.00 sec 106 MBytes 891 Mbits/sec
[ 4] 2.00-3.00 sec 110 MBytes 927 Mbits/sec
[ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 940 Mbits/sec
[ 4] 5.00-6.00 sec 112 MBytes 940 Mbits/sec
[ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec
[ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec
[ 4] 8.00-9.00 sec 112 MBytes 940 Mbits/sec
[ 4] 9.00-10.00 sec 112 MBytes 940 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.08 GBytes 926 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.08 GBytes 926 Mbits/sec receiver
iperf Done.
USB 3.0に関しては、手元にUSB接続できるSSDがなかったため、USBインターフェイスの仕様のみlsusbコマンドで確認した。Bus 002がLinux Foundation 3.0 root hub / 5000Mとあるので大丈夫そうだ。
pi@raspberrypi:~/iperf $ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~/iperf $ lsusb -t
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
今回Part1はご紹介編として、製品の紹介、OSのインストール/起動、状況確認、基本的なベンチマークテストを行なった。SoCやメモリのパワーアップもさることながら、有線LANとUSBが今時の仕様となり、NASなど利用できる範囲が広がったのはポイントが高い。
Part2となる2回目は、実践編なのだが、何をするかは現在考え中。openmediavault(https://www.openmediavault.org/)が動くようなのでNASでも組んでみるか……。