西川和久の不定期コラム

前世代から大幅パワーアップ!「Raspberry Pi 4 Model B/4GB」紹介編

Raspberry Pi 4 Model B

 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」の仕様
SoCBroadcom 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専用のケースが必要となる。

前面は上にGPIO、左にDSI。SoCのパッケージが金属へ
背面は右にmicroSDカードスロット。赤いマーキングのチップはRev 1.2のみ(1.1にはない)
各種ポートとコネクタ1/2。Gigabit Ethernet、USB 3.0×2、USB 2.0×2
各種ポートとコネクタ2/2。Type-C、Micro HDMI×2、CSI、音声/コンポジット出力コンボ

 Raspberry Pi 3 Model Bとサイズや多くの位置関係が同じなので、写真の説明はとくに必要ないと思うが、1点だけ。cat /proc/cpuinfoを見ると

cat /proc/cpuinfo
HardwareBCM2835
Revisionc03112
ModelRaspberry 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イメージを書き込む。

OSダウンロード
img書込みソフトウェアbalenaEtcher。画面キャプチャはMac版だがWindows版もある

 あとは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秒も触っていると火傷しそうな熱さだった。長時間運用を考えると、ヒートシンクを付けたほうが無難そうだ。

Chromium、Terminal、Raspberry Pi Configuration(sshはオフ)
Google Octane 2.0は8,293。エントリーPC並みのスコア

 ほかのマシンから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
Windowsからsshでログイン
16GBのmicroSDだと約11GB空き

 軽く確認したところ、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)
