2018年02月18日

SBCメモ

興味がある SBC に関してのメモ

シングルボードコンピュータ(SBC)というとラズベリーパイが有名だが、コスパという点では他の SBC で良いものが多数あるようだ。メジャーではないから使うのに骨が折れそうだが、armbian が対応しているものであれば、基本的な使用では問題なさそう。

コスパと言っても2通りある。高機能なものと、格安なものである。

高機能なもの:

最近の SoC だと、Allwinner H6 , ROCKCHIP RK3399 を採用した SBC がぼちぼち出てきている。この 2つの SoC は、PCIe を持っている。それ故に、ボードデザインの自由度が高く、これが良いというのがなかなか難しい。サーバ用途では、ODROID-N1 が良さそうだと思うが、発売は 2018年夏ごろ。また、armbian も先の話のようである。

    rockchip
    RK3399: Cortex-A73 x2 , Cortex-A53 x4 2.0GHz GPU Mali-T860MP4
    RK3399Pro: RK3399 + 2.4 TOPS Neural Network Processing Unit (NPU)
    RK3328: Cortex-A53 x4 1.5GHz GPU Mali-T450MP2

    allwinner
    H6: Cortex-A53 x4 1.8GHz GPU Mali-T720MP2
    H5: Cortex-A53 x4 ? GHz GPU Mali-T450MP4
    H3,H2+: Cortex-A7 x4 ? GHz GPU Mali-400MP2


    ODROID-N1:PC っぽく見えるが、基板サイズは 90mm角

現時点で使え、最低限の機能として ギガビットイーサ(GbE) と ストレージ用に native SATA または USB 3.0 、2GB 以上のメインメモリ というのを考えると、RK3328 を採用した ROCK64 が良さそうに思えてくる。秋月で購入できる点が高ポイントで 4GB モデルまである。サーバーとして十分な機能だと思えるが、SoC には、ビデオエンコード/デコード 用の VPU がある。これが使えるかどうか? GPU は、Mali-450MP で、X で GPU が使えるかどうか? (openCL は使えない) 。このあたりに興味がある。また 128Mbit (16MB) SPI FLASH を備えており、microSD なしで ネットワークや USB DISK からのブートが出来そうな感じ。この SPI FLASH を安全に書き換えられるか? というのも要調査。
それ以外だと ODROID-HC1/HC2 という NAS専用とも思える SBC がある。悪くはなさそうだが、GbE が USB 3.0 接続なのが気になる。


    ODROID-HC1: 2.5in DISK と一体化する形状。HC2 は、3.5in DISK 用

    ROCK64: Rasberry pi サイズ。

私としては、現時点では ROCK64 推し。ゆっくり待てるのであれば、H6 , RK3399 採用のまだ出ていないボードということになる。あと H6,RK3399 は openCL が使えるかも知れない、楽しみな要素がある。さらに、NPU 付きの RK3399pro というチップも控えている。

    推しと言っても用途を明確にしておかないと意味がない。私の場合は、ファイルサーバーと開発用にビルドが出来れば良い。出来れば仮想化も使いたいが必須ではない。ディスプレイも多分つながない。

    ついでに書くと、ROCK64 は、消費電力が大きそうだ。12V 〜 19V の ACアダプタを使い、DC/DC コンバータで 5V の降圧して供給するのが良いと思われる。aliexpress で $1 - $2 で購入できるのでお勧め。("XL4015 5A" で検索)。
    発熱も大きいだろう。ボードを覆うほどの大きなヒートシンクを付けたいがどうしたものか。邪魔な部品が多数あるので、絶縁を兼ねて 厚めの熱伝導シートを敷いたうえで、ボードの穴を利用して固定するのが良さそうではあるが、ヒートシンクの加工が大変そう。


格安なもの:

