tizen.moe

tizen.moe

Jingpad A1を枕元PCにしたかった件



結論から言うと諦めてSurfaceを買ったのですが、何をドコまでやったかまとめておかないと思い出したときに同じことを繰り返すと思ったのでやったことだけまとめました。

枕元PCの要件

そもそも枕元にAndroidタブレットを置いていたのですが、バッテリーが見事に膨らみました。


どうせならタブレットPCにして起きないでちょっとした作業をssh出来たりすると便利だな、と思い立ってjingpadを放置していたので設定してみることに。
androidのTermuxでもそれなりには作業出来ますけど、それなりに快適なキーボードが欲しいですよね…)

では、個人的に欲しい要件は何かまとめてみると

ホボ動画視聴と電子書籍が読めればOKと言う結論に達しました、、、

取りあえずの前提調査やら設定

neofetch

独自のディストリビューションですがaptとかlsb_releaseとかあるしDebianUbuntuベースのカスタムDistなのかと。

Complex Passwordを設定しておく

コマンド操作しない人には不要かも知れませんが、設定しておかないとsimple passwordに設定したパスワードをsudoで毎回入れる羽目になるのでちょっと面倒でした。

adb接続

# ps aux|grep adbd
root      3559  0.0  0.0  12924  1220 ?        Sl   11:45   0:00 /usr/bin/adbd
root      8556  0.0  0.0  59640  5544 pts/1    Sl   11:45   0:00 /system/bin/adbd --root_seclabel=u:r:su:s0

良いのか分かりませんがadbdが上がっているのでadbで接続出来るようです。
Windows11だとdriverが無いのか認識しないのでUbuntuに繋いでみたら普通に見えました。

$ sudo adb devices
List of devices attached
A12140MKCAxxxxxx        device

普通にgoogleスマホとして認識してるような…?Windows11でも認識しても良さそうですが、、、PIDを弄ったりすれば良いのかな…?*1

$ lsusb
Bus 003 Device 009: ID 18d1:4ee7 Google Inc.

8コアもあるんですね。何もしてないのにロードアベレージ高いのは・・・?

$sudo adb shell
# top
top - 12:01:09 up 16 min,  0 users,  load average: 6.10, 6.13, 4.52
Tasks: 508 total,   2 running, 506 sleeping,   0 stopped,   0 zombie
%Cpu0  :  2.7 us,  2.0 sy,  0.0 ni, 90.5 id,  0.3 wa,  2.0 hi,  2.4 si,  0.0 st
%Cpu1  :  2.0 us,  2.0 sy,  0.0 ni, 94.3 id,  0.0 wa,  0.7 hi,  1.0 si,  0.0 st
%Cpu2  :  0.3 us,  1.3 sy,  0.0 ni, 97.7 id,  0.0 wa,  0.3 hi,  0.3 si,  0.0 st
%Cpu3  :  0.0 us,  1.3 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu4  :  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7732.8 total,   1995.8 free,   2356.6 used,   3380.5 buff/cache
MiB Swap:   4794.4 total,   4794.4 free,      0.0 used.   5164.2 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
10145 moguriso  20   0 1321096 137280  91032 S   2.3   1.7   0:26.68 plasma-settings

vysorで普通に認識してますが、繋がるでしょうか・・・?

無理だった。。。

頑張れば行けるのかも知れませんが別にそこには興味が無いしadb shell出来るから良いと言うことで

sshサーバ

# nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-07-14 12:18 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000014s latency). 
Other addresses for localhost (not scanned): ::1
Not shown: 999 closed ports
PORT     STATE SERVICE
5555/tcp open  freeciv

上がって無さそう。*2
5555はadbdのリモート接続用ですね(これデフォルトで開いてて良いんだろうか・・・?)

# apt install ssh
# nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-07-14 12:22 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000013s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
5555/tcp open  freeciv

youtubeが見られる?

StoreにFirefoxがあるのでブラウザから見るのは問題無さそうです。


Youtube専用アプリは公式にはないので取りあえず試すのであればAndoridスマホからapkを抜く必要があります。
(取りあえずFirefoxで見られるので良いじゃないかと思って試してません)

bookwalker / dmm booksは見られる?

Firefoxから普通に見られました。(取りあえず見られれば良いので…)

netflix / dアニメ

いろいろ試したのはホボこの項目だけです。そして上手く行きませんでした。
厳密には動画再生自体は可能ですが、いくつかの理由から実用に耐えないと判断しました。。。

ブラウザで見る(←無理)

