GloDroidがninjaのエラーでビルドできない


PinePhoneやOrange Pi OneなどのAllwinner SoCで動くAOSPベースのandroidであるGloDroidというのがある。

これはGoogle Play StoreなどのGoogle関連(GMS)が入っていないので使いづらい。OpenGappsでも入れられないかなぁ?とパッケージをみてみたけど、こちらはTWRP用にカスタマイズされていてよく分からない・・・

GloDroidのgithubを見るとprebuilt_appsなんてレポジトリがありfdroidとkodiのインストールについての定義がある。ここらを応用すれば何かできないかなぁ、と思ってGloDroidを自分でビルドしてみることにした。

最初Ubuntu 18.04環境で作ってみたけど、うまくいかないのでGoogleのドキュメント上では推奨されているUbuntu 14.04環境作ってみたりしたけど、うまくいかなかった。

エラーの状況

Ubuntu 18.04でもUbuntu 14.04でもほぼ同じで下記のようなエラーが出力されます。

============================================
[100% 451/451] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp
Killed
10:47:31 soong bootstrap failed with: exit status 1
ninja: build stopped: subcommand failed.build/make/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
osakanataro@ubuntuserver:~/GloDroid$

out/soong.log の最後は下記のようなエラーです。

2020/06/12 10:47:31.168342 build/soong/ui/build/exec.go:95: soong bootstrap failed with: exit status 1

Ubuntu 14.04の場合

Javaのバージョンが古いので新しいOpenJDKを使える様にする。

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt install openjdk-13-jdk

Googleのドキュメント(Establishing a Build Environment)記載のパッケージをインストール。

$ sudo apt install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

また、上記のNoteに記載されている「python-networkx」と「libnss-sss:i386」も必要で、これが無いことでninjaのエラーがでていました。

$ sudo apt install python-networkx libnss-sss:i386

Repoのインストールを「Downloading the Source」記載の手順で行います。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
 gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
$ curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo

repo内部ではgitコマンドを使用するためgitの初期設定も行います。

$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

次にGloDroidで要求されているパッケージをインストール。(記述にはrepoが含まれてますがパッケージじゃないので抜く)

$ sudo apt install swig  python-dev python3-dev libssl-dev flex bison device-tree-compiler

で・・・この後、試行錯誤した結果、さらに以下のパッケージも必要でした。

$ sudo apt install python-pip gettext gdisk

Ubuntu 18.04の場合

Ubuntu 14.04の場合とだいたい一緒でした。

いまコンパイルして実証中です・・・(まだ結果が出ていない

2020/06/13 22:39 うーん・・・エラーだ

[100% 8/8] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Android.bp
Killed
22:37:24 soong bootstrap failed with: exit status 1
ninja: build stopped: subcommand failed.
#### failed to build some targets (02:38:03 (hh:mm:ss)) ####

out/soong.log の最後のあたりはこんな感じ

2020/06/13 19:59:25.251629 build/soong/ui/build/dumpvars.go:109: PRODUCT_SOONG_NAMESPACES
2020/06/13 19:59:25.252084 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x build/blueprint/bootstrap.bash -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -t]
2020/06/13 19:59:25.326955 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x out/soong/.bootstrap/bin/soong_env -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- out/soong/.soong.environment]
2020/06/13 19:59:25.761444 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x prebuilts/build-tools/linux-x86/bin/ninja -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -d keepdepfile -w dupbuild=err -j 2 --frontend_file out/.ninja_fifo -f out/soong/.minibootstrap/build.ninja]
2020/06/13 19:59:27.066701 build/soong/ui/build/exec.go:57: prebuilts/build-tools/linux-x86/bin/nsjail [-x prebuilts/build-tools/linux-x86/bin/ninja -H android-build --cwd /home/osakanataro/GloDroid -t 0 -e --proc_rw -u nobody -g nogroup --rlimit_as soft --rlimit_core soft --rlimit_cpu soft --rlimit_fsize soft --rlimit_nofile soft -B / --disable_clone_newcgroup -q -- -d keepdepfile -w dupbuild=err -j 2 --frontend_file out/.ninja_fifo -f out/soong/.bootstrap/build.ninja]
2020/06/13 22:37:24.168572 build/soong/ui/build/exec.go:95: soong bootstrap failed with: exit status 1

ワコムの廉価液タブWacom Oneの使えるペンとAndroid対応機種


ワコムからEMRペン採用の廉価液晶タブレットWacom Oneが出るそうで

製品ページその1
製品ページその2

ワコムの比較的廉価ラインや他社WindowsタブやAndroidタブで使われるWacom Feel IT technologysのうち、EMRペン(電磁誘導方式ペン)を採用しているとのこと。

(AESペン/ アクティブ静電結合ペンではない)

