Ubuntu Touchを仮想環境で試す方法について調べたことを簡単にまとめていきます。
Ubuntu Touchって何ぞや
Ubuntu Touchとは、Ubuntuの開発元であるCanonicalが、iOSやAndroidに対抗するために作ったモバイルOSです。
現在は開発方針についてなんやかんやあった結果、UBportsが管理しています。
Ubuntu TouchはAndroidのカスタムROMと同じような方法で、対応する端末にインストールすることができます。
Ubuntu Touchの仮想イメージ
開発者向けにUbuntu Touchの仮想環境が提供されていないか、Ubuntu Touchの開発者向けドキュメントを読んだり(ついでに翻訳したり)していたところ、utqemu
という、Ubuntu TouchのQEMU環境が提供されているのを見つけました。
GitHub - ubports/utqemu: Ubuntu touch qemu virtual machine
utqemu
はsnapで提供されています。
とりあえず手元の環境で試す
環境
手順
1, 端末を開き、utqemu
をインストール
sudo snap install utqemu --edge
2, qemu-virgilをインストール
README.mdでインストールする項目として書かれていないものの、インストールする必要があります。
sudo snap install qemu-virgil --devmode
3, 接続
sudo snap connect utqemu:kvm
utqemu create
5, 以下のコマンドで起動
README.mdには「utqemu start
を使え」と書かれていますが、以下のコマンドでなければ起動しないことがIssueで報告されています。
qemu-virgil -enable-kvm -m 2G -device virtio-vga,virgl=on -display sdl,gl=on -netdev user,id=ethernet.0,hostfwd=tcp::10022-:22 -device rtl8139,netdev=ethernet.0 ~/snap/utqemu/common/ubuntu-touch-mainline-generic-amd64.img
ちなみにqemu-virgl
なしだと以下のエラーで止まります。
$ utqemu start qemu-system-x86_64: -device virtio-vga,virgl=on: Property '.virgl' not found
これでUbuntu Touchの仮想イメージが起動します。
ざっくりとした使用感
OSバージョン
どこにもOSのバージョン情報が書かれておらず、いつビルドされたものかもわかりません。
とりあえずTerminalでuname -a
を入力してみたところ、
Linux ubuntu-phablet 4.15.0-142-generic 146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
と帰ってきました。少なくともUbuntu16.04 LTSベースである模様。
一方、ファイルアプリを開くと、ファイルの作成(最終アクセス?)日は2022年となっています。
2022年にビルドされたものなのでしょうか...?
とりあえずここまで。
追記(10月5日)
一応utqemu
はQEMUのバイナリなどを持っているなので、本当はutqemu
だけで完結するはずのパッケージのようです。
でも、qemuのパスを直接指定して使った結果は以下のとおり…
$ /snap/utqemu/current/usr/bin/qemu-system-x86_64 -enable-kvm -m 2G -device virtio-vga,virgl=on -display sdl,gl=on -netdev user,id=ethernet.0,hostfwd=tcp::10022-:22 -device rtl8139,netdev=ethernet.0 ~/snap/utqemu/common/ubuntu-touch-mainline-generic-amd64.img /snap/utqemu/current/usr/bin/qemu-system-x86_64 -enable-kvm: error while loading shared libraries: libbrlapi.so.0.6: cannot open shared object file: No such file or directory
ライブラリ不足…(ソースコードを見るとstage-package
にちゃんと入ってるので謎)