Blog

Xorgの仮想ディスプレイについて調べました

February 26, 2020

Linux デスクトップで、他のデバイスを VNC などを使って仮想的にワイアレスディスプレイとして使うために、 仮想ディスプレイを追加する方法を調べました。

余っているディスプレイ出力を使う

[SOLVED] Creating a Virtual Display/monitor - Arch Forum を見ると、余っている(ディスプレイを接続していない)ディスプレイ出力を使用して仮想ディスプレイを作成することができるようです。 ディスプレイを接続して表示している状態で切断した状態と同じだと思います。

ただ、前回これを使って VNC で接続した場合、リフレッシュレートがかなり下がってしまっていた記憶があるため、 他の方法を探してみました。

VIRTUAL1を作成する

Add VIRTUAL output to Xorg - Stack Exchange を見てみると、 intel ドライバを使って VirtualHeads を作成することができるようです。

sudo pacman -S xf86-video-intel
cat <<EOH | sudo tee /etc/X11/xorg.conf.d/20-intel-virtual-heads.conf
Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "2"
EndSection
EOH

Xorg を再起動すると、output として VIRTUAL1 が追加されています。

ただ、 Intel Graphics - Arch Wiki に書かれていますが、 xf86-video-intel は非推奨扱いになっていて、標準の modesetting ドライバが推奨されているようです。

とはいえ、 xorg/xserver Issue#179 に issue が上がっていますが、 modesetting ドライバに VirtualHeads 機能は追加されていないようです。

modesetting ドライバで仮想ディスプレイを作成する方法も調べてみましたが、うまく情報をみつけることができませんでした。 本当は Xmonad のワークスペースをマシン間で任意に対応させたいのですが……それはかなり難しそうですね。