EMRペンは、ドスパラが出した 絵描き向けWindowsタブレットraytrektab とか、CES2020で発表されたAcerの絵描き向けタブレット(Acer、イーゼルヒンジ採用のクリエイター向けPCなど のクリエイター向けのConceptDシリーズ)とかで使われている。

数年前まではAESペン採用例が多かったけど、最近のワコム採用タブレットというとEMRペン採用例が多いような気がする。

Amazonで簡単に買えるあたりだと↓のような感じ

Samsungスマホ向けの以下も使えるはず。

で、今回のWacom Oneは一部のAndroidでも使えると記載されているのでどんな機種か確認・・・

画像

SamsungとHuaweiの一部のみ対応??

Androidスマホを液晶につないでパソコンみたいにつかう?

そういえば、SamsungもHuaweiもそういったオプションを提供しているぞ、と確認

HUAWEI MateDock 2対応機種

Compatible devices with the HUAWEI MateDock 2

The HUAWEI MateDock 2 is compatible with devices with USB-C and DP ports and supports wired projection. The following phone, tablet, and laptop models are compatible with the HUAWEI MateDock 2: HUAWEI P20 series, HUAWEI P30 series, HUAWEI Mate 10 series, HUAWEI Mate 20 series, HUAWEI Mate RS Porsche Design series, HONOR V20 series, HUAWEI MediaPad M6 10.8″, HUAWEI MateBook series, and HONOR MagicBook series.

Samsung Dex Station対応機種

Samsung DeX device requirements

Mobile Device: Samsung Galaxy S8, S8+, S9, S9+, and Note 8, Note 9, and Tab S4.

Samsungのリストの方はちょっと古いけど、だいたい重複している。

おそらく、Android本体のディスプレイとペンタブ部分を同時に使える機能を実装しているのは、こういった特殊なオプションを用意しているメーカ以外にはないと思うので、これから先もおそらくSamsungとHuaweiの高い機種以外での対応は増えないでしょうね。

もう1つ気になる点は、Wacom Oneとパソコンを繋ぐケーブルについて

画像

こんな感じの液タブ側はType-Cと同じ形状で、そこから3つに分かれたケーブルになり、1つは電源用USBコネクタ、1つはパソコン接続用のUSBコネクタ、1つはディスプレイ出力用のHDMIコネクタとなっている。

この形状、実は中華タブ系統では以前から見かけるものなんです。

たとえば、HUIONのKAMVAS Pro 13 GT-133/Pro 12 GT-116で使われているケーブルはこんな感じ。

画像

Type-C形状のコネクタがL型配置になっているという点も同じですね。

これ・・・もしかして、同じケーブルだったりしますかね?

ちょっと気になるところですが、単品販売が見つからないので試せないですね・・・

どうなんだろうなぁ・・・

PinePhone BraveHeart Limited Edition購入申し込み


Allwinner A64搭載のオープンハードウェア「PinePhone BraveHeart Limited Edition」の申し込みが始まったので手続きしてみた。

「BraveHeart Limited Edition」 とは「勇者の心」、意訳すると「人柱エディション」ですね。

どう人柱なのかというと、まず、発送時のハードウェアにはOSが入っていない。

先行してOS開発者向けにPinePhone Developer kitというのが2019年初頭から出回っていて、いろんなOSが開発中。

どんなOSがあるかと「Project Don’t be evil」のページを確認してみると・・・

OS名称ベース
Postmarket OSAlpine Linux
UBPortsUbuntu Touch
KDE Plasma MobileUbuntu Touch+Lineage OS/KDE
Sailfish OSMeeGo OSだけどAndroid寄りの商用
Maemo LesteMeeGo OS 
NixOSLinuxベースの関数型ディストリビューション
LunaOSpalmOSの末裔webOS
Nemo MobileSailfish OSの全てをOSS実装に?

Allwinner SoCなだけあってLinux kernelベースのものがずらりと並んでいます。

現状は基本的にUbuntuなどが稼働しているマシンにUSB接続してfirmwareを書き込むという感じになっている。

人柱エディションを卒業するまではこの初期導入の高さは抜けられないでしょう。

次に、メモリスペックが2GBというところが難点といえば難点ですが、そもそも↑であがっているOSが動くハードウェアでメモリ2GBって普通なので、まぁ・・・

PinePhoneの通信関連のスペックは下記の様になっている。

  • Worldwide, Global LTE bands
  • LTE-FDD: B1/ B2/ B3/ B4/ B5/ B7/ B8/ B12/ B13/ B18/ B19/ B20/ B25/ B26/ B28
  • LTE-TDD: B38/ B39/ B40/ B41
  • WCDMA: B1/ B2/ B4/ B5/ B6/ B8/ B19
  • GSM: 850/900/1800/1900MHz
  • WLAN: Wi-Fi 802.11 b/g/n, single-band, hotspot
  • Bluetooth: 4.0, A2DP
  • GPS: Yes, with A-GPS, GLONASS

