「Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module」と怒られた => 解決!

感想おまちしてます!

Windowsを初期化したらアプリを実行するとこんなエラーが出た。

スポンサーリンク

Enable VT-x in your BIOS security settings

Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module.

AndoroidStudioのAVDのkvmに関わるエラーでハマった件を参考にBIOSの設定を見てみたけど、CPUのセキュリティ設定が見つからない(My laptopはMouse製のWindows)。

困ったときのStack Overflow。Enable VT-x in your BIOS and KVM modules on Linux。同じようにWindowsで困っている人発見。WindowsだとKVMのインストールが謎なので、最後に記載されていたリンクを見る。

Installation Instructions for Intel® Hardware Accelerated Execution Manager (Intel® HAXM) – Microsoft Windows*

Android SDK Managerからインストールできるらしい。

Enable VT-x in your BIOS and KVM modules on Linux

SDK Managerを開いて、「Launch Standalone SDK Manager」をクリック。下の方にあるExtrasの「Intel x86 Emulator Accelerator (HAXM)」にチェックを入れてインストール。しかし、これだけだとダメで、インストーラーを叩かなければならない(You will still need to run the installer from the “extras” directory to get it installed.)。

C:\Users\${USER_NAME}\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Managerを開いてintelhaxm-android.exeを実行。僕の場合は、すでに入っていたので何もせず。削除して再インストールを試すと以下のメッセージが表示される。

2016-08-18_02h40_41

電子署名されたドライバーが必要です。電子署名されていないドライバーのインストールがブロックされました。このドライバーを使用するプログラムまたはデバイスをアンインストールし、電子署名されたバージョンのドライバーを発行元のWebサイトで確認してください。

インストーラーの問題ぽいのでもう意味が分からん。

次にコマンドを叩いて状態を確認。管理者権限でコマンドプロンプトを起動するショートカットを参考に、Windows キー + Xでコマンドプロンプトを実行。

C:\WINDOWS\system32>sc query intelhaxm

SERVICE_NAME: intelhaxm
TYPE : 1 KERNEL_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 577 (0x241)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

動いてない。実行してみる。

C:\WINDOWS\system32>sc start intelhaxm
[SC] StartService FAILED 577:

このファイルのデジタル署名を確認できませんでした。最近のハードウェアやソフトウェアの変更により、不正確に署名されたファイルか壊れたファイルがインストールされたか、または不明なところから悪意のあるソフトウェアがインストールされた可能性があります。

起動できないし! Managerをアンインストールして再度入れてもダメ。どうしようもなくて途方に暮れている。

Intel Hardware Accelerated Execution Manager (HAXM) のインストールVT-x を有効にしているにもかかわらず Intel Hardware Accelerated Execution Manager (HAXM) で “This computer does not support Intel Virtualization Technology (VT-x). HAXM cannot be installed.” エラーが発生しインストールできないを参考にしてもうまく行かず。とほほ。

追記1: HAXMが動かないのでCannot run Android Emulator in Android Studio 2.1.1を参考に

Your machine might not even support Virtualization. To fix this, you just have to run the emulator with the system image armeabi.

armeabiを利用してEmulatorを作成。今まで出来ていたのになぜ・・・。

追記2: Unable to install HAXM on Windows 10 Anniversary UpdateというIntelのフォーラムで同じように困っている人発見。Windows 10 Anniversary EditionにUpdateしたらWindowsがブロックしてしまうらしい。Windows Update待つしかないか

上のリンクにはhax64.msi使った解決策が書かれていたので実行。このファイルは隠しファイルになるので、エクスプローラの表示タブで「隠しファイル」にチェックを入れる。hax64.msihax.msiがあるけど、ダウンロードしてきたhaxm-windows_v6_0_3を解凍するとsilent_install.batがある。その中を見てみると

if %PROCESSOR_ARCHITECTURE%==AMD64 (
set msi_name=hax64.msi
) else (
set msi_name=hax.msi
)

とあるので、IntelのCPU使っている僕はhax64.msiっぽい。コマンドプロンプトでecho %PROCESSOR_ARCHITECTURE%してみればわかるはず。そして、書いてあるコマンドを実行してみる。

