hiroの長い冒険日記

主にコンピュータ周辺の興味を持った内容を綴ります

Android x86 を Windows10 の仮想マシン (Virtualbox, Hyper-V, qemu) で動かしてみる

当日記ではアフィリエイト広告を利用しています

これまで Windows10 上で様々な仮想マシンを動かしてきました。とはいえゲスト OS は Ubuntudebian 等の x86 環境の Linux ばかりで、もっと別の OS を動かしてみたいと思っていました。
CPU が異なる環境を動かすのは流石にハードルが高いので、先ずは同じ CPU で動作する別OS(といってもベースは Linux ですが) の Android x86VirtualboxHyper-Vqemu で動作させてみました。また、仮想環境のAndroid x86 がどの程度実用的なのかも試してみました。

Android x86 とは

スマートフォンで OS として使われている Androidx86 版です。

www.android-x86.org

iPhone 以外のスマホは殆どが Andoroid OS で動作しています(昔は色々あったのですが…歴史(IT media))。Android スマホの CPU は ARM ですが、それを Windows PC でよく使用されている IntelAMD の CPU で動作するようにしたものが Android x86 になります。

Windows よりも要求する能力が少ないので、型落ちの PC で動作させるには chromebook と並んで良い選択かと思います。64bit 版と 32bit 版がありますが、よっぽど古い PC じゃなければ 64bit 版で大丈夫でしょう。

要求仕様

Download File List - Android-x86 - OSDN
此方に System Requirements として記載がありました。

