H3搭載のOrange Pi 2/Orange Pi PCでKodiを動かす

Allwinner H3搭載のOrange Pi 2(OPi2) / Orange Pi mini 2 / Orange Pi Plus(OPi-PLUS) / Orange Pi PC (OPi-PC)でkodi(XBMC)を動かす、という話。

いまのところ、動くのは、Android OSのみです。
Linux OS(Debian/Ubuntuなど)で動かすことに成功した事例はありません。

原因は、Linux OS向けにGPU用のドライバがない、というところがあります。
これにより、GLES関連が正常に動作せず、なんとかコンパイルしてもちゃんと起動しません。

Android OSにはGPUドライバが組み込まれたものが配布されているため、
こちらではKodiが正常に動きます。

ただし、HDMI接続時にTVのリモコンを使って操作する機能(CEC)が使えません。

公式のAndroid OSを使う、というのが本筋ではあるのですが、Play Storeが入ってないので、ちょっと使いにくいです。

フォーラムでloborisさんが公開している「OrangePI-2 Android 4.4.2 New Image」がおすめですが、Orange pi PCで使えるかは確認していません。

このイメージはPlay Storeが入っているので、Googleアカウントを登録して、ストアからのアプリインストールが可能です。
しかし、root関連が有効になっているので、DLNA系のソフトは動きません。(Huluはダメだった)

Allwinner H3用のAndroidイメージは「.img」という拡張子にはなっていますが、「dd」コマンドで単純にデータを流し込むような形式ではありません。
専用のツールを使って書き込む必要があります。
(ツールは、Orange Pi公式で配布しているものと同じ)
loboris版を使う場合は、Linux用の書き込みスクリプトを含んだ配布パッケージがあるので、そちらを使います。

書き込みに失敗している場合は、ロゴが静止した画面で止まります。
その場合は、もう1回書き込みなおしです。
(うちの場合、Windowsから書き込むとうまくいかなかったので、Linuxで書き込んだ)

2.45インチAndroidスマートフォンElephone Q

香港のスマホメーカElephoneから、超小型Android端末「Elephone Q」が、10月10日に発売される予定らしい。

ELE-Q_photos_5

まぁ、Melrose S9と似たようなものだけど、勝ってる点と、負けてる点がある。

・Elephone Qが勝ってる点
GPS対応
microSDが使える
WCDMA 850MHz/2100MHz対応(Melroseは2100MHzのみ)
4色展開
ストラップホールつき!?

・負けてる点
ROM 4GB(Melroseは16GBモデルもある)

値段は定価$99.99のところ、Pre-Order価格$69.99とのこと。

というか、下記画像をみる限り、ストラップホールがあるようで、これは結構いけるかも?という期待が・・・
bg_9

Areca系RAIDコントローラの時計をNTPを使わずに修正する手法

Areca社のRAIDコントローラにはイーサネットが付いており、そこから管理操作などを行うことができる。
コントローラが持つ時計は、起動直後は電源ON時点からカウントされる相対的な時間表示になっている。

この相対的な時間表示は、RAIDコントローラが何らかの手段により現在の時刻情報を得ることができた段階から、普通の時刻表示になる。

「なんらかの手段」というのは「NTPによる時間取得」と「管理画面にブラウザでアクセスした際に、ブラウザが動作しているホストの時刻をJava Scriptを使って取得」の2種類となっている。
つまり、自動的に時刻を合わせる手段というのはNTPを使用するしかない。

しかし、クローズドの環境で使用する場合、どうしても時刻を合わせたいという要求はある。
では、どうするか?

後者の「管理画面にブラウザでアクセスした際に、ブラウザが動作しているホストの時刻をJava Scriptを使って取得」に相当する動作をコマンドで実現し、他のホストから定期的に実行するようにする。

調査した結果、下記のコマンドを実行することで実現できた。

$ curl --user admin:0000 --digest  http://IPアドレス/SETTIME --data
"TYR=`date +%Y`" --data "TMT=`date +%m`" --data "TDA=`date +%d`" --data
"THR=`date +%k`" --data "TMN=`date +%M`" --data "TSC=`date +%S`"

上記はAreca系の標準設定である、ユーザ名「admin」、パスワード「0000」の場合の例である。
これをshell scriptにでもしてから、cronに登録すればよい。

Allwinner H3搭載のOrange piの機種間差異について(Orange pi 2 / pi mini 2 / pi PC)

Allwinner H3搭載のOrange piシリーズの違いについて、ハードウェアとOSの互換性に絞って解説。

2015/09/16現在、リリースされているAllwinner H3搭載のOrange piシリーズは下記の4機種
・Orange pi PLUS(OPi-PLUS)
Orange pi 2(OPi2)
Orange pi mini 2
Orange pi PC(OPi-PC)

