ALH84001

私的コラム&雑記(&メモ)

NanoPi R4S (1) 導入編

2021-01-30 | ガジェット / PC DIY

Back Issue

NanoPi R4S (1) 導入編(本稿)
NanoPi R4S (2) パフォーマンス測定編

NanoPi R4S

 FriendlyELEC製SBC(Single-Board Computer)、NanoPi R4Sを入手したので数回に分けて御紹介する。
 まずは入手の際の悩みどころであろうオプション類について説明する。

オプション1: メタルケース

 もしNanoPi R4Sを入手する場合は、メタルケースとのセットを御勧めする。
 筆者が入手したのはNanoPi R4Sとメタルケースのセットだが、手に取った印象を身近な例で喩えると小学校の書道の授業で使った文鎮のようで、見た目以上のずっしり感である。

 NanoPi R4Sのメタルケースはヒートシンクを兼ねており凸状の出っ張りが施され基板上のCPUと密接するように設計されており単なる金属製の箱というわけではないのだが、恐らくこの凸状の出っ張りの中身が空洞ではなく金属の塊になっているのだろう。類似の冷却方式を採用しているSBC用ケースとして有名どころではFlirc製のRaspberry Pi用ケースがあるが、こちらは軽量なアルミ製のうえ凸状の出っ張りの中は空洞になっているため非常に軽く、手に取ったときの印象は随分と異なる。

 詳しくは後述するが、Rockchip RK3399は結構発熱が大きくネットを検索しても巨大なヒートシンクを装着した例が多々あり冷却に困ることが伺える。その点、NanoPi R4Sの純正ケースは$14.00で十分な冷却性能とフィット感を達成できる。例えばCNX Softwareなどでもレビュー記事が掲載されているが概ね~55℃程度には収まるようで熱暴走の心配も無い。

オプション2: 電源

 消費電力が大きいとなれば次に気になるのは電源である。
 FriendlyElecサイトによると電源にはUSB Type-C形状の5V/3.0Aが必要となっており、別売の純正電源は5V/4.0Aとなっている。これは案外厄介である。この種のArm SoC搭載SBCでは自宅に何個か転がっているであろう5年ほど前のスマートフォンの充電器を流用できる場合も多いのだが、5V/3.0Aとなると容量が足りないことだろう。USBには多様な電源供給規格があるが、古典的なUSB1.1~2.0の電源では5V/500mA・USB3.0でも5V/900mAでしかないためである。

 以下にメジャーなUSB標準規格からの例を幾つか掲載するが専用コントローラーによるハンドシェイクが必要となるUSB Battery ChargingとPower Deliveryを除けば5V/3.0Aを満たす規格はUSB Type-Cのみである(ちなみに純正電源はUSB Type-Aで5V/4.0Aなので恐らく規格違反である)。

Standards Voltage Ampare  
USB Power Delivery 5 V/2 A~20V/5A 10 W~100 W
USB Battery Charging 1.2 5 V 5 A 25 W
USB Battery Charging 1.1 5 V 1.5 A 7.5 W
USB Type-C 5 V 3.0 A 15.0 W
5 V 1.5 A 7.5 W
USB 3.1 5 V 900 mA 4.5 W
USB 2.0 5 V 500 mA 2.5 W

 USB Battery ChargingとUSB Power Deliveryは電源の送電側と受側とでそれぞれ専用のコントローラーによるネゴシエーションが必要になるし、Qualcomm Quick Chargeなどのベンダー独自規格でも受側の電源管理コントローラー(PMIC)に専用のものが必要となるが、NanoPi R4Sにはいずれにも対応していない。RockchipによるRK3399マニュアル(PDF)によると一応USB Power Deliveryには対応しているそうだが、FriendlyELEC Wikiによると非対応となっている。

 ちなみに、純正電源は端子がUSB Type-Aである以外はOnePlus製スマートフォンの旧製品に標準添付されていたDash Chargerにそっくりで恐らくOEM製造元が同じと思われる。なぜDash Charger同様のUSB Power Delivery対応としなかったのか謎であるが、規格外上等で専用コントローラーやハンドシェイクなどの互換性の煩わしさ無しで5.0V/4Aの給電を実現しようとした結果かもしれない。

 上述の通りメーカーはNanoPi R4Sは5V/3.0Aを要求しているが、USBやGPIOの使用状況によって消費電力は変わってくるがNanoPi R4Sが5V/3.0A = 15.0Wというのがどういう条件を想定しているのかについては記載が無くよく分からない(例えばNanoPi R4SにはUSB3.0ポートが2ポートあるが、USB3.0 x 2ポートで最大5V/900mA x 2 = 9.0Wが含まれた数字ならNanoPi R4S単体では消費電力6.0Wということになる…さすがにそんなことは無かろうが…)。
 筆者はとりあえずUSB充電器でよくある5V/2.4A=12.0Wで試したところ起動やベンチマークの実行には支障が無かったが、自己責任で試行錯誤して頂きたい。

