Teclast F6 ProにAndroid x86をインストールしてDebianとデュアルブートにして使う

_ 今、自分が使っているノートPCのTeclast F6 Proは、画面がタッチパネルで折りたたむとタブレット形態になります。 これにAndroid-x86 Projectをインストールしたら使えるのでは?と思って試したら、とても使い勝手がよかったので情報として書いておきます。
最初に「デュアルブートにする」といっても、Android x86はLinux上にインストールして使うものなのでWindowsの人はごめんなさい。ま、使いたい人はWindowsを消してDebianに入れ替えればいいと思うよ。
Android x86のrpmパッケージをダウンロード
Android x86のページからrpmパッケージ版のAndroid x86をダウンロードします。
- Android-x86 - Porting Android to x86: http://www.android-x86.org/
利用するAndroidのバージョンは、最新の8.1-rc2(2019/1現在)は、たまに挙動がおかしなことがあるので安定して使いたい人はcm-x86 14.1-r2か7.1-r2を使うのがよいでしょう。
alienを使ってdebに変換してインストール
alienを使ってrpmパッケージをdebパッケージに変換します。パッケージの変換は、ユーザー権限のまま行いたいのでalienと一緒にfakerootパッケージもインストールしておきます。
$ sudo apt install alien fakeroot
インストールしたらdebパッケージに変換します。
$ fakeroot alien -dc android-x86-8.1-rc2.x86_64.rpm
リリースページに書いてあるコマンドですが、「-ci」というオプションは変換してそのままインストールをするという危険な方法なので真似しないほうがいいと思います。
しばらくするとdebパッケージができるので、dpkg -c でdebパッケージ内のファイルを確認しましょう。
$ dpkg -c android-x86_8.1-1_amd64.deb
drwxr-xr-x root/root 0 2019-01-05 11:23 ./
drwxr-xr-x root/root 0 2019-01-05 11:22 ./android-8.1-rc2/
-rw-r--r-- root/root 1358701 2018-10-18 17:34 ./android-8.1-rc2/initrd.img
-rw-r--r-- root/root 7344992 2018-10-18 17:34 ./android-8.1-rc2/kernel
-rw-r--r-- root/root 1425194 2018-10-18 17:34 ./android-8.1-rc2/ramdisk.img
-rw-r--r-- root/root 878026752 2018-10-18 17:34 ./android-8.1-rc2/system.sfs
drwxr-xr-x root/root 0 2019-01-05 11:23 ./usr/
drwxr-xr-x root/root 0 2019-01-05 11:23 ./usr/bin/
-rwxr-xr-x root/root 1868 2018-10-18 17:34 ./usr/bin/qemu-android
drwxr-xr-x root/root 0 2019-01-05 11:23 ./usr/share/
drwxr-xr-x root/root 0 2019-01-05 11:23 ./usr/share/doc/
drwxr-xr-x root/root 0 2019-01-05 11:23 ./usr/share/doc/android-x86/
-rw-r--r-- root/root 171 2019-01-05 11:23 ./usr/share/doc/android-x86/changelog.Debian.gz
-rw-r--r-- root/root 942 2019-01-05 11:23 ./usr/share/doc/android-x86/copyright
/(ルート)直下に大きなイメージファイルを置くだけのようですね。qemu-androidというコマンドも気になりますが、とりあえずはインストールしてみましょう。
$ sudo dpkg -i android-x86_8.1-1_amd64.deb
以前に未選択のパッケージ android-x86 を選択しています。
(データベースを読み込んでいます ... 現在 378014 個のファイルとディレクトリがインストールされています。)
android-x86_8.1-1_amd64.deb を展開する準備をしています ...
android-x86 (8.1-1) を展開しています...
android-x86 (8.1-1) を設定しています ...
Generating grub configuration file ...
テーマを見つけました: /boot/grub/theme/Vimix/theme.txt
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Linux イメージを見つけました: /boot/vmlinuz-4.19.13-sipodev
Found initrd image: /boot/initrd.img-4.19.13-sipodev
Linux イメージを見つけました: /boot/vmlinuz-4.19.0-1-amd64
Found initrd image: /boot/initrd.img-4.19.0-1-amd64
Linux イメージを見つけました: /boot/vmlinuz-4.18.6-sipodev
Found initrd image: /boot/initrd.img-4.18.6-sipodev
Adding boot menu entry for EFI firmware configuration
完了
Grubも更新されました。今、インストールしているDebian環境はUEFIとGrubを使っていますが、問題なく更新されました。 インストール作業は、これで終わりです。
実機でAndroid x86を使う
実機で使う場合は、再起動するとGrubのメニューにAndroid x86が追加されているので選ぶだけです。
Teclast F6 Proではタッチパッドは使えませんが、タッチパネルとキーボードは使えるので実用上困らないと思います。折りたたんでタブレットにすれば普通のAndroidタブレットと同じですが、画面の回転が強制回転にしてもできないので使えるのは横画面のみになります。
Debian上からAndroid x86を使う
気になるqemu-androidというコマンドですが、これはqemuを使ってインストールイメージを起動するスクリプトです。qemuとkvmをインストールした環境で、このコマンドを実行するとLinux上でAndroidが使えます。便利ですね。
では、qemu-androidを実行してみましょう。desktopファイルは登録されていないのでターミナルから実行してください。
$ qemu-android
/android-8.1-rc2/data subfolder exists.
If you want to save data to it, run /usr/bin/qemu-android as root:
$ sudo /usr/bin/qemu-android
Please Enter to continue or Ctrl-C to stop.
Enterキーを押すと、こんなエラーが出て止まります。(7のときはエラーが出ても起動してたのでタイミングの問題かもしれないけど)
qemu-system-x86_64: Display 'sdl' is not available.
Debianのqemuは、表示にgtkを利用するためにsdlが無効になっています。しかし、qemu-androidではsdlが指定されているのでエラーになります。
-
851509 - qemu: Please enable sdl frontend too - Debian Bug report logs: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851509
オプションを変更すれば良いことがわかったのでスクリプトを修正します。 表示関係のqemuオプションを確認するとこうなっています。
Display options:
-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]
[,window_close=on|off][,gl=on|core|es|off]
-display gtk[,grab_on_hover=on|off][,gl=on|off]|
-display vnc=<display>[,<optargs>]
-display curses
-display none
-display egl-headless[,rendernode=<file>] select display type
The default display is equivalent to
"-display gtk"
sdlをgtkに置換するだけで良いみたいですね。ということでスクリプトの最後にある起動部分のオプションを置換した結果がこちらです。
$ diff -u qemu-android.orig qemu-android
--- qemu-android.orig 2019-01-05 12:03:38.314022031 +0900
+++ qemu-android 2019-01-05 12:08:42.838152569 +0900
@@ -65,7 +65,7 @@
}
# Try to run QEMU in several VGA modes
-run_qemu -vga virtio -display sdl,gl=on $@ || \
-run_qemu -vga qxl -display sdl $@ || \
-run_qemu -vga std -display sdl $@ || \
+run_qemu -vga virtio -display gtk,gl=on $@ || \
+run_qemu -vga qxl -display gtk $@ || \
+run_qemu -vga std -display gtk $@ || \
run_qemu $@
これでqemu-androidを実行してもエラーも出ること無く起動するようになりました。
まとめ
これ、ずっと前から使ってて地味に活用してます。 あとは縦画面にできればPDFが読みやすくなるのだけど、誰か教えてください。
2019/06/19追記
6月13日にリリースされたAndroid 8.1-r2で縦になるようになりました!
センサーではなくRotation Controlをインストールして切り替える必要はありますが勝手に回転させるより自分で回転するほうが好みなので、これのほうが使いやすいです。
また、8.1-r1からタッチパッドも使えるようになっていたので、タブレットモードでもPCモードでも、どちらでも使いやすくなりました。
アップデート時のデータ移行方法について
アップデートをする際のデータ移行ですが、新しいパッケージをインストール後、古いパッケージの /android-(バージョン番号)/data/ ディレクトリを新しいパッケージのほうに 属性そのままで コピーすれば(cpならcp -aを使って)、そのまま引き継げます。お試しください。