TigerVNC 无法处理当前的 X11 会话

TigerVNC 无法处理当前的 X11 会话

我有一台远程 PC,配备 RTX600 GPU 和 Fedora 36 上的 nVidia 驱动程序,并连接了两个物理显示器。我正在尝试远程访问当前的 X11 会话,但出现奇怪的行为。

我正在使用 TigerVNC,特别是 x0vncserver 命令。如果我像这样启动服务器:

x0vncserver -display :1 -localhost=0 -PasswordFile $HOME/.vnc/passwd

这是立即输出:

Geometry:    Desktop geometry is set to 7680x2160+0+0
XDesktop:    Using evdev codemap
XDesktop:    
XDesktop:    XTest extension present - version 2.2
Main:        Listening for VNC connections on all interface(s), port 5900

我可以从另一台计算机成功连接到它,但是当我这样做时,连接到服务器 PC 的物理屏幕将闪回,然后在显示器 2 上显示当前 X11 会话的较低分辨率版本。此较低分辨率的桌面也会显示在客户端 PC 上的 VNC。这是 VNC 服务器输出:

Connections: accepted: 172.23.86.235::60395
 SConnection: Client needs protocol version 3.8
 SConnection: Client requests security type VeNCrypt(19)
 SVeNCrypt:   Client requests security type TLSVnc (258)

Thu Mar 30 17:54:11 2023
 XDesktop:    Enabling 8 buttons of X pointer device
 XDesktop:    Allocated shared memory image

Thu Mar 30 17:54:12 2023
 VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
 Geometry:    Desktop geometry is set to 7680x2160+0+0
 Geometry:    Desktop geometry is set to 7680x2160+0+0
 Geometry:    Desktop geometry is set to 1280x800+0+0
 ComparingUpdateTracker: 66.3552 Mpixels in / 1.44073 Mpixels out
 ComparingUpdateTracker: (1:46.0567 ratio)
 Geometry:    Desktop geometry is set to 1280x800+0+0

另外,如果我尝试设置 -geometry 参数,x0vncserver 在客户端连接时会崩溃:

x0vncserver -display :1 -geometry 1920x1080+0+0 -localhost=0 -PasswordFile $HOME/.vnc/passwd

Thu Mar 30 17:57:15 2023
 Geometry:    Desktop geometry is set to 1920x1080+0+0
 XDesktop:    Using evdev codemap
 XDesktop:    
 XDesktop:    XTest extension present - version 2.2
 Main:        Listening for VNC connections on all interface(s), port 5900

Thu Mar 30 17:57:27 2023
 Connections: accepted: 172.23.86.235::51010
 SConnection: Client needs protocol version 3.8
 SConnection: Client requests security type VeNCrypt(19)
 SVeNCrypt:   Client requests security type TLSVnc (258)

Thu Mar 30 17:57:33 2023
 XDesktop:    Enabling 8 buttons of X pointer device
 XDesktop:    Allocated shared memory image
 VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888

Thu Mar 30 17:57:34 2023
 Geometry:    Desktop geometry is set to 1920x1080+0+0
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  130 (MIT-SHM)
  Minor opcode of failed request:  4 (X_ShmGetImage)

我有什么遗漏的吗?如何正确设置 VNC 服务器以显示安装了 nVidia 驱动程序的当前 X11 会话?

答案1

您可以尝试以下方法:

  1. 您可以禁用硬件加速,转到/etc/X11/xorg.conf并在下面添加这些行Device

    选项“UseSHM”“假”

    选项“UseDamage”“假”

然后重新启动。

  1. 使用所需的屏幕分辨率,为此,您首先需要运行xrandr以查看可用的分辨率,然后选择这样的分辨率xrandr --output <output-name> --mode <desired-resolution>

  2. 尝试以正确的显示启动 VNC 服务器,也许您使用的是错误的,请选择 :0 之一x0vncserver -display :0 -localhost=0 -PasswordFile $HOME/.vnc/passwd

  3. 如果不起作用,您可以尝试另一个 VNC 客户端,例如专为 nVidia 设计的 TurboVNC

相关内容