まず、「Orange pi 2」と「Orange pi mini 2」はWiFi対応のためのチップの有無で、基盤自体は共通になるためどちらも「OPi2」としてとして扱われる。

「Orange pi PLUS」は、内蔵ストレージがある(eMMC)、SATAコネクタがある、など、差異が大きく、別扱いとなっている。

「Orange pi 2/mini 2」と「Orange pi PC」は、だいたい同じだが、特にUSB周りの構成が異なっている。
「Orange pi 2/mini2」では、基板上にUSBハブのチップが載っており、そこを経由してUSB機器を接続している。
「Orange pi PC」では、H3チップの持つUSBコントローラ機能を直接コネクタにつないでいる。
コスト削減になっているが、USB機器側でなにか変な動作した場合に、直接H3チップに影響がいくことになるため、壊れやすくはなっていると思われる。

機種間の差異はLinux起動時に読み込まれる「script.bin」と「uImage」にて対応している。
/bootディレクトリか/media/bootディレクトリに配置されている。
また、HDMI出力時の解像度変更は「script.bin」内の設定で行われている。

script.binについては、ある程度汎用性があるようで、他の機種用に出ているOSのscript.binを置き換えて、無理やり対応させる、ということは可能。

uImageのほうは、Linux kernelと関係しているので、置き換えてもうまく動かない可能性の方が高い。

Orange pi PCをLinuxで使う方法 / lobris版UbuntuをOrange pi 2などで使う

Allwinner H3搭載のOrange pi PC(OPi-PC)でLinux OSを使う方法は2つあります。

1つは、公式がリリースしているLubuntu 14.04 LTSイメージを使用する。
もう1つは、フォーラムでloborisさんが公開しているUbuntu 15.04 / Debian 8イメージを使用する。

公式のLubuntu 14.04は、一見、特に問題なく動くように見えますが
よくよく見てみると/lib/modules/ディレクトリの下とか、/bootの下のファイルとかに整合性がとれて無い部分があってちょっとアレです。

もう1つのloborisさんが公開している方がちゃんとしている感じがします。
公開場所「Debian & Ubuntu for Orange PI H3 boards

このイメージは下記のAllwinner H3搭載機で動作します。
・Orange pi plus(WiFi,内蔵フラッシュストレージ,SATAコネクタ搭載)
・Orange pi 2(WiFi搭載)
・Orange pi mini 2(WiFi無し)
・Orange pi PC(WiFi無し)

機種間で差異がありますが、それは機種毎に用意されている「script.bin」と「uImage」を適切に配置することで対処できます。

初心者に優しくない導入手順

1. 配布ディレクトリから必要なイメージファイルを入手
 「~.img.xz」がディスクイメージファイルです。
 目的とするOSのものをダウンロードします。

2. 配布ディレクトリから、最新のscriptbin_kernel.tar.gzを入手
 ディスクイメージの日付とscriptbin_kernel.tar.gzの日付を比較し
 scritbinの方が新しい場合、これもダウンロードします。

3. xzファイルを解凍
 「7-Zip」などを使ってファイルを解凍します

4. Win32 Disk Imager などを使ってmicroSDにディスクイメージを書き込みます
 書き込み後のmicroSDは、FAT32のパーテーションと、ext4のパーテーションにわかれます。

5. FAT32パーテーションをマウントし「script.bin」と「uImage」をコピーする
 FAT32パーテーションの中にscript.bin.OPI-2_1080p50などのファイルがあります。
 必要なファイルをコピーして配置します。
 Orange pi 2とOrange pi mini 2の場合
  「script.bin.OPI-2_~」から使いたいHDMIの解像度のファイルを「script.bin」としてコピー
  「uImage_OPI-2」を「uImage」としてコピー
 Orange pi PCの場合
  「script.bin.OPI-PC_~」から使いたいHDMIの解像度のファイルを「script.bin」としてコピー
  「uImage_OPI-2」を「uImage」としてコピー
 Orange pi plusの場合
  「script.bin.OPI-PLUS_~」から使いたいHDMIの解像度のファイルを「script.bin」としてコピー
  「uImage_OPI-PLUS」を「uImage」としてコピー

6. Orange piにmicroSDを入れて起動

7. Orange piにログイン
 ユーザ名「orangepi」、パスワード「orangepi」

8. ファイルシステムの拡張
 そのままだとmicroSDの一部しか使われていないので、未使用領域も使える様にコマンドを実行
 「sudo fs_resize」
 パスワードは「orangepi」

9. 再起動
 「sudo reboot」

10. 再起動後、scriptbin_kernel.tar.gzをOrange piに転送

11. scriptbin_kernel.tar.gzを展開

12. 配布物にあるlib/modules/3.4.39/を/lib/modules/3.4.39/にコピーして置き換え

13. script.binとuImageを/media/boot/ にコピーして置き換え

14. 再起動