Windows10 Hyper-V で色々試そうとすると、結局は whpx が使えるかどうかとなり、今の PC では出来ない、という結果になってしまった。Visual Studio 2017 の android emulator も whpx が有効ではないの表示で起動できなかった。
諦めてはいないが別の方法を試してみようと考えて、Hyper-V 仮想マシンを使用せずに qemu を使い、Intel HAXM (Hardware Accelerated Execution Manager) を使ってみた。
github.com
Microsoft Hyper-V の無効化
「Windows の機能の有効化または無効化」から、Hyper-V と Windows Hypervisor Platform のチェックを外して無効化した。また、Hyper-V 必須の Docker Desktop (旧 Docker for Windows) も削除した。Docker は別途 Linux 側で試す。
Intel HAXM 対応の android emulator
Microsoft のこちらの記事を参考に進めた。
docs.microsoft.com
HAXM の support 確認
cmd:
>sc query intelhaxm [SC] EnumQueryServicesStatus:OpenService FAILED 1060: 指定されたサービスはインストールされたサービスとして存在しません。
まだ install されていない状態。
Intel HAXM の install
github から Intel HAXM の installer を download、install した。
cmd:
>sc query intelhaxm SERVICE_NAME: intelhaxm TYPE : 1 KERNEL_DRIVER STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0
今度は RUNNING になった。
android emulator の起動
Visual Studio 2017 を管理者モードで起動して、ツール -> Android -> Android デバイスマネージャーを選択、既に入っていた Android_Accelerated_x86_Oreo を「開始」すると、android の端末画面が表示された。Hyper-V では全く起動できなかったが、拍子抜けする程簡単に起動できた。ただし、反応はそれほど速くなく、もたつく感じが強い。Intel HAXM 有効じゃない? network にはつながっている状態なので、このページも表示できた。
結果
Visual Studio 2017 を install し、使える状態にしておけば、Intel HAXM を入れれば他の作業なしで android emulator を動作させる事が出来た。
qemu (with haxm)
- compile し直した binary が入っていたので、一旦削除して配布されている物を入れなおした。
> .\qemu-system-x86_64.exe -accel accel=hax UG mode is not supported by the hardware. No accelerator found. C:\Program Files\qemu\qemu-system-x86_64.exe: failed to initialize HAX: Invalid argument
ありゃ、此方でも No accelerator found。やっぱり CPU っぽいなぁ。後で調べてみる。