Operating System: Android
X86 platforms
CPU: Intel/AMD (ABI requirements: https://developer.android.com/ndk/guides/abis#x86)
GPU: Most Intel/AMD/Nvidia chips
Memory: 2GB+
Free disk space: 4GB+

Memory 2GB以上、Disk 4GB以上、なので要求仕様はかなり低めです。Ver.9.0 で試しに 1 core で起動させたら正常に起動しなかったので、2 コアは必要だと思います。

Android x86 の install

2018年9月と少し古いですが @IT の記事が分かり易いです。
atmarkit.itmedia.co.jp
こちらの2ページ目、「パーティションなどを自分で設定してインストールする」の方法で install しました。

@IT の記事は実機と VMware ですが、VirtualboxHyper-Vqemu それぞれで install してみます。

android x86 の install image には、Ver.8.1-r6 と Ver.9.0-r2 がありますが、今回は Ver.9.0-r2 の方を使用します。

www.android-x86.org

kernel は 4.19.110 のようです。install 時の画面については、ググると沢山出てきますので、以下では要点のみ記載します。

Android install 共通

UEFI で install する場合

BIOS(第1世代) でも UEFI(第2世代) のどちらでも install 出来ます。UEFI で install する場合には、installer で GPT を選択、仮想 HDD の先頭に 128 MB の領域を EFI System (type ef00) で作成し、残りを Linux (type 8300) で確保します。その後、sda2 の partition に install します。仮想 HDD 全体を ext4 で確保してしまうと起動できません。installer は自動で partition 分けはやってくれないようです。

他にも UEFI 特有の難しさがあるので、最初は BIOS で install してみるのが良いかと思います。UEFI の起動画面を以下に示します。
f:id:hiro20180901:20220119004150p:plain:w641

画面がブラックアウトしたら

Screen Saver が動作しているようです。実機なら電源ボタンを押しますが、仮想マシンでは shutdown の操作をすると復帰します。

  • Virtualbox : menu の入力 -> キーボード -> 送信 Ctrl + Alt + Del (Host + Del) を押します。Host key が 右 Alt なら 右Alt + Del です。Windows10 のリモートデスクトップで接続している場合には Ctrl + Alt + End になります。
  • Hyper-V : menu の操作 -> Ctrl + Alt + Del を選択するか、Ctrl + Alt + End を押します。
  • qemu + SPICE : 左上角の keyboard icon から Ctrl + Alt + Delete を選択するか、Ctrl + Alt + End で OK です。
画面ロックの PIN は設定しない

仮想マシンで使う場合には PIN は設定しない方が操作しやすいです。もし設定した場合には、マウス左ボタンで上方向にドラッグ (ボタンを押したまま上に動かす) して、左ボタンを離さずに PIN を入力して Enter で確定させます。

Virtualbox

64 bit 版を install しました。

  • 仮想マシンの作成の条件 : VBoxVGA を選択したいので、Linux を選択しない方が良いです。
    • タイプ : Other
    • バージョン : Other/Unknown (64-bit)
  • CPU 4 core、Memory 8GB
  • ディスプレイ ビデオメモリーを増やした方が反応が良いです。
    • ビデオメモリー : 128 MB (最大まで)
    • グラフィックスコントローラー : VBoxVGA
    • アクセラレーション : 3Dアクセラレーションを有効化をチェックする
  • Audio
    • ホストオーディオドライバー : Windows DirectSound
    • オーディオコントローラ : ICH AC97 (Intel HD オーディオではスロー再生になる)
  • ネットワークはアダプタ1を NAT で有効化する。Network は Virtwifi になる。

上記の条件で Network と Audio と Video が使える状態で起動出来ました。ビデオメモリを増やしておけば反応はまあまあです。他の LinuxGnomeKDE を使った場合と比較してしまうと反応は良くありませんが許容範囲です。CPU の負荷は結構高めです。CPU 2 core、Memory 2GB でも動作しますが、反応は鈍くなります。Audio も使えましたが音ズレが大きく実用的とは言えませんでした。

Virtualbox のリモートディスプレイを有効にしてからヘッドレス起動して、Windows10 の「リモートデスクトップ接続」で接続してみると非常に軽快に動作しました。ポインティングデバイスPS/2 マウスから USB タブレットにすると、マウスカーソルがホスト側の位置に追従するようになります。Audio は音ズレが更に大きくなり使えるレベルではありません。

Hyper-V

64 bit 版を install しました。

  • network は Default Switch に接続
  • CPU は4 core、Memory 8GB
  • セキュアブート無効
  • チェックポイント無効

上記の条件で Network と Video が使える状態で起動出来ましたが、Audio は使用できませんでした。仮想マシンの設定にも Audio に関するものはありませんし、Hyper-V は基本的に server 用途で使う事を想定しているのでしょう。

Virtualbox と比較すればかなり軽いです。起動直後の高負荷の状態を過ぎれば、殆ど違和感なく操作できます。なんとなくですが画面表示に hyperv_fb を使用している為のような気がします。

qemu

qemuandroid x86 を install するのは非常に苦労しました。Video Memory を盛らないと正常に install できません。

  • whpx 無効 (有効では起動できませんでした)
  • Virtio あり、CPU 4 core、Memory 8GB に設定
  • 64 bit 版では起動できませんでしたので 32 bit 版を使用 (原因は分からず)
  • spice 使用 (qemu 標準の画面では再起動する)
  • qxl の memory 増量 (次項で説明)
qemu qxl の VRAM 設定

qxl の Video 設定を変更する事が重要です。Video Memory を増やさないと反応が非常に悪くなります。日本語の設定例が殆どありません。以下は英語の説明です。
Re: [Qemu-devel] [PATCH 08/10] qxl: add vgamem_size_mb and vgamem_size
一部を引用します。

The qxl device has two large memory regions:

Region #1 is called "ram" and is mapped to PCI bar 0. This is again
splitted into three parts: The framebuffer at the start, the command
rings at the end, and storage area for spice rendering commands and
image data inbetween.

Region #2 is called "vram". This is storage for images, called
"surfaces" in spice. Surfaces can be both source and target for spice
rendering operations. X11 can store offscreen pixmaps there for
example. Once qxl gets 3D support surfaces can also be used for textures.

Now for the properties:

vgamem_mb
specifies the size of the framebuffer portion of the "ram" region, in
megabytes. Must be big enougth to hold the maximum display
resolution you want to use. Replaces the fixed VGA_RAM_SIZE define.
Default is 8 or 16 MB depending on machine type with all patches of
this series applied (see last patch).

ram_size_mb
specifies the total size of the "ram" region, in megabytes. Defaults
to 64 MB. Must be larger than vgamem_mb obviously.

vram_size_mb
specifies the total size of the "vram" region, in megabytes.
Defaults to 64 MB.

vram64_size_mb
if this one is present and larger than vram_size_mb qxl will get an
additional 64bit pci bar. Both 32bit and 64bit vram pci bars are
backed by the "vram" memory region, the 32bit bar is an alias mapping
for the first part of the 64bit pci bar. This can be used to give
guests *lots* of vram without exhausting 32bit pci address space.
Obviously only useful for 64bit guests. Requires cutting edge
seabios to get the 64bit bar actually mapped above 4G.

超意訳:

qxlデバイスには2つの大きなメモリ領域があります。

領域1は「RAM」と呼ばれ、PCI BAR (Base Address Register) 0に map されます。更に3つに分割されています。frame buffer が最初にあり、command ring が最後に、中間に SPICE の rendering command と image data の記憶領域があります。

領域2は「vram」と呼ばれます。SPICE の Surface と呼ばれる画像の記憶領域です。
surface は SPICE のレンダリングの source にも target にも両方になることができます。
例えば X11 は非表示の pixmap をそこに保存できます
qxlが3Dを使用する際には、テクスチャに surface を使用することもできます。

プロパティ:
vgamem_mb
「RAM」領域の frame buffer 部分の size を MB で指定します。使用したい最大の display 解像度よりも大きな大きさを指定する必要があります。VGA_RAM_SIZE の固定値を置き換えます。default は 8 か 16 MBで、すべてのパッチが適用された後のマシンタイプに依存します最後のパッチを参照)。

