docker for windowsを導入しようと、Hyper-Vを有効化したところ起こった問題です。
現在Intel HD Graphics 4600を使用しているPCでHyper-Vを有効化させると、相性が悪いらしく存在しないディスプレイが検出される不具合が存在します。
これが起こる環境と一応の解決策です。
環境
- dynabook R73
- Windows 10 Enterprise
- Intel(R) HD Graphics 4600 バージョン:20.19.15.4549
- Hyper-V
バグ内容
これが実際に不具合が起こっている研究室メンバーPCの画像です。
画像ではディスプレイが五つも接続されているように見えますが、もちろんそんなに接続しているわけもなく、実際に存在しているのはノートPCの画面のみです。ディスプレイ2~5が不具合として現れる存在しないモニターですね。
自分の場合はこれに加え外部ディスプレイへの表示ができなくなるという問題が起こりましたが、研究室内ではディスプレイが増えるも外部への表示は問題なく行える場合もありました。画像とはディスプレイの増え方が異なっていたので、そのあたりに原因があるのではと思います。
参考サイトにあるインテルサポートコミュニティのスレッドに、もう一パターンのディスプレイの増え方があるのでそちらもどうぞ。
バグの起こる環境
特定のグラフィックドライバを利用している状況下でHyper-Vを有効化すると起こります。
研究室内で不具合が起こったことを確認したのはIntel HD Graphics 4600のみですが、インテルのスレッドによると他のインテル製ドライバでも同様の症状が起こるものはある様子でした。
解決策
-
アップデートを待つ
ひとまずIntel側もこの不具合自体は把握しているようなので、そう遠くないうちに修正されると思います。直接的な問題が起こっていないのであれば、特に気になりませんしね。研究室メンバーの一人は余計なディスプレイが認識されてはいるものの、特に不都合はないので放置中です。 -
Hyper-Vを無効化する
あくまでドライバとHyper-Vの問題なので、Hyper-Vを無効化してしまえば元通りになるそうです。ですが有効化したからには理由があるわけで、場合によってはあまり現実的ではありません。docker for windowsを使ってるから無効化できない!という人もスレッドにいました。というか自分がまさにその口です。 -
ドライバのバージョンを下げる
おそらくこれがあまり環境を変えずにバグを消せる方法でしょうか。
Intel(R) HD Graphics 4600の場合、バージョンを__20.19.15.4300__まで戻せば余計なディスプレイは消滅します。自分の場合は__20.19.15.4331__に戻しましたが、こちらでも正常にディスプレイが認識されました。もちろん、外部ディスプレイへの出力も元通りです。
参考サイト
False multiple monitors with intel drivers |Intel Communities
Windows 10 x64 with HD Graphics 4600 - multiple fake monitors when Hyper-V enabled |Intel Communities