hiroの長い冒険日記

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

Intel HAXM と android emulator と qemu

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-VWindows 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 した。

  • 2019年2月現在の最新版は haxm-windows_v7_4_1.zip
  • 展開した中にある intelhaxm-android.exe を実行した。
  • 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 が入っていたので、一旦削除して配布されている物を入れなおした。

PowerShell:

> .\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 っぽいなぁ。後で調べてみる。