ram_size_mb
「RAM」領域の合計サイズを MB で指定します。default は 64 MB です。vgamem_mb より大きい値を指定する必要があります。

vram_size_mb
「vram」領域の合計サイズを MB で指定します。default は64MBです。

vram64_size_mb
これが指定され、且つ vram_size_mb より大きい場合、qxlは追加の64 bit PCI BAR を追加で設定します。 32 bit と 64 bit の両方の VRAM PCI BAR は「vram」メモリ領域の後に置かれ、32 bit PCI BAR は 64 bit PCI BAR の前半に重ねて mapping されます。これにより、32 bit PCI の address space を超えた大量の VRAM を仮想マシンに与える事ができます。この事は 64 bit 仮想マシンにのみ有効です。実際に seabios は 64 bit PCI BAR を 4GB より上(の memory 空間)にマッピングします。

まとめると、

  • vgamem_mb : default 16 (MB)
  • ram_size_mb : default 64 (MB) で vgamem_mb より大きい値を指定
  • vram_size_mb : default 64 (MB)
  • vram64_size_mb : 有効にする場合は vram_size_mb よりも大きい値を指定 (64 bit guest のみ有効)

default では不足しているので、vgamem_mb=128、ram_size_mb=256、vram_size_mb=512 に設定しました。これで表示に関する誤動作は出なくなりました。(それでも反応は遅いです)

install 及び起動 script

Windows Hypervisor Platform を使えないので起動に非常に時間を要しますし(Ryzen 7 3800x で2分程度)、CPU 負荷も高め、反応も3種類の中で一番「モッサリ」していました。

BIOS版 :
PowerShell : HDD 作成

PS> & 'C:\Program Files\qemu\qemu-img.exe' create `
-f qcow2 'C:\VirtualHDD\qemu_Android9.qcow2' 32G

PowerShell : install は負荷が軽いので 2 core & 4GB memory で十分です。

PS> & 'C:\Program Files\qemu\qemu-system-x86_64.exe' `
-m 4G -smp 2 `
-drive file='C:\VirtualHDD\qemu_Android9.qcow2',if=virtio `
-net nic,model=virtio -net user,hostfwd=tcp::5900-:5900 `
-vga qxl -spice port=5900,disable-ticketing=on `
-machine vmport=off `
-cdrom 'E:\ISO\android-x86-9.0-r2.iso' -boot once=d -no-reboot

PowerShell : 起動 (特に初回) は負荷が重いので 8 core & 8GB memory にしています。2回目以降なら少し減らしても大丈夫です。qxl の VRAM は多めにしています(こんなに要らないかも)。

PS> & 'C:\Program Files\qemu\qemu-system-x86_64.exe' `
-m 8G -smp 8 `
-drive file='C:\VirtualHDD\qemu_Android9.qcow2',if=virtio `
-net nic,model=virtio -net user,hostfwd=tcp::5900-:5900 `
-vga none -device qxl-vga,ram_size_mb=256,vram_size_mb=512,vgamem_mb=128 `
-spice port=5900,disable-ticketing=on `
-machine vmport=off

UEFI版 :
PowerShell : HDD 作成

PS> & 'C:\Program Files\qemu\qemu-img.exe' create `
-f qcow2 'C:\VirtualHDD\qemu_Android9_UEFI.qcow2' 32G

PowerShell : install

PS> & 'C:\Program Files\qemu\qemu-system-x86_64.exe' `
-m 4G -smp 2 `
-drive if=pflash,format=raw,readonly=on,file='E:\VirtualHDD\OVMF_CODE.fd' `
-drive if=pflash,format=raw,file='E:\VirtualHDD\OVMF_VARS_Android9.fd' `
-drive file='C:\VirtualHDD\qemu_Android9_UEFI.qcow2',if=virtio `
-net nic,model=virtio -net user,hostfwd=tcp::5900-:5900 `
-vga qxl -spice port=5900,disable-ticketing=on `
-machine vmport=off `
-cdrom 'E:\ISO\android-x86-9.0-r2.iso' -boot once=d -no-reboot