搭載SoC: Rockchip RK3399

ハードウェアの概要

 中国製Arm SoCを搭載するSBCで最も高性能なSoCというとAmlogic S922X/A311D(以下S922X)とRockchip RK3399(以下RK3399)が代表的なように思われるが、両者は似て非なる性格を持っている。

 まず結論から述べてしまうと、ハードウェアの機能や性能という観点ではS922Xに軍配が上がる。
 インターネット上でS922XとRK3399とを比較した記事が幾つか見つかるが(参考1参考2)、そもそもスペックシート上でもS922Xの方が優位は明らかで(下の比較表を参照)、これらの記事は実測して確認しただけに過ぎない。ちなみにS922XのGPUの項が(?)となっているのはMali-G52は1コアあたり2 EUと3 EUの構成が可能だがS922Xで採用されているのがどちらか不明なためである。2EU x MP4 = 8EUの場合108.8 GFLOPS・3EU x MP4 = 12EUの場合163.2 GFLOPSとなる。

 S922Xの方がRK3399より高性能ということで、S922XはRK3399よりも高発熱・高消費電力かといけば逆でS922Xの方が低発熱・低消費電力である。なぜなら、RK3399はTSMC 28nm HKMGプロセス(Appleでいうと2013年のiPhone 5Sに搭載のA5で使用されたプロセス)で生産されているのに対しS922Xはより進んだTSMC 12nmプロセス(Appleでいうと2018年のiPhone XSに搭載のA13で使用されたプロセス)で生産されており製造プロセスの優位がある。

  S922X RK3399
CPU big core Cortex-A73 1.8 GHz x 4 Cortex-A72 1.8 GHz x 2
LITTLE core Cortex A53 1.8 GHz x 2 Cortex A53 1.4 GHz x 4
GPU Mali-G52MP4
163.2GFLOPS (?) @ 850MHz
Mali-T860MP4
81.6 GFLOPS @ 600 MHz
Memory DDR4 x32 DDR3 / LPDDR4 x32
Video Decoder 4K H.264, 4K H.265, 4K VP9 4K H.264, 4K H.265, 4K VP9
Encoder 1080p60 H.264, H.265 1080p30 H.264, VP8

OSの対応状況

 このように見ていくとRK3399のS922Xに対する優位性は無さそうに思えそうだが、RK3399の優位性はOSの対応状況にある。より具体的にはメインラインLinux Kernelでのサポートが歴然としている。

 Amlogicのプロセッサーというと、Amazon FireTVで採用されているようにビデオデコードに定評があるが、Armbianなどのオープンソースコミュニティーが開発するLinux系OSではビデオデコーダーほぼサポートされていない。これにはBSP=Board Support Packageが関係している。
 組込プロセッサーベンダーが自社製プロセッサーに搭載されている固有のデバイスを搭載製品で有効にする場合、当然ながら対応したドライバーが必要となる。Linuxの場合はオープンソースのためメインラインに取り込まれている場合はどのLinuxディストリビューションでも基本的に対応可能となるが、ベンダーが固有デバイス用のドライバーをメインライン化していない場合はベンダーが顧客向け提供するBSPを使うことになる。

 Amlogicのビデオエンジンを有効化したい場合、ドライバーはメインライン化されていないためAmlogic提供のBSPを使用する必要があるが、そのベースのLinux Kernelは2016年にリリースされたLinux 4.9である。Linux 4.9はLTSカーネルで2023年1月までサポートされているが、2016年以降に実装された新機能(具体例:WireGuard VPN)や追加されたドライバー類には対応しない。また、2023年1月以降のサポート状況にも不安がある。
 HardkernelKhadasなどAmlogic製SoCを搭載したSBCを提供しているベンダーはこのAmlogic製BSP Kernelを使ったOSイメージを提供しているが、これに対しArmbianやOpenWrtなどのコミュニティーは古いBSP Kernelは使わずメインラインLinux Kernelを使用している。ArmbianやOpenWrtなどコミュニティーが開発する組込Linuxでは基本的に1つのソースコードツリーから多種多様なSBCのOSイメージをビルドするためボード毎に個別のBSPを使うなどというような対応はしていないからである。そのため、Amlogic固有のデバイスはドライバーが欠けているため使えないが、Linux Kernelの最新機能を使うことはできる。

 一方、RK3399はOP1として2016年頃からGoogle Chromebookに広く搭載されており、ドライバーの多くがLinux Kernelメインラインにマージされている。メインラインにマージされているということは、Linus TorvaldsのリポジトリーのソースからビルドしてもRK3399に搭載されているデバイスを使用できるということで、当然ながらメインラインカーネルを使っているArmbianやOpenWrtなどのLinuxディストリビューションでも標準でサポートされている。
 RK3399/OP1に搭載されているデバイスのドライバーがメインライン化されている件については、独自ビデオエンジンAVE10を搭載するAmlogic SoCとは違い、そもそもデバイスがRockchip固有のIPではないからかもしれない。公開されている情報やArmbianやOpenWrtのコミュニティーの解析を参考にすると、RK3399内蔵1Gigabit Ethernet MACはST Microelectronics製ST MAC・ビデオデコーダー/エンコーダーはVeriSilicon製Hontro G1/H1・USB3.0/USB-OTGコントローラーはSynopsys製DWCとのことで、これらは既にメインラインカーネルにマージされている。

 AmlogicのSoCはAmazon Fire TVのように端末ベンダーが後付けの拡張を考慮すること無くスマートTVボックスのような組込デバイスを開発する場合には優れた選択肢だと思う。しかし、GPIOにデバイスを追加したりOSを入れ替えたり…といったことが行われるホビー用としてはAmlogic製SoCよりもRockchip製SoCの方が優れているように思う。いくら優れたハードウェアを積んでいてもドライバーが無ければ意味が無いからである(例:Amlogic AVE10ビデオエンジン)。
 恐らくその使い勝手の良さも一因だろうが、RK3399は非常に多くの組込デバイスで採用されているベストセラーとなっている(参考:ASUS Chromebook Flip C101Kobol Helios64PineBook ProStation P1Khadas Edge-V)。多くのデバイスで採用されているということは、コミュニティーやユーザーの知見も蓄積されておりドライバーや資料も充実しているということである。NanoPi R4Sとしての登場は間もないがWIP(Work-in-Progress)ステータスながら既にArmbianも公開されているほか、OpenWrtの開発も進行中である。

