我有一台远程 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
您可以尝试以下方法:
您可以禁用硬件加速,转到
/etc/X11/xorg.conf
并在下面添加这些行Device
选项“UseSHM”“假”
选项“UseDamage”“假”
然后重新启动。
使用所需的屏幕分辨率,为此,您首先需要运行
xrandr
以查看可用的分辨率,然后选择这样的分辨率xrandr --output <output-name> --mode <desired-resolution>
尝试以正确的显示启动 VNC 服务器,也许您使用的是错误的,请选择 :0 之一
x0vncserver -display :0 -localhost=0 -PasswordFile $HOME/.vnc/passwd
如果不起作用,您可以尝试另一个 VNC 客户端,例如专为 nVidia 设计的 TurboVNC