Maru OS は Windows 10 Mobile にある Continuum の Android 版のようなものです。普段は Android の Smartphone ですが、Keyboard や HDMI モニタを繋ぐと Linux Desktop として使うことが出来ます。(前回)

maruos06.jpeg

HDMI 接続時のタイミングによっては、外部モニタではなく本体側に Desktop が表示されることがあります。これはこれで便利なのでそのまま使っています。(Slimport 経由で外部モニタ接続 → Dashboard 起動直後に切断)
Mouse, Keyboard は Desktop 用にペアリングしたものが使えます。解像度が 1920x1080 なので、外部出力と一致していることから本当にそのままです。


関連エントリ
Nexus 5 に Maru OS を入れてみた
Nexus 7 上に開発環境をつくる (4) Ubuntu 13.04
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0


GPU 毎の Extension の結果も追加しました。

Vulkan Device Features (GPU毎の比較表)

上のページで一番下の表は Instance/Device それぞれの対応 Extension の取得結果です。初期化時に参考になるかと思います。


関連エントリ
vulkaninfo 結果の比較表 (Desktop GPU/Mobile GPU)
Android の Vulkaninfo 結果
Android で Vulkan Sample を走らせるまでの手順
Linux で Vulkan を使う (GeForce, RADEON, Intel)
低レベル API 対応 GPU まとめ (D3D12,Vulkan,Metal)



Android 7.0 (Nougat) の対象外になった Nexus 5 ですが、MaruOS が動くらしいので入れてみました。HDMI 経由でモニタを接続すると Desktop PC として使えるようになります。

Maru OS

中央の小さい画面が Nexus 5 16GB model です。後ろのモニタは 11inch (OnLap 1101H)

maruos01.jpeg


↓ 起動すると普通の Android の画面。OS は Android 5.1.1。アプリは最小限

maruos03.jpeg


SlimPort 経由で HDMI 接続すると Debian の Desktop になります。Keyboard や Mouse は予め Bluetooth で接続しておく必要があります。

maruos04.jpeg


Nexus 5 以外に必要な物は下記の通り

・SlimPort の HDMI アダプタ
・Bluetooth Keyboard
・Bluetooth Mouse

Bluetooth のペアリングは Android 側で行います。ペアリングと接続が完了しても Android 画面の操作が出来ないので注意が必要です。Desktop 側の操作だけマウスとキーボードが有効になっているようです。Bluetooth 接続後の動作確認のために HDMI を先に繋いでおくことをおすすめします。

Desktop は Linux そのままです。開発環境を整えてアプリケーションビルドなども普通にできます。HDMI ケーブルを外しても状態は残っているので、再びケーブルを繋ぐと以前の画面のまま復帰できるようです。Android 側の操作で終了させることも出来ます。

Nexus 5 本体の電源ボタンを押す (Sleep する) と Desktop 側も Sleep してしまうようです。使うときは Nexus 本体側の画面も常時点灯状態にしておく必要あり。

Mobile 端末で動く Desktop 環境としては思ったよりもレスポンスが良く十分使えそうです。RAM が多い上に CPU 世代も違うので当然ですが、以前使っていた Nexus 7 (2012) の Linux (Ubuntu) や NetWalker、古い Raspberry Pi よりも快適でした。

下記はビルド時間の比較。

                    real   user      CPU         clock  core
-------------------------------------------------------------
Nexus 5 + MaruOS    3:29   4:42      Krait 400   2.3GHz  4
Raspberry Pi 2      5:51  20:08      Cortex-A7   0.9GHz  4
Raspberry Pi 3      2:18   6:57      Cortex-A53  1.2GHz  4

real, user 共に実行時間。(分:秒) 値が小さい方が高速。

実際の時間 (real) では Raspberry Pi 3 に敵いませんが Raspberry Pi 2 よりは早く完了しています。user 時間が最も短いため core 自体の能力は高いことがわかります。Thread の恩恵が少ないのでストレージが遅いか描画に取られているのかもしれません。

OpenGL API に対応しており GL 2.1 + ES 2.0 が使えます。ソフトウエア描画なので GPU は用いられていません。かなり低速ですが一応 3D 描画できました。1~2 fps 程度。

maruos05.jpeg


関連エントリ
Nexus 7 上に開発環境をつくる (4) Ubuntu 13.04
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)
NetWalker PC-Z1 i.MX515 OpenGL ES 2.0 (2)



今まで集めた vulkaninfo の結果を表にまとめてみました。下記ページよりどうぞ。

Vulkan Device Features

VkPhysicalDeviceFeatures と VkPhysicalDeviceLimits を抜き出しています。
vulkaninfo コマンドの出力結果と vulkan.h には一部食い違いがありますが、ヘッダ vulkan.h の表記を優先しています。


関連エントリ
Android の Vulkaninfo 結果
Android で Vulkan Sample を走らせるまでの手順
Linux で Vulkan を使う (GeForce, RADEON, Intel)
低レベル API 対応 GPU まとめ (D3D12,Vulkan,Metal)


Android でも vulkaninfo を走らせてみました。

Nexus 5X (Snapdragon 808 Adreno 418) と Nexus Player (Atom Z3580 PowerVR G6430) の結果をこちら↓に載せています。

Vulkaninfo の結果

Desktop GPU との機能の違いがわかります。


関連エントリ
Android で Vulkan Sample を走らせるまでの手順
Linux で Vulkan を使う (GeForce, RADEON, Intel)
低レベル API 対応 GPU まとめ (D3D12,Vulkan,Metal)



| 次のページ(日付が古い方向)>>