※筆者注:これらのOSを含めた記事は2月以降に投稿する予定である。Armbianは3カ月毎に公式イメージがリリースされるが、11月のBetaイメージは残念ながら筆者のデバイスでは動作しなかった。次回2月にリリース予定の正式版イメージで各種ベンチマークなどをレポートできると思う。

SoC以外のハードウェア

 搭載SoC=RK3399以外のハードウェアについてだが、NanoPi R4Sの最大の特徴は1000BASE-T=1GbE 2ポートだろう。
 2ポートの1GbEのうち1ポート(WAN側)はRK3399内蔵のMACにRealtek製PHY RTL8211Eを組み合わせたもの、残りのもう1ポート(LAN側)はPCIe x1接続でRealtek製EthernetコントローラーRTL8211Hが接続されている。

 NanoPi R4SはこれらのGbE 2ポートを中心としたコンセプト=ルーターやネットワークアプライアンスを想定しているようで搭載部品は実に簡素である。GPIOピンヘッダーも搭載しているがRaspberry PiなどのGPIOとは異なりSPI・I2C・USB2.0のみである。RK3399には上述の通りGPUも搭載されているがHDMIやDisplay Portなどのディスプレイ出力も搭載されていない。

 メモリーはDDR3/LPDDR4対応だが、NanoPi R4Sでは1 GBモデル/4 GBモデルが用意されており前者がDDR3/後者がLPDDR4である。このような構成となった理由はよく分からない。もしかするとLPDDR4 8-Gbit(1 GB)チップが無かったかDDR3 512MB x2チップの方が安価だったのかもしれない。DDR3とLPDDR4の主流のインターフェースは異なり前者がx8かx16接続・後者はx32かx64接続が主流だが、NanoPi R4Sでも1 GBモデルは512MB x16を2個・4 GBモデルは4GB x32を1個搭載しており基板のデザインが異なっている。
 ちなみに、スマートフォンが4~8 GBものメモリーを搭載する時代に1 GBというと小容量に思えるが、家庭用Wi-Fiルーターなどは搭載メモリ容量がせいぜい512 MB~2 GB程度でおかしくない。ルーターの場合は受信したパケットを処理して転送すればメモリーを解放できるのでメモリー容量よりも遅延の方が重要となり、実際、例えば先日発表されたASUSのRT-AX89Xもメモリー容量は1 GBである。もっとも、ルーター以外のネットワークアプライアンス用途を考えているようであれば当然1 GBでは不足する可能性はあろう。筆者が想像するに1 GBモデルと4 GBモデルが用意された理由は、恐らくルーター用だと前者・それ以外だと後者という棲み分けではないかと思う。

Comment    この記事についてブログを書く
« 最近の気になった話題(2021... | TOP | 最近の気になった話題(2021... »

post a comment

Recent Entries | ガジェット / PC DIY