参考
qiita.com

  • ブラウザ(chromium含む)でnetflixやdアニメを見る*3にはWideVineプラグインが必要
  • RPi + Chromiumで再生できた実績があるがlibwidevineは32bitのsoファイル
    • JingOSはaarch64ビルドで64bitのブラウザが入る(=参照してくれない)
    • 32bit系が動くように頑張って、32bitのchromiumが使えればらダメかなと思ったけれど上手く出来なかった*4

参照元参照元にあるコメントを見ても64bit OSでやってる人たちは上手く行ってなさそうで他の事例も調べた限り無さそうでした
https://blog.vpetkov.net/2019/07/12/netflix-and-spotify-on-a-raspberry-pi-4-with-latest-default-chromium/

Androidアプリでみる(←無理)

公式StoreにはないのでAndroidスマホからapkを抜く必要があります。*5
Androidアプリをjingpadで動かす設定は↓辺りを参照
forum.jingos.com
apkファイルを/home/user/辺りにコピーしてsshか本体のconsole操作で↓を入力

$ sudo japm install -i base.apk
installing ...
install success
netflix


入るには入りますが起動もしてくれません。logcatを見る限りそれらしいエラーは出てなくて起動の瞬間Grallocでメモリを取りに行くログがだーっと流れますが起動にも行かない模様です。

dアニメ


コチラは起動までは出来ます。

ログインも問題無く出来るのですが、コンテンツ再生時に
「再生エラー コンテンツの再生に失敗しました (C100-1)」
になります。*6
logcatに何も出てませんがAndroidアプリが出すエラーログをjingpadのlogcatdが拾えてないだけな気がしました(netflixもそうかも)

[ 3556.552614] audit: type=1400 audit(1657779357.805:12091): avc:  denied  { call } for  pid=15558 comm="droid.danimeapp" scontext=u:r:untrusted_app:s0:c52,c256,c512,c768 tcontext=u:r:init:s0 tclass=binder permissive=1

dmesgにあるのは字面だけならそれらしいですけど、アプリが起動してることを考えるとwarningでしょうか。。。

↑はapparmorが出してる・・・?apparmor無効っぽいです。。。
kernelはandroidっぽいのにrootfsの中身がUbuntuandroidのコンパチっぽいので「/system/bin/getenforce」が居る

$ sudo ./getenforce
Disabled

ですよねぇ・・・。
SystemのUIやらSettingsにもuntrusted_appを受け入れる的な設定は無さそう。

dockerで32bit chromiumから見る(一応見られる)

どうやったか記憶から大分㌧でしまった*7のですが、見られると言う点ではこの方法なら見ることはできました。
github.com
↑のコンテナイメージを拝借して(README.md記載の通りですけど)

$ git clone https://github.com/HenningThiemann/docker-chromium-armhf
$ cd docker-chromium-armhf
$ docker build -t hthiemann/chromium-armhf .
$ docker volume create chromium_home

して

sudo docker run --rm --privileged \
 -e DISPLAY=unix$DISPLAY \
 -v chromium_home:/home \
 -v /tmp/.X11-unix:/tmp/.X11-unix \
 -v /dev:/dev -v /run:/run \
 -v /etc/machine-id:/etc/machine-id \
 --ipc=host \
 --device /dev/dri \
 --group-add video \
 hthiemann/docker-chromium-armhf

を適当な名前(chromium-armhfとか)でファイルに保存→chmod 755とかして呼び出しますと

日本語設定が入って無いので日本語全般がお豆腐になりますがこれだとnetflixは問題無く再生できました。
ただ、ハードウェアアクセラレーションが無効になるので大分カクついて常用するには耐えません。。。
dアニメストアはログインできたのですが有料登録しているはずのアカウントで何故か未レジストとみられているようで登録を促されます。和文表示が全部お豆腐なので読めれば何のエラーか分かるのかも知れないのですが、実用に耐えないのが分かってしまって和文フォントを言われて頑張るモチベーションは失われました、、、
(何とも帯に短したすきに長し、、、)

気づいたこと

  • PCと接続して動かした状態だと給電性能が足りてないのかバッテリーが減る
    • 過充電防止とかが動いてる?*8

どうでも良いのですが

英字配列のキーボードなのにCapsLockが左手小指の位置にあるのは何でなんでしょうね、、、
(英字で良いから左手小指の位置にCtrlを配置して欲しかった)

*1:調べるの面倒なのでUbuntuで作業しましょう・・・

*2:nmapもデフォルトでは入って無いかも知れません←多分 apt install nmapで入れた

*3:DRMが掛かったコンテンツを再生する

*4:kernelのビルドオプション変更してリビルドとかする必要がある?←面倒臭すぎた

*5:もちろんAndoridスマホを所持している必要もあります。。。

*6:多分DRM解除に失敗してるのかと

*7:historyに残ってないのは何故だろう…

*8:んなわきゃないですよね、多分・・・