先日、DebianにWaydroidで爆速快適なAndroidを体験、そりゃ、今やメインのRaspberry Pi 400にも入れなっくちゃでしょということでWaydroid安定版で最新のLieageOS 18.xベースAndroid 11相当を入れてみた話。
というか、そもそもRaspberry Pi 400に入れようと思ってたのですが、標準では未対応、カーネルビルドしないといけないっぽいというわけで先にその必要のないDebianで試してみることに。
元々したかったことはできないことが判明したものの、これまでのエミュレータではあり得ない、あまりの快適さに早くやってみたくなりました。
そこで練習としてUSBメモリに入っていたRaspberry Pi OS向けにカーネルオプションを追加し、Raspberry Pi 400でカーネルをクロスコンパイル、できた後、USBメモリを起動してWaydroidもインストール、wayland initもできた...。
までは良かったのですが、Waydroidの起動確認をすべく、WaylandベースのデスクトップがあるGNOMEをインストール中、容量不足でどうにもならなくなり...。
ちょっとやる気が失せて気分を切り替えるべく、他の作業をあれこれやってる内、さてやってみるかと思えたのが今日だったと。
インストールや使い方、制限・制約や、ちょっと困った点など詳細は冒頭リンク先のDebianのページを参照ください。
ただ、Raspberry PiでWaydroidを動かすためには、現時点、Raspberry Pi OSでは無効になっているというLinuxカーネル 4.20で導入されたPSI/Pressure Stall Informationを有効にする必要があるとのこと。
コマンドラインオプションとしてpsi=1を渡すという情報は、そこそこあり、Raspberry Pi OSにおいては、cmdline.txtに追記しても有効にならないという情報がちらほら。
一方、カーネルのビルドオプション[CONFIG_PSI]を有効にすべく、[CONFIG_PSI=y]する必要があるという情報は極端に少ないんですよね、国内外問わず。
まして、それどこで設定するのって情報は、皆無に近いという...が、これは有力情報でしょというか、それが解でしょ。
というわけでThe Linux Kernel by raspberrypi.comの手順通りにカーネルをビルド。
途中、make ***_defconfigすると[.config]ファイルができるので、これに先のビルドオプションを設定してmakeでビルド。
ビルド開始直後、すぐに「PSIを有効にするにあたり、ブートオプション指定を必要とするか否か」の旨、問われるので好きにするだけ。
自身はデフォルトのNにしましたが、たぶんyにするとRaspberry Pi OSの場合、cmdline.txtにpsi=1を追記する必要が生じて初めてその設定が効いてくるのでしょうね。
あとページのほとんどの画像の端末上のuname -a結果に見てとれるように自身は[CONFIG_LOCALVERSION]も設定しましたが。
ビルド時間については、Raspberry Pi 400でローカルビルドが約110分、クロスコンパイルが約120分。
前者はtimeを前置、後者は記憶の範囲で間違ってないとは思いますが、もしかすると同じくらいだったのかもしれません。
結果、Raspberry Pi 400/Raspberry Pi OSにおいてもWaylandベースのGNOMEや追加インストールしたwestonデスクトップ上でWaydroidセッションを開始、起動できるようになりました。
GNOME Wayland上の端末から[waydroid session stop]してみると、こんな感じ。
が、GTK関連の欠落なのか、まだその原因は不明も、ビルドしたカーネルで起動後、WaylandかXorgかに関わらず、メニューは表示されている、バーも掴むこともできなくもないものの、GNOME上のGUIアプリのウィンドウウィジェットの最上段のバーがあるのでしょうが、見えなくなる現象が...。
また、スクショなどアプリによってはパネル内の操作ができなくなり、苦肉の策でCLIのgnome-screenshotに頼ったため、余計な端末も写っていますが。
他方、シンプルすぎるほどシンプルな超軽量Waylandベースのwestonでは、また、XベースながらCinammon、LXDEでは全く問題なし。
あー!わかった...。
Tweaksのハンバーガーメニューから[デフォルト設定に戻す]とか、[GNOME Shell拡張機能をすべて無効にする]とか、やってみたら、ウィンドウも、ちゃんと普通に表示され、バーも出るし、パネル内の操作もできるようになりました...。
どうやら、Tweaksアプリというか、[外観]の[アプリケーション]の[テーマ]が[PiXflat]か[TPiXflat]になってて透明化されてたらしいです...。
なんて余計なことを...透明過ぎてトグルとか、ボタンとかなくなるって...。
これ以外、何も弊害も障害もなさ気ですが、現時点でRaspberry Pi OSでは、PSIを有効にできない理由があるのか、負荷が高くなることを望まないということなのか、単に需要がなかったということなのか、これら複合的な理由なのか。
極端に情報が少ないのは、そんなの常識だよって思ってる人以外に需要がないから、あえて説明するまでもないって話なんですかね。
よくわからないので、これ以上は差し控えます...。
って世界で唯一と言えるほど詳述してしまった気はしますが。
気づけば、apt update時、waydroidについては、次のような認証鍵エラーとなり、waydroidをupgradeできなかったので改めてwaydroid.gpgファイルをダウンロード・上書きして対処(参照先:mmBesar/Tutorials/Waydroid.md)。
https://repo.waydro.id/dists/bullseye/InRelease の取得に失敗しました 公開鍵を利用できないため、以下の署名は検証できませんでした 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY *****
既に/usr/share/keyrings/waydroid.gpgも、正しく書かれた/etc/apt/sources.list.d/waydroid.listもあったので、要はwaydroid.gpgを上書きしただけ。
これで正常にapt update && apt upgradeできるようになりました。