PowerShell : 起動

PS> & 'C:\Program Files\qemu\qemu-system-x86_64.exe' `
-m 8G -smp 8 `
-drive if=pflash,format=raw,readonly=on,file='E:\VirtualHDD\OVMF_CODE.fd' `
-drive if=pflash,format=raw,file='E:\VirtualHDD\OVMF_VARS_Android9.fd' `
-drive file='C:\VirtualHDD\qemu_Android9_UEFI.qcow2',if=virtio `
-net nic,model=virtio -net user,hostfwd=tcp::5900-:5900 `
-vga none -device qxl-vga,ram_size_mb=256,vram_size_mb=512,vgamem_mb=128 `
-spice port=5900,disable-ticketing=on `
-machine vmport=off

System UI isn't responding 等、反応がないという message が頻繁に出ますが、重いだけなので Wait を選択します。
-device AC98 を追加すれば音も出力されました。ただし反応は悪いです。

Android x86 9.0 の使い方

10年以上 Android から離れていますので、使い方を忘れています。WindowsGnome (Linux) とは勝手が違いますので、迷った所を列記します。

画面下のアイコン

  • 左向き三角が前に戻る
  • 中央の丸が Home 画面に戻る
  • 右側の四角が動作しているアプリ一覧

アプリ一覧は左右にドラッグするとスクロールできて(マウスホイールも効く)、右端に「すべてクリア」があります。

電源の落とし方

Home 画面で前記の「画面がブラックアウトしたら」に記載した内容を実行すると、右側に「電源を切る」ボタンが表示されますので、これを押すと shutdown します。

安全に再起動する方法

フリーズしかかったり動作が変になったり、画面が乱れてどうしようもない時には、仮想端末に切り替えて再起動してみてください。

  • Alt + F1 で仮想端末に切替
# reboot 

これでダメならリセット。

アプリ一覧を表示する

画面下部から上方向にマウス左ボタンでドラッグすると出現します。これが出来ないと、設定アプリ等が使えません。

日本語入力アプリ

Gboard を install します。フリック入力は使用しないので QWERTY のみ有効にしました。

日本語入力/直接入力の切り替え

ググるWindows キー + Space で切り替えられると書いてあり、確かに設定アプリのシステム -> 言語と入力 -> 物理キーボード -> キーボードショートカットヘルパーの画面には、「入力方法の切り替え」として虫眼鏡マーク(Windowsキー) + SPACE と記載されていますが、幾度試しても切り替えできません。

しょうがないので、物理キーボードの中にある「仮想キーボードの表示」を ON にして仮想キーボードを表示させて、Gboard の右下のアイコンを押す事でで直接入力と日本語入力を切り替えています。

iOSBluetooth keyboard を接続したときには Ctrl + Space で切り替えられていたので便利だったのですがしょうがないです。

スリープに入る時間を延ばす

設定アプリ -> ディスプレイの中にあります。通常は10分に設定されていましたので、最大の30分に設定しました。

スクリーンセーバーを OFF にする

設定アプリ -> 詳細設定 -> スクリーンセーバーにあります。こちらも OFF にしました。

Android-x86 options

Enable native bridge を有効にします。

kernel の dmesg を確認したい

Alt + F1 で terminal が su で表示されるので

# dmesg | less

とすれば確認できます。

Alt + F7 で元の画面に戻ります。

画面サイズの変更方法

以前は kernel option に vga=ask を入れて…という方法だったらしく、ググってもそのような方法が殆どですが、実際やってみると反映されない事がありました。改めて各仮想マシン毎に調べてみました。

Android x86 の Debug mode は less と vi が使えて TAB 補完も効きますが、file を編集するのは少々手間がかかります。使える状態まで setting した 仮想マシンLinux があれば、そちらに HDD を接続して編集する方が便利です。

Virtualbox

BIOS で起動した場合は kernel option に vga=ask を追記して一覧を表示させて、32 bit color の解像度を選択すれば OK です。

f:id:hiro20180901:20220116173008p:plain

