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

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) 2021/11/25


HuaweiのHarmonyOS関連をおっていたら、中国におけるIoT向け開発する場合のサイト一覧みたいなものを発見したので、その情報を追加しつつ、全体的に情報更新を実施。

中国のIoT向けサイト一覧 https://gitee.com/zhengnianli/EmbedSummary

ただ、Huawei系の人なようで、AliOSに関する記載がなかったりしている。

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。これが、OpenHarmonyに発展した。

てっきり、全面OpenHarmonyに移行なのかと思ったら、2021年11月現在も更新は続いている。

公式: Huawei LiteOS(英語) / 轻量级操作系统 LiteOS(中国語)
github: https://github.com/LiteOS/LiteOS

以前は動作対象ボード一覧があったのだが発見出来ず。

HarmonyOS

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

最初はgithubで公開されていたがhuawei排除の波におされgiteeというサイトに移動した。

HarmonyOS 公式
HarmonyOS開発者向けサイト

ただ、Androidアプリも動くスマホなど向けのものと、IoT向けのものの区別がよく分からない。

GoogleのAndroidとAOSPみたな関係で、HarmonyOSとOpenHarmony があるようで、giteeでソースが公開されている。

gitee: https://openharmony.gitee.com/openharmony or https://gitee.com/openharmony

OpenHarmonyリリースノートからSIG_DevBoardという開発者向け基板に関する情報を見てみると、Android向けのメーカ名だけではなく、espressifなどのIoT向けのメーカ名も入っている。

いまいちここらへんの区切りがどうなっているのかよくわからない

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

昔からのやつら

Tizen

Samsungが開発している自社向けOS。2020/10/27にTizen 6.0がリリースされていたりしている。

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

Tizen Wearについては2021年6月にGoogleのWear OSとの統合が発表された。(グーグルとサムスン、「Wear OS」「Tizen」を統合)

いままでAndroidベースだったWear OS by Googleを、省電力なTizenベースで構築し、その上にGoogle基盤を載せるという方向転換が行われている。

公式ページ: 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 v6.0.1のリリースが2021/8で、webOS OSE v2.13.2は2021/10)

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

ラズパイ4がwebOS OpenSource Editionの公式デバイスとして掲載されている。

kaiOS

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

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

元々はFirefox version 59をベースに開発を進めていたが、2020年のMozillaと提携して、更新を行っているようだが、それを反映したKaiOSは2021年11月時点でも製品に搭載されていない模様。

mozilla wikiにも「KaiOS」というページが出来て、構築手法の紹介がされている。

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

Echo show 5を買ったらAmazonの配送予定がダダ漏れになった


プライムセールでAmazon Echo show 5が安かったので買ってみた。

0時過ぎに発注したら11時過ぎに到着。

セットアップを開始してみてびっくり。

WiFiの設定してないのに接続してシステムアップデートの取得が始まった。

家にはEcho dotがあり、それ用の設定がAmazon側に保存されており、Echo show 5の出荷時にWiFi設定までが組み込まれていたようです。

びっくりです。

で・・・起動して、めんくらったのはこの表示

これ、Echo show 5の出荷についての通知なのですが、確認したけどその消し方が分からないという・・・

そして、そもそもこれが表示されてしまうと、Amazonで買ったことが筒抜けになってしまう・・・

設定を探したところ「 通知:スキルなどのAlexaサービスからのアラート 」をオフにすることでようやく消えました。

が・・・これをオフにしてしまうと、全てのスキルからのお知らせが表示されなくなるため、とても寂しい画面が・・・

これが延々と繰り返しになっています。

もうちょっとカスタマイズできるようにならないかなぁ・・・

……

AndroidのAlexaアプリの 「設定」-「通知」-「Amazonでお買い物」 で配送に関する通知をオフにすることができました。