格安というと Allwinner H2+ を採用したボードが安い。別ブログで推しているが、Orange pi Zero, Nanopi DUO あるいは TV BOX の Sunvell R69 が良さそうである。特に Nanopi DUO が 電子工作的に面白そうなのである。また microSD カードなしで使える可能性もあり、そうなると 使い方によっては さらに格安感が出てくる。格安ではあるが、VPU も付いている。これが使えると さらに面白そうだが、要調査である。Sunvell R69 は、メモリ1GB eMMC 8GB に HDMI 出力あり。一応サーバーやデスクトップにも使えそうなのだが、ひと昔前のスペック。何にでも最高スペックを求める必要はないので、場合によっては 最適解になりえる。Orange pi one (512MB , HDMIあり $9.99+送料 $3.11)と比べると、メモリが増えてケース付き+おまけでリモコン、ACアダプタ。さらに eMMC 内蔵で microSDカード いらず。


    Sunvell R69:

    Nanopi DUO

    今見たところ Orange pi Zero は値上げされて、256MB モデル $8.49 + 送料 $3.41/512MB モデル $10.49 + 送料 $3.41。Nanopi DUO は 送料若干値上げ? 256MB モデル $7.99/512MB モデル $11.99 変わらずで、 送料 1個 $5 , 3個まで $7。
    Sunvell R69は、gearbest が安く 今は 送料込み $20.48 だが、在庫がつきかけている。

さて、Orange pi Zero, Nanopi DUO は R69 とは趣が異なる。デスクトップには使えないしサーバーにも適してない。やはり組み込み系用途が良さそうな感じで、電子工作でなにか装置を付けたりするのが、向いてそうである。SPI FLASH にプログラム全部を入れて、スタンドアローン あるいは PC の周辺機器みたいな使い方が良さそうなのである。
そして、そういう使い方をするためには、なにか相当な工夫が必要そうである。逆にそれゆえに興味がわくのだ。
PC の周辺機器という観点でいうと microUSB は、OTG でデバイスになれる。ただし、5V2A ということになっており、普通のPC の USB で使うのは無理がある。だが、いろいろ設定したり、改造することで 500mA 以下に出来るように思う。アイドル時は 100mA 程度に抑えられるという情報もあるし、多分いける。 そうなると、あらゆる USB 機器が範囲に入ってくる。極端な話、単なるシリアル変換でも良いのである。$8 であれば、FTDI 並みの機能を持たせれば 十分実用になりそうである。
問題なのは、どうやって作るかである。Linux のモジュールとして作れば、いけるのは分かっている。しかし Linux に精通していないとトラブルが起きるだろう。Arduino + FreeRTOS 的 API を 用意して 組み込み系のプログラミングで作れるようにしたら、どうか? --- と、こういうことを考えていくのが楽しそうなのである。

    ベアメタル・プログラミングという解もあるかも知れないのだが、一から作るのはもう面倒なのだ。最低限の動作をさせるまでの道のりが長く、そこまで行くまでに興味が失せてしまう。次の解として、U-boot に機能を追加していくという手がある。これはアリだと思うが、Wifi を使うところまではたどり着けないだろう。Linux であれば、ハードウェアのフル機能を利用できそうである。ただし、今度は環境づくりが大変になりそうだ。microSD を使うのであれば、フルディストリを入れても良いわけだが、そこは拘りたい。SPI FLASH だけで動作可能な範囲で考えたい。

これらについて、なにか進展があったら書いていくかも知れない。


Sunvell R69 について

TV BOX は、いろいろあるが、Blink X2 だけが armbian で正式サポートされた。Sunvell R69 はこれにかなり近い。Blink X2 のイメージや、Orange pi zero のイメージが(問題があるにしても)一応動いてしまうらしい。お手軽にサーバーにするには有望な機種である。

技術情報:sunxi.org R69
野良 armbian : google drive
 - Armbian_5.34 Ubuntu, Armbian_5.34 Ubuntu_desktop,
 - Armbian_5.41 Ubuntu, Armbian_5.41 Ubuntu_desktop,
 - ビルドソースの tarball
github : Sunvell R69
 - ビルド方法 (kernel, u-boot)
フォーラム: https://forum.armbian.com/topic/4877-h2-sunvell-r69-android-tv-box-aliexpress/