>cd C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48
>mkdir exec
>msiexec /a C:\Users\${USER_NAME}\AppData\Local\Temp\intel\HAXM\6.0.3\2016-08-18_13-56-48\hax64.msi /qb TARGETDIR=C:\Users\${USER_NAME}\AppData\Local\Temp\intel\HAXM\6.0.3\2016-08-18_13-56-48\exec

解凍した先(exec\Intel\HAXM)にできるintelhaxm.infを右クリックしてインストール。やっぱり「証明書おかしい」エラーが出る。

追記3: “/dev/kvm not found ”error on windows in android studioにも似たような手順と詳細分析があったけどうまくいかず。

C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM>HaxInst64.exe /i intelhaxm.inf 1
DIFXDRVINSTALL:
INFO: Install Option “/i”
INFO: Input file “C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM\intelhaxm.inf”
INFO: Flags 0x1 (1)

DIFXDRVINSTALL: installing driver package.
LOG: 1, ENTER: DriverPackageInstallW
LOG: 1, intelhaxm.inf: checking signature with catalog ‘C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM\IntelHaxm_x64.cat’ …
LOG: 1, Driver package ‘intelhaxm.inf’ is Authenticode signed.
LOG: 1, Copied ‘intelhaxm.inf’ to driver store…
LOG: 1, Copied ‘IntelHaxm_x64.cat’ to driver store…
LOG: 1, Commiting queue…
LOG: 1, Copied file: ‘C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM\IntelHaxm.sys’ -> ‘C:\WINDOWS\system32\DRVSTORE\intelhaxm_579C88F702D572C10DF6C9F1668B2077995F4354\IntelHaxm.sys’.
LOG: 1, Installing INF file “C:\WINDOWS\system32\DRVSTORE\intelhaxm_579C88F702D572C10DF6C9F1668B2077995F4354\intelhaxm.inf” of Type 1.
LOG: 1, Installing legacy driver ‘C:\WINDOWS\system32\DRVSTORE\intelhaxm_579C88F702D572C10DF6C9F1668B2077995F4354\intelhaxm.inf’
LOG: 3, Unable to start service ‘IntelHaxm’ because of error 0x241
LOG: 0, Installation completed with code 0x0.
LOG: 1, RETURN: DriverPackageInstallW (0x0)
SUCCESS: installed package C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM\intelhaxm.inf.
INFO: Machine will have to be rebooted to complete install.
C:\Users\${USER_NAME}\AppData\Local\Temp\Intel\HAXM\6.0.3\2016-08-18_13-56-48\exec2\Intel\HAXM>

Unable to start service 'IntelHaxm' because of error 0x241と、インストールは成功しているが、インストーラーがバグっていてサービスをスタートできない。これは上で出たエラー(sc start intelhaxm叩いたとき)と同じ気がする。

追記4: *** FIX *** HAXM 1.1.1 on Windows 7 64bitを見ていると、コメントに「署名なしドライバを強制したらうまくいった」とあった。Windows10で署名なしドライバ をインストールする方法を参考に「ドライバ署名の強制を無効化した状態」でWindows10を起動。

アンインストールしてから、HaxInst64.exe /i intelhaxm.inf 1を実行。そして、intelhaxm-android.exeをインストール。Android StudioのAVD Managerを開いて、既存のデバイスを削除して作りなおしたら・・・問題発生から12時間経過したけど・・・

うまくいった! でも、これは無理やりなやり方なので、正常に動くドライバが出たら再インストールすべきでしょう。

原因は多分、Windows 8で動いていたドライバが10になって動かなくなってしまったからだと思う。10になってセキュリティも厳しくなったそうだ。Windowsを初期化したときにドライバも消えてしまい、ドライバが10に対応していないため(もしくはバグのため)、こんなことになってしまった。

追記5: Windowsを再起動すると「ドライバ署名の強制を無効化した状態」が解除されて、また同じ問題が出てしまう。新しいちゃんとしたドライバをインテルが作るまでは、エミュレータを動かすときは毎回このモードで起動しなければならないっぽい。とほほ。