RealVNCで接続するとブラックスクリーンとなる

技術メモ

やりたいこと

VNCでリモート接続できるWindowsサーバを構築しましたが、RealVNCで接続すると接続エラーは発生しないものの、画面が真っ黒のまま表示されません。モニタを接続している場合は画面が表示されますが、HDMIケーブルを抜いてヘッドレス環境にすると画面がブラックスクリーンになります。

RealVNCは実際にモニタが接続されていることを前提としているようで、これが仕様だと言われています。この問題の解決法として、以下の3つがあります:

  1. モニタを接続したまま運用する
  2. HDMI EDIDエミュレーターをHDMIポートに接続し、モニタが接続されているように見せかける
  3. 仮想ディスプレイドライバを導入し、モニタが接続されているように見せかける

基本的に遠隔ログイン専用のサーバにしたいことと、HDMI EDIDエミュレーターをわざわざ購入したくないため、3番目の「仮想ディスプレイドライバの導入」で問題を解決することにしました。

環境

ソフトバージョン
Windows 1123H2
RealVNC Server7.12.1(r21)
RealVNC Viewer7.12.0(r14)
usbmmidd_v2v2

手順

RealVNCの設定については割愛します。

サーバー用PC(RealVNC Serverが起動しているPC)に仮想ディスプレイドライバを導入します。

Activating a Secondary Display on Windows 10 when no Monitor is Connected

上記サイトから、usbmmidd_v2.zipをダウンロードします。

ZIPファイルを解凍し、任意の場所に配置します。

私の場合は C:Toolusbmmidd_v2 に配置しました。

管理者権限でコマンドプロンプトを起動し、以下の2つのコマンドを実行します。

# C:Toolusbmmidd_v2 配下で以下の2つのコマンドを実行。

deviceinstaller64 install usbmmidd.inf usbmmidd
deviceinstaller64 enableidd 1

上記コマンドの実行が成功していると「ディスプレイ2」が増えています。

「表示画面を複製する」に設定し、解像度も「1920 x 1080」程度に変更しましょう。

これで、HDMIケーブルを抜いてヘッドレス状態のサーバPCにRealVNCで接続しても、画面が正しく表示されるようになりました。

以上で環境構築は完了です。


調べた事のメモ

RealVNC Serverの設定を変更する

上記サイト元に設定を変更してみます。

「Use DirectX tracking to capture screen」のチェックを外すことでブラックスクリーンは解消できましたが、解像度が低い、反応が遅い、等実用に耐えませんでした。

参考情報

タイトルとURLをコピーしました