ショップ:GearBest

Nanopi NEO について

ブレッドボードにも刺せる形状で、電子工作向け。Mini Shield というアクセサリがあり、ラズベリーパイ的な形状にもなる。ついでだが、ばらばらで買うよりは スターターキットの方が安くなる。50mm x 25mm というサイズだが、立派な SBC であり armbian も対応。それ以外に オフィシャルROM とソースコードが公開されている。

技術情報:friendlyarm.com Wiki
オフィシャルROM : MediaFire (Doc , Source, Toolchain あり)
armbian : armbian 公式
フォーラム:https://forum.armbian.com/topic/5035-nanopi-duo-plus-mini-shield/

ショップ:friendlyarm.com

http://linux-sunxi.org/Bootable_SPI_flash

SPI flash についての情報はここにある。microSD からブートする SBC であれば、SPI FLASH に書き込むのは容易である。通常優先順位が microSD > SPI FLASH になっているので 文鎮化する心配はない。

さいごの手段として、http://linux-sunxi.org/FEL という方法まである。USB OTG からのブート手段で、やり方さえ確立してしまえば、こちらの方が容易かも知れない。要調査。

    FEL では、u-boot や kernel + initrd をダウンロードして起動することが可能になっている。ただし、FEL 有効にできる機種のみが使用可能。

    1) recovery or uboot or fel ボタンを押して電源ON
    - R69 には、uboot ボタンが付いている。多分使用可能。
    2) POWER key + FEL key(VOL+)
     Press and hold the suspected or reported FEL key.
     Press and hold the power key for about 2 seconds.
     Release the power key, and press it at least 3 times immediately.
    - タブレットしか無理

    http://linux-sunxi.org/MicroSD_Breakout
    ブートで、microSD が必要なくなると、SD カードの信号線を UART または JTAG に使えるとのこと。その為のアダプタも購入可能。



H3,H2+ の HW encoding,decoding について

Cedius - Cedrus is a linux-sunxi community project
ここが VPU サポートの本家らしい。

HW H.265 And H.264 Codec On H3 より

 https://github.com/uboborov/ffmpeg_h264_H3
 To give you some idea, I get ~24FPS encoding 1080p h264 into 1080p h264 using cedrus.

良く分からないが、H3 で動く実績があるようだ。H2+ は、H3 とほぼ同じだそうなので、格安ボードでも使えるのだろう。

    ちょっと見たがあまり把握できてない。Cedrus 自体 は、
     https://github.com/linux-sunxi/sunxi-cedrus
    これらしいのだが、ベースは rockchip VPU driver v3 ???
    --- ということは、ROCKCHIP系も有望ということか?

その他 cnx-software.com の記事の追記
On a separate note, somebody has recently released ffmpeg 3.3.4 with open source Cedrus driver for Allwinner video processing unit, and tested with Allwinner R40 and A64 SoC. Code and package can be found in github.
 ・ https://github.com/avafinger/ffmpeg-3.3.4_cedrus264


Rockchip の VPU サポートについて

フォーラム:https://forum.armbian.com/topic/4806-the-vpu-driver/
github:https://github.com/Miouyouyou/rockchip-vcodec

This repository goal is to focus on this Rockchip VPU driver code in order to use it with 4.13 kernels and onward.

Most of the code is written by the Rockchip engineers, in the rockchip_forwardports repository initiated by phh, and updated by wzyy2, and in the kernel 4.4 patched and maintained by Rockchip.

ここに RK3288 の VPU のドキュメントがある。ROCKCHIP の技術者が開発し、ドキュメントまで公開されているとは! RK3288 というと ASUS Tinker ボード 。ただし、ROCK64 の RK3328 には対応していないような。。。

http://opensource.rock-chips.com/wiki_Main_Page
公開資料は、ここ。RK3399 の テクニカル・リファレンス・マニュアル(TRM)まであるが、VPU の資料はないようだ。

