Orange Pi Zero2を触ってみた

Orange Pi Zero2

Allwinner H5を搭載したOrange Pi Zero Plus (以下OPi0+)が突然死したらしく、電源のオフ・オンを行ってもらってもLEDが点かないということで(自身では実物を見てないので本当のところは不明)、急遽新しいSBCを購入することに。で、一番カンタンなのはおそらく全く同じOPi0+を購入すること。microSDカードを壊れたらしいOPi0+から新しいOPi0+に差し替える、またはバックアップイメージを新しいmicroSDカードに焼いて新しいOPi0+に挿す。これだけでイケる筈。
しかし、Allwinner H5は生産中止(いわゆるディスコン)という話で、H5を搭載したSBCはOrange Piだけでなく他社製品含め軒並み在庫切れ。
どうするか、で目を付けたのが2020年11月発表12月販売開始したばかりのOrange Pi Zero2 (以下OPi02)。OPi02はAllwinnerのSoCだけどH5でもH6でもなくTV Box・メディアプレーヤー向けというH616という詳細不明なSoCを搭載したSBC。4コアなCortex-A53らしい。OPi02はmicroタイプだけどHDMI端子が付いてるので自身でメディアプレーヤーを作るというのもアリなのかな。メモリは512MBと1GBの2種類から選べる。メディアプレーヤーだとちょっと少ないかも。USBはType-AとType-Cが1つずつ。ネットワークは有線がRTL8211Fで10/100/1000Mpbs、無線がAW859AでIEEE 802.11 a/b/g/n/ac対応、Bluetoothはv5.0対応となっている。
電源はType-CのUSBポートを使う。5V/2Aなので「がとらぼ」ではよく登場するダイソーのUSB ACアダプタでも問題なく動く。
基板サイズは60 x 53mm、重量は30gということになっている。(Orange Piの公式サイトの情報)
性能はH5と比べて大きく劣ることはないだろうし、なにしろ安い。1GBのメモリを搭載したタイプで実売価格は約2千円。送料が別途500円ほど。つまり、メモリが512MBのOPi0+より$5高いけどメモリを512MB増量したと考えると同価格くらいかな?しかもHDMI出力有りと考えるとお買い得。

Orange Pi Zero2 1
注文したのが2020年12月24日で、到着が2021年1月4日。運送便は名目がAliExpress Standard Shippingで実際のロジはYanwen。Yanwenといえばこれまで早くて3週間程度という認識だったが初めての10日ちょうど。(発送は注文日の翌日午後で到着は午前中なので) 中華郵政で10日というのは昔はちょくちょくあったけどYanwenでこんなにすぐ届くって狐につままれたみたい。
上の写真では後から貼られた伝票の紙の貼り方が汚いので見た目が悪いけど中がスカスカな割にダンボールは潰れてない。

Orange Pi Zero2 2
ダンボール箱の中に入っていたのは右の白い箱1つ。緩衝材無し。左は大きさ比較用のmicroSDカード(のパッケージ)。
写真だと大きさが伝わらないかと思うけどキャッシュカードより一回り大きい程度なので実物はかなり小さい印象。

Orange Pi Zero2 3
箱の中身。OPi02と紙ペラ1枚だけ。OPi02を入れた静電気防止袋は融着で密封されていた。

Orange Pi Zero2 4
OPi02の基板。左にあるのはSDカード(のアダプタ)。OPi0+よりは少しだけ大きいとはいえ、60 x 53mmなので小さいよね。左にニョロンと伸びているのはWi-Fiのアンテナで、届いた時点で接続済み。アンテナ接続部分はIPX端子になっているのでもちろん取り外し可能。というか、OPi02は技適が無い製品なのでOPi02を日本で使うならアンテナを外してダミーロードを取り付ける。

Orange Pi Zero2 5
基板のオモテ側。中央のH616と書いてあるチップがSoC。H616の左に見える蟹が逆さまになったチップが有線LANのNIC。左下に見えるAW859Aと書いてあるチップがWi-FiとBluetooth。H616の上に見えるAXP305が電源管理ユニット(PMU)。H616の右側に2つあるSEC 031 K4B4G16 46E BYMAはSumsungのDDR3メモリで1つが512MB、この基板には2枚付いているので1GBになる。

Orange Pi Zero2 6
基板のウラ側。右下の方にあるmicroSDカードのスロットとその左のSPI Flashのチップ以外に大きな部品は無い。microSDカードスロットはバネ式。奥まで差し込むと少し戻ってロック、もう1度押し込むとリリースされるタイプ。この面にはシールが貼られていて、20201210で始まる数字は製造日?

Orange Pi Zero2 7
端子類のある側。左からUSB2.0 Type-A, Micro-HDMI 2.0a, USB Type-C(電源用)、RJ45 10/100/1000Mbps。
右端に見えている13ピンのGPIOはUSB2.0 x2とオーディオ出力他。左端に見えている26ピンのGPIOはI2C, SPI, UARTということらしい。使う気が無いので未確認。