例えば 800x600x32 であれば、vga=ask の後の video mode には u、あるいは343 を入力します。再起動しても有効にする場合には、Android x86 を Debug mode で起動した後で grub の menu.lst を編集し、vga=nnn を追記します。nnn には上の表の Mode の16進数の数値を10進数に変更した値を入れます。例えば 800x600x32 の 0x343 であれば vga=835 です。

# mount -o remount,rw /mnt
# cd /mnt/grub
# vi menu.lst
# diff -u menu.lst.orig menu.lst
--- menu.lst.orig       2022-01-16 18:23:40.931469867 +0900
+++ menu.lst    2022-01-17 02:42:18.867573135 +0900
@@ -4,7 +4,7 @@
 root (hd0,0)

 title Android-x86 9.0-r2
-       kernel /android-9.0-r2/kernel quiet root=/dev/ram0 SRC=/android-9.0-r2
+       kernel /android-9.0-r2/kernel vga=835 quiet root=/dev/ram0 SRC=/android-9.0-r2
        initrd /android-9.0-r2/initrd.img

 title Android-x86 9.0-r2 (Debug mode)

UEFI で起動した場合の解像度設定は VBoxManage command で変更します。仮想マシンが停止状態で設定します。

Chapter 3. Configuring Virtual Machines

PowerShell : 800x600x32 に変更する場合