使用されるモジュールは「Quectel Wireless EG25-G」で、メーカ製品ページには「JATE/TELEC」と技適などが取得されているような記述が・・・まぁ、アンテナ込みでの認証になるところチップのみ提供っぽいから無理なような気が・・・

ともかく到着が楽しみです

時々話題に上がるOSのメモ(AliOS,Harmony,webOS,Tizen,KaiOS) 2019/09/06


AliOS系統

AliOS

元々はalibabaがAndroid(AOSP)をベースにカスタマイズしたOS。「Yun OS」「Aliyun OS」といった呼び方をされていた時期もある。

公式ページ: AliOS

基本的にはGapps(Google Play Storeなど)が入っておらず、代わりにalibaba系でやってるサービスやストアが導入されている中国向けのAndroidといった感じのものになっている。

AliOS Things

AliOSのIoT向けとして作成されているOS。AliOSといってもAndroidベースではない。

公式ページ: AliOS Things
github: https://github.com/alibaba/AliOS-Things

IoT向けということで、ESP32とか、RISC-Vを使ったC-Sky SoCとかもサポートしている。

Huawei系統

LiteOS

Narrow Band IoT(NB-IoT)など向けにHuaweiが開発していたOS。これが、HarmonyOSに発展した。

github: https://github.com/LiteOS/LiteOS

動作対象ボード一覧: LiteOS支持的开发板种类

HarmonyOS

「鴻蒙 OS( HongMeng OS)」とも呼ばれることがある。LiteOSはIoT向けのみだったが、その適用範囲を大幅に広げ、スマートフォンも対象に含むようだ。

github: https://github.com/huawei-iot/HarmonyOS

ARKというAndroidでいうART(Android Run Time)みたいなものを作成しているようで、「方舟编译器(Open Ark compiler)」というページで関連資料が公開されている。

OpenARK Compilerについては「https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home」「https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/readme」でソースも公開されている。(ページの遷移具合で微妙に他のページへのリンクが消えたりするのが謎)

昔からのやつら

Tizen

Samsungが開発している自社向けOS。2019/5/30にTizen 5.5がリリースされていたりしている。

Android代替のTizen Mobileということで始まっているので、スマホやタブレットでTizen OS搭載のものがリリースされたりしているが、あまり売れていないようだ。
TV向けのTizen TVやWearデバイス向けTizen Wearなどは出ているようだ。

公式ページ: Tizen
ソースコード: Tizen Source

Tizen RT」というCortex-M/R SoC向けのバリエーションもあるようだが、こちらは2017/5のTizen RT 1.0以降更新がないようだ。

webOS

現在はLGが主体となって開発しているpalm webOS。
LG社のTV向けOSとして現在も開発は続けられている。(最新のwebOS TV SDK v4.0.4のリリースが2019/3)

公式ページ: webOS TV Developer
オープンソースサイト: webOS Open Source Edition

ラズパイ3が公式デバイスとして掲載されている。

kaiOS

Firefox OSのB2G部分をベースに開発が続けられているモバイル向けOS。
インドのJio社やNOKIAのフィーチャーフォンで使われており、昨日も新しいデバイスが発表されたりしている。

公式ページ: KaiOS tech
開発者向け: KaiOS Developer
github: https://github.com/kaiostech

Firefox version 59をベースに開発を進めているようだが、更新どうしてるんだろう?

SH-04Hで急速充電ができない原因


ジャンクのSH-04Hを約6千円で購入

安さの理由は左上の割れと、液晶の右端中央付近の色変化だけだと思っていました。

で・・・充電をしてみると、どうやっても低速充電表示となり、急速充電になりません。

よくわからないなぁ・・・と思いつつ、パソコンからデータ転送するか、と繋いでみると、パソコン側でデバイス認識してくれません。

microUSB端子を掃除して、ケーブルとケーブルの差し方をいろいろ試してみるとパソコンで認識できる状態に持って行くことに成功。

そして、その状態のまま先ほどは低速充電となった電源に繋いでみると、急速充電となることを確認出来ました。

SH-04Hの急速充電はQuick Chargeという仕組みを使って行われていますが、これはmicroUSB端子の「Vbus」「GND」と「D+」「D-」の4つの端子を使い5Vで0.5Aを超える充電や9Vでの充電を行うようになっています。

それに対して低速充電と表示される通常USB充電は「Vbus」と「GND」を使い5V 0.5A以内で充電を行います。

つまり、SH-04Hで急速充電できず、低速充電となるという状況は、microUSBの「D+」端子と「D-」端子の接触が悪く、きちんと認識されていない状況にある、ということになります。

miroUSB端子は小さく、金属端子部分も奥まった場所にあるため確認が難しいため、対処が難しいために、通常は本体交換という対処になってしまうんでしょうね。