Raspberry Pi 対抗ボードの多くは Raspberry Pi 3 の Ethernet が遅いこと(USB 接続らしい)を引き合いに出し、ネットワークが速いことを宣伝文句にしています。
宣伝文句自体は疑っていませんが、どの程度の差があるかは知らないので、測定してみました。ちょうど Tinker Board も購入しましたし、Rockchip 同士の比較もしてみたいと思います。
測定は簡単です。受信側の PC で下記を実行します。
$ iperf3 -s -p 11111
送信側の各種ボードで下記を実行します。
$ iperf3 -c (PC の IP アドレス) -p 11111
受信側の PC の CPU は Ryzen 7 2700 で、マザーボードは ASUS B450-F GAMING です。OS は Debian GNU/Linux amd64 の Testing 版です。測定時点でのカーネルは 4.18.0-2-amd64 というバージョンになっていました。
結果だけ先に言うと Tinker Board(RK3288)の方が速いです。ROCK64(RK3328)の方が後発の SoC なのですが、Ethernet は遅いみたいですね。
ちなみに Raspberry Pi 3 は 94Mbps でした。そもそも Gigabit Ether じゃないので、比べ物になりません。
念のため各ボードの Ethernet ケーブルを入れ替えてみましたが、結果は変わりませんでした。
参考までにファイルサーバとして使っている Pentium J のマシンから、同様の計測を行ったところ 942Mbits/sec でした。
結果はこんな感じでした。
katsuhiro@linaro-alip:~$ iperf3 -c 192.168.1.2 -p 11111 Connecting to host 192.168.1.2, port 11111 [ 4] local 192.168.1.16 port 58608 connected to 192.168.1.2 port 11111 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 113 MBytes 950 Mbits/sec 0 358 KBytes [ 4] 1.00-2.00 sec 112 MBytes 942 Mbits/sec 0 358 KBytes [ 4] 2.00-3.00 sec 112 MBytes 941 Mbits/sec 0 358 KBytes [ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec 0 358 KBytes [ 4] 4.00-5.00 sec 112 MBytes 941 Mbits/sec 0 358 KBytes [ 4] 5.00-6.00 sec 112 MBytes 943 Mbits/sec 0 406 KBytes [ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec 0 406 KBytes [ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec 0 406 KBytes [ 4] 8.00-9.00 sec 112 MBytes 941 Mbits/sec 0 406 KBytes [ 4] 9.00-10.00 sec 112 MBytes 941 Mbits/sec 0 406 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 1.10 GBytes 942 Mbits/sec receiver iperf Done.
katsuhiro@rock64:~$ iperf3 -c 192.168.1.2 -p 11111 Connecting to host 192.168.1.2, port 11111 [ 4] local 192.168.1.102 port 54768 connected to 192.168.1.2 port 11111 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 97.6 MBytes 819 Mbits/sec 0 356 KBytes [ 4] 1.00-2.00 sec 96.4 MBytes 808 Mbits/sec 0 395 KBytes [ 4] 2.00-3.00 sec 95.8 MBytes 804 Mbits/sec 0 395 KBytes [ 4] 3.00-4.00 sec 95.7 MBytes 803 Mbits/sec 0 395 KBytes [ 4] 4.00-5.00 sec 95.8 MBytes 803 Mbits/sec 0 395 KBytes [ 4] 5.00-6.00 sec 95.8 MBytes 804 Mbits/sec 0 395 KBytes [ 4] 6.00-7.00 sec 95.8 MBytes 804 Mbits/sec 0 395 KBytes [ 4] 7.00-8.00 sec 95.7 MBytes 803 Mbits/sec 0 395 KBytes [ 4] 8.00-9.00 sec 95.8 MBytes 804 Mbits/sec 0 395 KBytes [ 4] 9.00-10.00 sec 95.8 MBytes 803 Mbits/sec 0 395 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 960 MBytes 805 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 958 MBytes 804 Mbits/sec receiver iperf Done.
katsuhiro@raspberrypi:~ $ iperf3 -c 192.168.1.2 -p 11111 Connecting to host 192.168.1.2, port 11111 [ 4] local 192.168.1.105 port 46476 connected to 192.168.1.2 port 11111 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 11.3 MBytes 94.6 Mbits/sec 0 29.7 KBytes [ 4] 1.00-2.00 sec 11.2 MBytes 94.1 Mbits/sec 0 29.7 KBytes [ 4] 2.00-3.00 sec 11.2 MBytes 94.1 Mbits/sec 0 29.7 KBytes [ 4] 3.00-4.00 sec 11.2 MBytes 94.2 Mbits/sec 0 29.7 KBytes [ 4] 4.00-5.00 sec 11.2 MBytes 94.1 Mbits/sec 0 29.7 KBytes [ 4] 5.00-6.00 sec 11.2 MBytes 94.2 Mbits/sec 0 29.7 KBytes [ 4] 6.00-7.00 sec 11.2 MBytes 94.2 Mbits/sec 0 29.7 KBytes [ 4] 7.00-8.00 sec 11.2 MBytes 94.1 Mbits/sec 0 29.7 KBytes [ 4] 8.00-9.00 sec 11.2 MBytes 94.2 Mbits/sec 0 29.7 KBytes [ 4] 9.00-10.00 sec 11.2 MBytes 94.1 Mbits/sec 0 29.7 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 112 MBytes 94.2 Mbits/sec 0 sender [ 4] 0.00-10.00 sec 112 MBytes 94.2 Mbits/sec receiver iperf Done.
Tinker Board でサウンド周りを有効にして linux-next を動かしてみたものの、指摘された不具合(2018年 12月 5日の日記参照)が出ません。
メールでは DMA ドライバのどこかでクラッシュした、と言われました。サウンド周りのハードウェアは I2S とコーデックが居ますが、DMA を使うのは I2S だけです。コーデック max98090 は SoC 外部に居ますから、SoC 内部の DMA を使う術がありません。
I2S が原因ならば、SoC 内部のハードウェア起因ですから、Tinker Board だろうが Chromebook C201 だろうが、ボードに関わらず現象が再現しても良さそうなのに。
Chromebook で使われているグルードライバ rockchip-snd-max98090 の影響も疑って、Chromebook C201 のデバイスツリー(rk3288-veyron-speedy.dts)からデバイスノードの設定をパクってきて、max98090 を spdif-transimtter に差し替えて(Tinker Board に max98090 は搭載されていない)、無理やり動かしてみましたが、特に何事も無く動いてしまいました。
どうやっても Chromebook C201 じゃないと再現しないのかな?良くわからないバグだ……。
ROCK64 のときはアナログオーディオ出力でも HDMI 出力でも、SoC 内蔵の I2S ハードが動作しましたが、Tinker Board はちょっと事情が違います。
Tinker Board にもアナログオーディオ端子は付いていますが、接続先は RK3288 ではなくオンボードの USB Audio(Realtek ALC4040)です。アナログオーディオのためにわざわざ専用 USB デバイスを載せるとは、豪華なボードだなあ〜。
というわけで、Tinker Board で SoC 内蔵の I2S が動くかどうか試すには、アナログオーディオ端子ではダメで、HDMI 出力じゃないと本当に動作しているかどうかわからないです。我が家にはデジタルテレビならありますが、ボードからケーブルが届かないですね。
できれば HDMI が映せて、音も出せて、ボードの隣に置いても邪魔にならないくらい小さいモニタがあるとベストですが、我が家にそんなもんは無い……。
メモ: 技術系の話は Facebook から転記しておくことにした。少し加筆した。
先日購入(2018年 12月 5日の日記参照)した Tinker Board で linux-next を動かしてみたら、特に何も引っかかることなく起動しました。素敵。しかし調子に乗ってコンフィグをガチャガチャ弄ってたら起動しなくなってしまいました。
ちょっと焦りましたが、同時に Rock64 も起動しなくなっていたので、原因はコンフィグじゃなくて、linux-next の 12月 11日版を引っ張ってきたことのようです。先週もなってたなあ。またか〜。
AArch32 と AArch64 のビルドを往復でやっていて、vmlinux のリンク速度が全然違うことに気づきました。AArch64 の方が桁違いに遅いです。
AArch32 だと vmlinux のサイズは 20MB くらいですが、AArch64 向けにビルドするとなぜか vmlinux が 300MB とかになります。なぜこんなにデカいんでしょう。リンクが遅くて辛いです。
Tinker Board は U-boot で saveenv すると二度と起動しなくなります。linux-next を起動するコマンドを save したかったのですが、できません。ちょっと不便です。
この症状 ROCK64 も同じでした。Rockchip の U-boot は何かおかしいんだろうか……?
メモ: 技術系の話は Facebook から転記しておくことにした。少し加筆。
私は、比較的 PC と出会った時期は遅い(※)ので、パソコン原始時代をほとんど知らないですが、それでも当時のマシンと、今使っている Ryzen 7 マシンを比べると隔世の感があります。
(※)初めて触ったのは中学校にあった PC9821-Cb2、買ったのは PC9821-V7 で CPU は Pentium/75MHz だった、はず。
中学生で思い出しましたが、About ページの写真(Facebook のアイコンでもある)は中学 2年生の時の顔です。現像した写真のスキャンではなく、当時珍しかった「デジカメ」で撮った写真です。機種は覚えていませんが、フロッピーに記録するタイプでした。
当時とそんなに顔は変わっていませんが、髪はかなり白くなりました。何でだろ、体質なのかな……?
メモ: 技術系の話は Facebook から転記しておくことにした。
合計:
本日:
< | 2018 | > | ||||
<< | < | 12 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | - | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | - | - | - | - | - |
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2016.
Powered by PHP 5.2.17.
using GD bundled (2.0.34 compatible)(png support.)