# 確認 -> 値が設定されていない
PS> & 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' `
getextradata vbAndroid9_UEFI `
VBoxInternal2/EfiGraphicsResolution
No value set!
# 値を設定
PS> & 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' `
setextradata vbAndroid9_UEFI `
VBoxInternal2/EfiGraphicsResolution 800x600
# 確認
PS> & 'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' `
getextradata vbAndroid9_UEFI `
VBoxInternal2/EfiGraphicsResolution
Value: 800x600

空白を設定すると No value に戻ります。

UEFI で起動すると初期の解像度が決まります。その後 Android x86 では efifb という frame buffer が有効になり、video=efifb:width:800,height:600と指定すれば表示領域が一時的に変わるのですが、GUI が立ち上がった後に再び全画面を使用するようになり画面表示が崩れます。従って上記の方法で UEFI 起動直後の解像度を変更する必要があります。

Hyper-V

BIOS で起動した場合には、kernel optionvideo=hyperv_fb:NNNxMMMを追加すれば反映されます(Virtualbox と基本的に同じやり方です)。800x600 にする場合を以下に示します。Android x86 の Debug mode で編集します。

# mount -o remount,rw /mnt
# cd /mnt/grub
# vi menu.lst
# diff -u menu.lst.orig menu.lst
--- menu.lst.orig       2022-01-16 19:42:28.685454563 +0900
+++ menu.lst    2022-01-16 19:42:54.692488994 +0900
@@ -4,7 +4,7 @@
 root (hd0,0)

 title Android-x86 9.0-r2
-       kernel /android-9.0-r2/kernel quiet root=/dev/ram0 SRC=/android-9.0-r2
+       kernel /android-9.0-r2/kernel video=hyperv_fb:800x600 quiet root=/dev/ram0 SRC=/android-9.0-r2
        initrd /android-9.0-r2/initrd.img

 title Android-x86 9.0-r2 (Debug mode)

UEFI で起動した場合には、Linux kernel 起動時 に frame buffer として使われている efifb から hyperv_fb に切り替わります。よって最初から video=efifb:off として hyperv_fb の設定を記載しておけば OK です。書き換えるのは ESP 領域にある efi/boot/android.cfg です。entry を追加している add_entry を探して quiet が設定されている行に追記します。800x600 に設定する場合を以下に示します。Android x86 の Debug mode で編集します。

# mount /dev/sda1 /hd
# cd /hd/efi/boot
# vi android.cfg
# diff -u android.cfg.orig android.cfg
--- android.cfg.orig    2022-01-15 20:44:08.000000000 +0900
+++ android.cfg 2022-01-16 20:03:40.000000000 +0900
@@ -83,7 +83,7 @@
 export android bootefi grub kdir live src

 # Create main menu
-add_entry "$live" quiet
+add_entry "$live" video=efifb:off video=hyperv_fb:800x600
 add_entry "$debug_mode" DEBUG=2
 if [ -s ($android)$kdir/install.img ]; then
        add_entry "Installation" INSTALL=1
# cd /
# umount /hd

Virtualbox の時と異なり、Hyper-V の場合は frame buffer を切り替えると実際の解像度も変わります。なので表示が崩れる事はありませんでした。BIOS でも UEFI でも hyperv_fb が使われている事からも、Hyper-V の速さの秘密は hyperv_fb にあるのかもしれませんね。

qemu + SPICE :

BIOS で起動した場合は、Virtualbox と同様に kernel option に vga=ask を追記して一覧を表示させて、32 bit color の解像度を選択すれば OK です。ただ、解像度の選択肢が Virtualbox よりも多く、スクロールしてしまうので全てを見る事ができません。とりあえず、32 bit color の選択肢は表示されているので何とかなると思います。

f:id:hiro20180901:20220118204122p:plain:w530

UEFI で起動した場合は、UEFI の設定から変更できます。

  • grub2 の起動選択画面から Advanced Option -> UEFI firmware settings を選択して UEFI 設定画面に入る
  • Device Manager を選択

f:id:hiro20180901:20220118204139p:plain:w506

  • OVMF Platform Configuration を選択

f:id:hiro20180901:20220118204149p:plain:w506

  • 使用したい解像度を選択

f:id:hiro20180901:20220118204158p:plain:w506
f:id:hiro20180901:20220118204207p:plain:w506

  • Commit Changes and Exit を選択

f:id:hiro20180901:20220118204216p:plain:w506

  • 最初の画面まで戻って Reset を選択

これで再起動した後には選択した解像度が反映されます。grub2 の画面では一時的に解像度が元に戻りますが、Android x86 が起動すると再び選択した解像度に戻ります。frame buffer の efifb に設定が継続して反映されるようです。

まとめ

Android x86 を各マシンで動作させた使用感をまとめます。ただし、調整不足の箇所があるかもしれない事は了承ください。

  • 仮想マシンで、BIOS でも UEFI でもどちらでも install できました。ただし、UEFI で install する場合には、disk の先頭に 128MB の ESP 領域を手動で確保する必要がありました。
  • 動作の軽さ : Hyper-V >> Virtualbox > qemu + SPICE です。Hyper-V が圧倒的に軽いです。特に拘りが無く試しに使ってみるなら Hyper-V で動作させた方が良いです。ただし音は出ません。とはいえ、Virtualboxqemu も音に関しては実用には程遠い状態と感じます。(単なる調整不足かもしれませんが)
  • Virtualboxqemu +SPICE も、Video Memory を増やさないと速度が極端に落ちます。特に qemu +SPICE の場合には、install にも苦労する程です。
  • 一旦起動してしまえば、Virtualbox もそこそこ軽く動作します。特に Windows10 のリモートデスクトップ接続をすれば、更に軽くなります。ただし Audio は更に悪くなります。
  • qemu + SPICE は、私にとっては実は本命だったのですが、whpx 有効では起動できなかった為、Windows Hypervisor Platform が使用できずに速度が極端に低下する結果となりました。qemu は Windows10 ではなく Linux ホストで kvm で使用するべきなのでしょうか。

今回は install から初期設定、いくつかアプリを入れて動作を試しただけですので、もう少し調整してみたいと考えています。どこまでできるか分かりませんが備忘録として記録しておきます。

  1. qemu の速度向上 : whpx が本当に使えないか確認したいです。virtio-vga が使えるでしょうか (SDL ではグラフィック画面に切り替わらず断念)。恐らく Android x86 は mesa を使っているので、OpenGL が使えるともう少し早くなりそうな気がします。
  2. Virtualbox 最適化 : headless でリモートデスクトップ接続ではそこそこ快適でしたので、後は音だけです。別の hardware を使うとどうなるか確認したいと考えています。
  3. Hyper-V で音は出ないか : Audio 設定はありませんが、vncリモートデスクトップで接続した場合に音が出るか確認したいです。Android vnc server を入れて Windows10 の vnc client で接続はできて、mouse の反応はあるのですが、画面が表示できませんでした。理由を調べて、本当に音が出るのか確認したいです。
  4. どのようなアプリまで使えるか。Amazon MusicAmazon Photos は使えましたが、Amazon Prime Video は起動できませんでした。何となく root 環境の為かと思いますが対処できるのでしょうか。
  5. スマホ画面のような縦長にする方法を探してみます。

始めは簡単な気持ちでスタートしましたが、だいぶ長文になってしまいました。今回の記事で時間を要したハマりポイントは

  • UEFI の ESP 領域を別に作成する必要があった事
  • qemu の重さ
  • qemu + SPICE の Video Memory 増量方法
  • 仮想マシンの解像度変更方法

です。それでも、各仮想マシンへの理解が深まったと感じています。

一先ずここまでで区切りをつけて、別の記事で各種調整や確認を実施します。