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

nogajun
nogajun

_ 今、自分が使っているノートPCのTeclast F6 Proは、画面がタッチパネルで折りたたむとタブレット形態になります。 これにAndroid-x86 Projectをインストールしたら使えるのでは?と思って試したら、とても使い勝手がよかったので情報として書いておきます。

最初に「デュアルブートにする」といっても、Android x86はLinux上にインストールして使うものなのでWindowsの人はごめんなさい。ま、使いたい人はWindowsを消してDebianに入れ替えればいいと思うよ。

Android x86のrpmパッケージをダウンロード

Android x86のページからrpmパッケージ版のAndroid x86をダウンロードします。

利用する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が指定されているのでエラーになります。

オプションを変更すれば良いことがわかったのでスクリプトを修正します。 表示関係の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を使って)、そのまま引き継げます。お試しください。