いつもarmbianを使っているのでOPi02でもarmbianを使おうと思ったのだが、armbianのウェブサイトには12月中旬という古めのDebian BusterとFocalのイメージと1月3日付けのUbuntu Groovyのかなり怪しそうなのしか置いてなかった。1月4日に配達になるとは予想してなかったのでarmbianの最新のソースから大慌ててビルドしたが、ビルド自体は成功したものの、OPi02に挿したところ、動作しないみたい。有線LANの緑とオレンジのLEDが点灯状態で基板上のLEDが光らない状態。それ以外はそもそも動いているのかどうかも不明という状態。microタイプのHDMIに対応したケーブルを持ってないので画面で確認できない。ネットワーク側をarpで確認すると不完全な情報だけが得られる(つまりネットワーク的には使えない)状態。いろいろ試したがどうもダメだと判明するまで数時間ムダにした。armbianのサイトに置いてある古いのは動くかもしれないけど、それも確実とはいえないかもなのでOrangePiのサイトから2020年11月4日付けというこれまた古そうなDebianのイメージファイルをダウンロードして焼いた。
これは流石にサクッと動いた。

2021年1月16日現在、Orange Pi Zero2用(というかH616を載せてるSBC)のarmbianはステータスがWIPなので満足に使えないのは当然だけど、一部動かないとかそんなレベルじゃなく、多くの人が期待する「動作」にはまだほど遠く、U-Bootで辛うじて動くレベル。USBもネッワークもmicroSDもGPIOもまだ使えない。頑張ってくれてる人たちがいるので、その内には普通に使えるようになると思うけど。

Orange Pi Zero2 8
これは動かし始めてから半日過ぎてからのSSHログイン直後の画面。室温の低い中、大きなヒートシンクを付けてしっかり冷却できている環境で長時間アイドル状態だが、SoCの温度計では37℃になっている。夏場大丈夫なのかしら?

UnixBench

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: orangepizero2: GNU/Linux
   OS: GNU/Linux -- 4.9.170-sun50iw9 -- #25 SMP PREEMPT Fri Dec 4 12:46:25 CST 2020
   Machine: aarch64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   21:28:08 up 11 min,  1 user,  load average: 1.10, 1.03, 0.65; runlevel unknown

------------------------------------------------------------------------
Benchmark Run: Mon Jan 04 2021 21:28:08 - 21:56:05
0 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        7575270.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1765.0 MWIPS (9.8 s, 7 samples)
Execl Throughput                                829.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        140195.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           41796.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        374112.6 KBps  (30.0 s, 2 samples)
Pipe Throughput                              262601.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  48098.9 lps   (10.0 s, 7 samples)
Process Creation                               1995.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2262.4 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    589.5 lpm   (60.1 s, 2 samples)
System Call Overhead                         427956.2 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    7575270.8    649.1
Double-Precision Whetstone                       55.0       1765.0    320.9
Execl Throughput                                 43.0        829.5    192.9
File Copy 1024 bufsize 2000 maxblocks          3960.0     140195.6    354.0
File Copy 256 bufsize 500 maxblocks            1655.0      41796.4    252.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     374112.6    645.0
Pipe Throughput                               12440.0     262601.6    211.1
Pipe-based Context Switching                   4000.0      48098.9    120.2
Process Creation                                126.0       1995.0    158.3
Shell Scripts (1 concurrent)                     42.4       2262.4    533.6
Shell Scripts (8 concurrent)                      6.0        589.5    982.5
System Call Overhead                          15000.0     427956.2    285.3
                                                                   ========
System Benchmarks Index Score                                         325.1

------------------------------------------------------------------------
Benchmark Run: Mon Jan 04 2021 21:56:05 - 22:24:05
0 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       30327186.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7057.8 MWIPS (9.8 s, 7 samples)
Execl Throughput                               2410.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        239580.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           64481.1 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        696793.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1046088.6 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 168832.4 lps   (10.0 s, 7 samples)
Process Creation                               4365.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   4595.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    622.6 lpm   (60.2 s, 2 samples)
System Call Overhead                        1675554.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   30327186.0   2598.7
Double-Precision Whetstone                       55.0       7057.8   1283.2
Execl Throughput                                 43.0       2410.4    560.6
File Copy 1024 bufsize 2000 maxblocks          3960.0     239580.5    605.0
File Copy 256 bufsize 500 maxblocks            1655.0      64481.1    389.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     696793.9   1201.4
Pipe Throughput                               12440.0    1046088.6    840.9
Pipe-based Context Switching                   4000.0     168832.4    422.1
Process Creation                                126.0       4365.5    346.5
Shell Scripts (1 concurrent)                     42.4       4595.3   1083.8
Shell Scripts (8 concurrent)                      6.0        622.6   1037.6
System Call Overhead                          15000.0    1675554.8   1117.0
                                                                   ========
System Benchmarks Index Score                                         811.7

過去に測定したSBCに載っていたH5と同じくH616はクアッドコア。今回もUnixBenchは、1パラレル(シングル)と4パラレルで測定。
インデックススコアはシングルが325.1、4パラレルが811.7。
H5を搭載したNanoPi NEO2をFriendlyELECが提供するUbuntuで測定したときの結果とインデックススコアで比較すると、シングルで僅かに勝り、4パラレルで僅かに負ける。ただし、誤差程度。
NanoPi NEO2とOPi02は価格が大して変わらないこともあり性能が同程度でも仕方ないところではあるかもしれないが、しかし、4年ちかくも前の製品と性能が変わらないというのはちょっと残念かも。OPi02にはHDMI出力とWi-Fi, Bluetoothが付いてるけどね。