2019年7月21日日曜日

Ryzen 5 2600XでAndroid Studio のx86エミュレータを使えないWindows May 2019 Update

WindowsのAndroid StudioではAndroidのエミュレータが使えるのですが、x86版のエミュレータにはIntelのVT-xかAMDのSVMをUEFI(BIOS)上で有効にする必要があります。
今回はAMD Ryzen 5 2600xなので初回セットアップでVT-xつかえないよといわれ、UEFI上でSVMを有効にしてみました。OSのバグかなにかで失敗したのですが、いろいろ調べた挙げ句のメモです。
AndroidエミュレータがAMD CPUとHyper-V に対応した、というニュースのAMD CPUとHyper-Vは別々の話なので混ぜるな注意です。Hyper-VはAMD CPUにたいおうしていないっぽいたぶん。

Android Studioでエミュレータを動かす条件 3種類
  • Intel VT-x
  • AMD SVM
  • Microsoft Hyper-V
どれかが必要、ということらしいので今回はAMD SVMを有効にする方法

今回の前提

AMD Ryzen CPU
Windows 10 Pro April 2018 Update 以降 (Homeでも可?)
Windows 10 バージョン 1903 (OS ビルド 18362.239) (失敗するバージョン)
Android Studio 3.4.2 (3.2 Beta以降)
Avastかなにかのソフト使ってないこと

状態の確認

Windowsのバージョンを確認します。
スタートメニューを右クリックで「システム(Y)」を開き、Windowsの仕様というところにバージョンとOSビルドがあります。
コマンドプロンプトでwinver と入力してもバージョンが確認できます。
バージョン1903 (OS ビルド 18362.239) と出てくればバグ持ちなのでエミュレータは動きません。(注 : 7月末のKB4505903のアップデートでOS ビルド 18362.267になり修正されました)
エミュレータが実行可能なのは現状では1803と1809です。
Windows Insider Programで18932を使用するとエミュレータが利用可能という情報もありますが、元には戻せません。

AMD RyzenでAndroid x86エミュレータの利用可能状況(1803以降対応)
○ バージョン 1803 April 2018 Update
○ バージョン 1809 October 2018 Update
× バージョン 1903 May 2019 Update (OSビルド 18362.239)
○ バージョン 1903 May 2019 Update + KB4505903 (OSビルド 18362.267)
○ ビルド 18932

コマンドプロンプトで systeminfo
最初にOSのバージョンなど、最後にHyper-Vの要件が4つ出てきます。

systeminfoのHyper-Vの項目で、ファームウェアで仮想化が有効になっています : いいえ
となっていれば、UEFIの設定を変更します。
4つとも有効になっていればWindowsでハイパーバイザーを有効にします。
ハイパーバイザーが検出されました。と出てくればWindowsの設定も済んでいるのでAndroid Studioの方へ

UEFIの設定

仮想化技術はふつう使わないのでUEFIの初期設定でも無効化されていることが多いようです。
今回はASUSのTUF X470-PLUS GAMINGというマザーボードです。
Windowsを再起動させ、起動する前にdelete(DEL)キーでUEFIに入ります。キーボードもマウスも使えます。メニューを日本語にすることもできます。
UEFIの詳細設定の方を開き、CPUのSVMという項目をなんとなく見つけてEnabled にします。他の項目は触らなくてもいいですがてきとーに設定して保存して再起動します。

Windowsの設定

Windows 10では設定のメニューがコンパクトになってしまったのですたーとメニューから[Windows システムツール]→ [コントロールパネル]と開きます。[コントロールパネル > すべてのコントロールパネル項目] と開いていればOK。
[プログラムと機能]を開き、左の[Windowsの機能の有効化と無効化]までたどりつきます。
関連する項目は2つ
 [Hyper-V]のチェックをはずします。もともとはずれているはずです。
 [Windows ハイパーバイザー プラットフォーム]をチェックします。
Windowsの再起動をします。
systeminfo でHyper-Vの要件にハイパーバイザーが検出されました。と表示されていればWindowsまでの準備は終了のはずです。

Android Studo

ToolsからSDK ManagerとAVD Manager を開き、環境を整えます。

SDK Manager


[SDK Tools]の Intel x86 Emulator Accelerator (HAXM installer) はAMD Ryzenには不要なので入れてしまったら削除します。
Android Emulator、Android SDK Platform-Tools、Android SDK Toolsなどが入っていれば大丈夫なのかもしれません。

AVD Manager

VT-xが有効ではありません、などのエラーメッセージがでたら、Windowsハイパーバイザーの設定までがうまくいっていないので、もう一度UEFI、Windowsの設定を見直してください。
ここまでで起動しない…。
Windows バージョン1903 (May 2019 Update)はバグ持ちのようなので、次のアップデートまで待つしかないようです。(7月末 Updateで修正済み)

Hyper-Vだとどうなる 

Android エミュレータはHyper-Vにも対応しています。試してみましょうか。Hyper-V側をチェックし、ハイパーバイザーをはずして再起動します。Android StuidoではVT-xか何かがないよというメッセージが表示されるだけで使えませんでした。

参考
 窓の杜 https://forest.watch.impress.co.jp/docs/news/1132197.html
 Android StudioとAMD製CPU https://blog.misatowater.com/entry/tech/amd-androidstudio

0 件のコメント:

コメントを投稿

ASUS TUF X470 PLUS GAMING + Ryzen 5 2600X にメモリ増設

Ryzen 5 2600Xも快適ながら、早速DDR4メモリ、M.2 NVMeを入手したので増設してみることにしてみたのだけどちょっとエラーも多かったという話。 KLeVV CRAS C700 M.2 PCIe 3.0x4 NVMe1.3 480GB KLeVV DDR4-3...