画面を拡張するための仮想 X11 モニターとしての VNC サーバーの問題

画面を拡張するための仮想 X11 モニターとしての VNC サーバーの問題

私は従おうとしたこれ ディスプレイ上に仮想画面を作成し、VNCクライアントを使用してリモートモニターに表示できるようにする

しかし、モードを追加しようとすると、xrandr --addmode VIRTUAL1xrandrはそのような出力がないと表示します

これが私の現在の出力ですxrandr -q

Screen 0: minimum 8 x 8, current 4224 x 1080, maximum 16384 x 16384                                               
VGA-0 connected 1024x768+0+312 (normal left inverted right x axis y axis) 304mm x 228mm                           
   1024x768      60.00*+  75.03    70.07                                                                          
   800x600       75.00    72.19    60.32    56.25                                                                 
   640x480       75.00    72.81    59.94                                                                          
   640x350       70.07                                                                                            
DVI-D-0 connected 1280x1024+2944+56 (normal left inverted right x axis y axis) 376mm x 301mm                      
   1280x1024     60.02*+                                                                                          
   1024x768      75.03    75.03    70.07    60.00                                                                 
   800x600       75.00    72.19    60.32    56.25  
   640x480       75.00    72.81    59.94  
HDMI-0 connected primary 1920x1080+1024+0 (normal left inverted right x axis y axis) 531mm x 298mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93 

少し調べてみたところ、仮想デスクトップの拡張画面に仮想出力を作成する方法が見つかりませんでした。

新しい「仮想画面」を追加して、それを VNC でリモート モニターにストリーミングするにはどうすればよいでしょうか?

新しいディスプレイを作成してvncで接続することはできましたが、このディスプレイを既に使用しているディスプレイに拡張することはできません。

答え1

Fedora 26 を使用しているときに、xrandr コマンドで VIRTUAL1 が表示されないという同じ問題が発生しました。

それから私はこの指示、HDMI-2 などの空の出力を再利用し、非常にうまく機能しましたが、次の点が問題でした。

  • Gnome (および xrandr) は、空の出力が接続されていると認識せず、拡張デスクトップまたはクローン内で位置を調整するための仮想モニターを表示しません。他の出力に新しい物理モニターが接続されるたびに、破損する可能性が高くなります。

  • さらに悪いことに、gnome-shell (およびその下の mutter) は新しい仮想モニターを複合フレームバッファーの表示可能領域の一部と見なさないため、適切に再描画されず、ウィンドウを移動するとティアリングが発生し、その背後に永久的なアニメーションの痕跡が残ります。ウィンドウを閉じた後でも、x11vnc を再起動した後でも、その痕跡はそのまま残ります。

それから私はガイドに従ってこのリンクダミー ドライバーで少し試行錯誤した後、これは必要なく、/etc/X11/xorg.conf.d ディレクトリの下のファイルに「intel」ドライバー情報を追加して、VIRTUAL1 および VIRTUAL2 出力を有効にし、gnome-shell にそれらを有効な出力として認識させるだけで十分であることがわかりました。(また、出力名がわずかに変更されていることにも気付きました。たとえば、「eDP-1」から「eDP1」などです)。さらに、コンポジット マネージャーが再描画を行わない場合にドライバーが再描画を行うように、オプション「TearLess」を true に設定しました。

~# vi /etc/X11/xorg.conf.d/01-dummy-monitor.conf
Section "Device"
        Identifier      "Configured Video Device"
    Driver "intel"         #CHANGE THIS
    Option "TearLess"   "1"
EndSection

Section "Monitor"
        Identifier      "Configured Monitor"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
EndSection

ドロップダウン ログイン リストで「Gnome on Xorg」オプションを選択して GDM セッションを再起動すると、推奨される xrandr コマンドを VIRTUAL1 出力で実行でき、x11vnc を簡単に接続できます。その後、VIRTUAL1 出力を Gnome 画面設定内で管理できます。解像度の変更、デスクトップ モニターのジオメトリの配置の変更、クローンまたは拡張の選択などです。x11vnc が実行中で、お気に入りの VNC ビューアが接続されている間は、すべてが機能します。

デバイスの画面解像度のモードを定義し、VIRTUAL1 出力に添付します。

## For Samsung Galaxy Tab 10.1
~$ cvt 1280 752
# 1280x752 59.83 Hz (CVT) hsync: 46.72 kHz; pclk: 77.75 MHz
Modeline "1280x752_60.00"   77.75  1280 1344 1472 1664  752 755 765 781 -hsync +vsync
~$ xrandr --newmode "1280x752_60.00"   77.75  1280 1344 1472 1664  752 755 765 781 -hsync +vsync
~$ xrandr --addmode VIRTUAL1 1280x752_60.00

## For monitor HD 1920x1080
~$ cvt 1920 1080
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
~$ xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
~$ xrandr --addmode VIRTUAL1 1920x1080_60.00

結果は xrandr と Gnome の画面設定に表示されます。

~$ xrandr
Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
   1920x1080     60.00*+
   1400x1050     59.98
   1600x900      60.00
   1280x1024     60.02
   1280x960      60.00
   1368x768      60.00
   1280x720      60.00
   1024x768      60.00
   1024x576      60.00
   960x540       60.00
   800x600       60.32    56.25
   864x486       60.00
   640x480       59.94
   720x405       60.00
   640x360       60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP2-1 disconnected (normal left inverted right x axis y axis)
DP2-2 disconnected (normal left inverted right x axis y axis)
DP2-3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 connected 1280x752+1920+330 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x752_60.00  59.83*
   1920x1080_60.00  59.96
VIRTUAL2 disconnected (normal left inverted right x axis y axis)

これで、x11vnc を仮想モニターに簡単に接続できます。

  • VNCパスワードを使用する場合:

    ~$ x11vnc -display :0 -clip xinerama1 -usepw -xrandr -forever -nonc -noxdamage -repeat

  • GDM/XDM認証を使用する場合:

    ~$ x11vnc -display :0 -clip xinerama1 -xauth /var/lib/gdb/:0.Xauth -xrandr -forever -nonc -noxdamage -repeat

VNC クライアントから接続して、新しいモニターをお楽しみください。

関連情報