スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
タグ :

ESXi 6.0u1 GPUパススルーでVM再起動できない問題の解決

 2015-09-12
前回の続き。
ESXi 6.0u1 にて GPUパススルーをしてみたところ
VMの再起動ができない(VMが帰ってこない)という問題が発生。

で、それの解決法。
いろいろ英語圏の断片情報しかないので、シコシコやってみた。

【問題の概要】
・「VM再起動時に、適切にRADEONがイジェクトされてないから初期化できない」
・「よって、VM終了時にRADEONをイジェクトするスクリプトを書けばよい」
・今回は Windows10 を動かしてるので、そのやり方。
・別に Windowds7 でも Windows8 でも基本は同じと思う

#2015/10/27追記:もう少し調べてみたところ、AMD RADEONの比較的新しいコアでは
PCI Bus Reset では初期化できない仕様になったため
単純な再起動時に、PCI Bus Resetしても無駄無駄!、ということの様子。
該当コアは Hawaii / Bonaire / Tonga 、あと Fiji も治りきってない、、、ってRADEON全部やん!
というわけで、KVMではlinux kernel / QEMU 側でどうにかしようとしてるみたいですが
ESXi は本来Nvidia GRID / Quadroカード以外をすべて非対応としてるので、正式な対応は望めません。

GeForceはドライバで仮想PC検知して殺しに来るし(code 43エラーなんてな)、
GPUパススルーは冬の時代ですなぁ。

参考:VFIO tips and tricks : Progress on the AMD front



【対策方針】
・Windowsのシャットダウン時に、Windows側でRADEON GPUを切り離す
・Windowsの起動時に、Windows側でRADEON GPUを再登録
・デバイスマネージャーで「デバイス削除」するのと同じ
・これをスクリプトでやるため、 devcon.exe というコマンドを使う


【DEVCONを入手】
利用するWindowsのバージョン、さらにx86/x64によってdevcon.exeが異なるため
Windows10 WDKをインストールし、その中から抜き出す。
C:\Program Files (x86)\Windows Kits\10\Tools\x86\devcon.exe
C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe

【スクリプト(バッチファイル)を書く】
とりあえずデバイスマネージャーで調べてから、下記をON/OFFさせる。
 ・RADEON GPU
 ・RADEON HDMIオーディオ
ついでにVMWARE SVGAを逆に「起動時にOFF」「終了時にON」とかすると
マルチモニタが解消できるかもね!(終了時にONしないとおかしくなる)

下記はスクリプトの例。
devcon.exeの置き場所を\TOOLS\DEVCONと仮定。
[shutdown.bat]
cd \tools\devcon
rem RADEON HDMI audio Off
devcon disable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
rem RADEON GPU Off
devcon disable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
rem vmware SVGA On
devcon enable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
exit

[bootup.bat]
cd \tools\devcon
rem RADEON GPU On
devcon enable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
rem RADEON HDMI audio On
devcon enable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
rem vmware SVGA off
devcon disable "PCI\VEN_0123&DEV_0123&SUBSYS_01234567&REV_00"
exit




【グループポリシーエディタで、起動時・終了時のスクリプトを登録する】
Microsoftがしっかりした説明をしているので
大胆にも詳細は省略!
https://technet.microsoft.com/ja-jp/library/cc770556.aspx


これでvm再起動できるようになる。


しかし30分ぐらい放置していたら、RADEONが眠るらしいのだが
そこから復帰するのに1-2分かかってる(暫くRDPなどが呼べない)
まぁ・・・・・これは諦めるかな

#2015/10/27追記:この問題は仮想化関係ないっぽいので、
画面スリープ自体を無効にするほうがよい。
ちなみに起動しっぱなしだと不安定という問題もあるが
おそらくこれらの問題はWindows10においてRADEONのドライバが未成熟なためと思われるので
暫定として、使わないときは仮想PCをシャットダウンしておくことにした・・・・・
スポンサーサイト
タグ :
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:

http://silver0480.blog80.fc2.com/tb.php/411-8a0a9b0e

≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。