https://github.com/Kwiboo/linux-rockchip
こちらは、完全な linux ソースツリー。4.4 だからより新しい。

    Performance h264/hevc(hdr) decoding 4k60@RK3328 (rock64) - GitHub

    こんな issu があるぐらいだから、全然というわけではないようだ。



以上、興味があるボードについての基本的な情報を調べてみた。

まぁ高性能な開発用ビルドマシンというのは、欲しいところであるが、これは別途考えることにして、当面は、H2+ のボードだけでやっていくのも良いかも知れない。ビルドなどは GCC がほとんどの CPU能力 を消費する。I/O も大したことはないので、高性能なボード1つよりは、H2+ 多数の方が高速になるかも知れないのだ。LD -- 最後のリンクだけは、消費するのはメモリである。メインの SBC はメモリが多いほど良い。

多数の H2+ SBC をネットワークでつなげる必要があるわけだが、禁じ手としては Wifi を使うという手がある。シールドしたケースの中でローカルネットワークを組めば良い。これは法的な問題の回避以外に、電波が込み合う問題の回避にもなる。
そこまでしたくないならば、USB OTG でネットワークを通すという手がある。この方法の問題は電力供給である。HUB としての機能を持ったうえで、多大な電流を供給できなければならない。これについては、考えることがあって、基板を作ろうとしている。

    実は、Ether net で Nanopi DUO を相互接続する基板も設計した。これでも良いのだが、製作がちょっと停滞している。基板など安く作れるので、別のタイプも設計したのだ。

    USB コネクタ5個。5V3A DC/DC コン3つ+α 搭載可能! HUB IC は有名な安物で 100均の HUB からも取り出し可能。電源は 12V 〜 19V 60W 程度を想定。Nanopi DUO で制御し、100M Ethernet に接続可能。

もともと電力供給は悩みのたねではある。Anker 等 USB急速充電器 を買えば済むのだろうが、機器の自動検知というのが気になる。上記の DC/DC コンバータを並べて、12〜19V の AC アダプタで供給するのが良いと思う。60W AC アダプタ なら 2 つ並べて 5A x2 。4 〜 6 台の供給が出来そうである。90 〜 100W の AC アダプタもあるわけだから、3 つ並べて、6 〜 9 台もいける。AC アダプタにさえ PSE マークがあれば、法的にも問題にならないし安心である。

さて、こういう構成を考えたときに、動画エンコードシステムというのも、利用範囲に入ってくる。実用としはあまり興味がないのだが、出来るのであればやってみたい。




PINE_H64.jpg

追記: 高機能な SBC はいろいろと出てくるのだが、その中で PINE H64 が気になって来た。1GB $25 , 2GB $35 , 3GB $45 と ROCK64 に近い価格。スペック的にあまり違いはないが、mini-PCIe が付いている。
armbian が出るのが前提だが、mini-PCIe を使って SATA ポートが拡張できれば ROCK64 より良いかなと。また、基板が大きくなって コネクタが前後2面に集約されている。私的には好ましい。

    mpci-sata-AMS1061.jpg

    mini-PCIe だが、こんなボードがあった。$8.16 で比較的安価だが、SATA-PCIe ブリッジチップは、ASM1061 というもの。-- 評判はあまり良くないような ...

    mpci-m2.jpg

    他には、M.2 に変換するボード。これはさらに安く $1.51 のものがあった。

PINE H64 で気に入った点としては、SDIO サブボードが付けられるというところ。wifi モジュール用だが、電子工作で自作したボードが付けられる可能性がある。実際には付けたりしないのだろうが、わくわくする。

ついでに書くと 128Mbit SPI FLASH が付いている。これは u-boot にしか利用しないと思うが、DISK からの boot という可能性が出てくる。

あと H6 は、GPGPU が出来る可能性がある。ROCKCHIP だと RK3399 まで待たねばならない。ROCK64 は無理。RK3399 は、確かに高機能な SoC だが、採用ボードが高価になる傾向がある。また発熱も大きいようで、大きなヒートシンクが必要なようだ。
posted by すz at 10:35| Comment(0) | TrackBack(0) | SBC