Systemraspberrypi: GNU/Linux
OSGNU/Linux -- 4.19.75-v7l+ -- #1270 SMP Tue Sep 24 18:51:41 BST 2019
Machinearmv7l (unknown)
Languageen_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0ARMv7 Processor rev 3 (v7l) (0.0 bogomips)
CPU 1ARMv7 Processor rev 3 (v7l) (0.0 bogomips)
CPU 2ARMv7 Processor rev 3 (v7l) (0.0 bogomips)
CPU 3ARMv7 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 B4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables10266378.6 lps (10.0 s, 7 samples)
Double-Precision Whetstone2392.0 MWIPS (9.6 s, 7 samples)
Execl Throughput909.9 lps (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks114583.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks32058.5 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks319781.1 KBps (30.0 s, 2 samples)
Pipe Throughput163291.4 lps (10.0 s, 7 samples)
Pipe-based Context Switching49006.8 lps (10.0 s, 7 samples)
Process Creation1877.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 Overhead493968.0 lps (10.0 s, 7 samples)
System Benchmarks Index ValuesBASELINERESULTINDEX
Dhrystone 2 using register variables11670010266378.6879.7
Double-Precision Whetstone552392434.9
Execl Throughput43909.9211.6
File Copy 1024 bufsize 2000 maxblocks3960114583.5289.4
File Copy 256 bufsize 500 maxblocks165532058.5193.7
File Copy 4096 bufsize 8000 maxblocks5800319781.1551.3
Pipe Throughput12440163291.4131.3
Pipe-based Context Switching400049006.8122.5
Process Creation1261877.8149.0
Shell Scripts (1 concurrent)42.42413.5569.2
Shell Scripts (8 concurrent)6733.61222.6
System Call Overhead15000493968329.3
System Benchmarks Index Score324.7
Raspberry Pi 4 Model B4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables41033603.3 lps (10.0 s, 7 samples)
Double-Precision Whetstone9567.0 MWIPS (9.6 s, 7 samples)
Execl Throughput2719.1 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks219642.5 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks59351.9 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks623613.0 KBps (30.0 s, 2 samples)
Pipe Throughput617674.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching196196.9 lps (10.0 s, 7 samples)
Process Creation4744.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 Overhead1871127.4 lps (10.0 s, 7 samples)
System Benchmarks Index Values BASELINE RESULTINDEX
Dhrystone 2 using register variables11670041033603.33516.2
Double-Precision Whetstone5595671739.5
Execl Throughput432719.1632.3
File Copy 1024 bufsize 2000 maxblocks3960219642.5554.7
File Copy 256 bufsize 500 maxblocks165559351.9358.6
File Copy 4096 bufsize 8000 maxblocks58006236131075.2
Pipe Throughput12440617674.5496.5
Pipe-based Context Switching4000196196.9490.5
Process Creation1264744376.5
Shell Scripts (1 concurrent)42.45820.91372.9
Shell Scripts (8 concurrent)6800.71334.5
System Call Overhead150001871127.41247.4
System Benchmarks Index Score864.1
Raspberry Pi 3 Model BのUnixBench 5.1.3
BYTE UNIX Benchmarks (Version 5.1.3)
Systemraspberrypi: GNU/Linux
OSGNU/Linux -- 4.4.11-v7+ -- #888 SMP Mon May 23 20:10:33 BST 2016
Machinearmv7l (unknown)
Languageen_US.utf8 (charmap="UTF-8", collate="UTF-8")
CPU 0ARMv7 Processor rev 4 (v7l) (0.0 bogomips)
CPU 1ARMv7 Processor rev 4 (v7l) (0.0 bogomips)
CPU 2ARMv7 Processor rev 4 (v7l) (0.0 bogomips)
CPU 3ARMv7 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 B4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables4362393.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone740.8 MWIPS (9.7 s, 7 samples)
Execl Throughput530.1 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks150283.0 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks43968.5 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks359126.0 KBps (30.0 s, 2 samples)
Pipe Throughput316759.1 lps (10.0 s, 7 samples)
Pipe-based Context Switching55242.2 lps (10.0 s, 7 samples)
Process Creation2573.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 Overhead696284.8 lps (10.0 s, 7 samples)
System Benchmarks Index ValuesBASELINERESULTINDEX
Dhrystone 2 using register variables1167004362393.9373.8
Double-Precision Whetstone55740.8134.7
Execl Throughput43530.1123.3
File Copy 1024 bufsize 2000 maxblocks3960150283379.5
File Copy 256 bufsize 500 maxblocks165543968.5265.7
File Copy 4096 bufsize 8000 maxblocks5800359126619.2
Pipe Throughput12440316759.1254.6
Pipe-based Context Switching400055242.2138.1
Process Creation1262573.2204.2
Shell Scripts (1 concurrent)42.42026.1477.9
Shell Scripts (8 concurrent)6428.5714.1
System Call Overhead15000696284.8464.2
System Benchmarks Index Score295.4
Raspberry Pi 3 Model B4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables11519216.5 lps (10.0 s, 7 samples)
Double-Precision Whetstone1956.3 MWIPS (12.2 s, 7 samples)
Execl Throughput1602.2 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks158754.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks43738.8 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks426885.8 KBps (30.0 s, 2 samples)
Pipe Throughput837867.5 lps (10.0 s, 7 samples)
Pipe-based Context Switching123367.2 lps (10.0 s, 7 samples)
Process Creation3590.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 Overhead1851450.6 lps (10.0 s, 7 samples)
System Benchmarks Index ValuesBASELINERESULTINDEX
Dhrystone 2 using register variables11670011519216.5987.1
Double-Precision Whetstone551956.3355.7
Execl Throughput431602.2372.6
File Copy 1024 bufsize 2000 maxblocks3960158754.4400.9
File Copy 256 bufsize 500 maxblocks165543738.8264.3
File Copy 4096 bufsize 8000 maxblocks5800426885.8736.0
Pipe Throughput12440837867.5673.5
Pipe-based Context Switching4000123367.2308.4
Process Creation1263590284.9
Shell Scripts (1 concurrent)42.43018711.8
Shell Scripts (8 concurrent)6359.5599.2
System Call Overhead150001851450.61234.3
System Benchmarks Index Score511.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でも組んでみるか……。