朋友们,大家好!我是来自淘宝网学习日记小店的 learndiary,专注于 Linux 服务领域。今天,我想和大家分享一些关于在 Linux 系统中如何实现远程使用 Nvidia 显卡加速桌面的经验,这对于需要远程使用图形加速功能的朋友有所帮助,比如游戏、3D建模等。
在开始之前,我想澄清一点,虽然我并不完全了解所有背后的原理,但我愿意根据自己的实践经验,向你们展示如何达成这一效果。在 Linux 中,传统的 VNC 服务器如 TightVNC、TigerVNC 等并不支持显卡加速,这意味着如果你无法在远程桌面上运行 3D 游戏或进行 3D 绘图。但是,通过下面的方法,我们可以克服这一限制。视频演示:【Linux 远程使用 Nvidia 显卡加速桌面】https://www.bilibili.com/video/BV1E6421Z7m1/
(首发地址:学习日记 https://www.learndiary.com/2024/06/nvidia-remote-desktop/)
朋友们,大家好!我是来自淘宝网学习日记小店的 learndiary,专注于 Linux 服务领域。今天,我想和大家分享一些关于在 Linux 系统中如何实现远程使用 Nvidia 显卡加速桌面的经验,这对于需要远程使用图形加速功能的朋友有所帮助,比如游戏、3D建模等。
在开始之前,我想澄清一点,虽然我并不完全了解所有背后的原理,但我愿意根据自己的实践经验,向你们展示如何达成这一效果。在 Linux 中,传统的 VNC 服务器如 TightVNC、TigerVNC 等并不支持显卡加速,这意味着如果你无法在远程桌面上运行 3D 游戏或进行 3D 绘图。但是,通过下面的方法,我们可以克服这一限制。视频演示:【Linux 远程使用 Nvidia 显卡加速桌面】
https://www.bilibili.com/video/BV1E6421Z7m1/
一、有效配置的显示管理器与桌面环境
首先,我需要指出,并非所有的显示管理器和桌面环境都适合这项任务。在我的测试中,LightDM 显示管理器表现良好,而一般发行版默认的 GDM 管理器则未能满足需求。至于桌面环境,我发现 Deepin 桌面环境(Deepin Linux 20.9 自带)和 XFCE4 这种轻量级桌面环境能够胜任。相比之下,Ubuntu 22.04 默认桌面 和 GNOME 桌面环境则未能达到预期的效果。
二、Nvidia显卡的三种情况
对于 Nvidia 显卡,我测试了三种常见的情景,均使用 RealVNC 远程桌面客户端连接。连接远程桌面后,我们可以通过在远程桌面环境终端执行 glxinfo -B 命令来验证是否启用了 Nvidia 显卡的硬件加速功能。如果命令输出显示了如 NVIDIA GeForce GT 710 等相关信息,即表示配置成功。
1、远程服务器带有物理显示器:例如,我这里测试过使用 GT 710 这块较旧的显卡。在 Deepin 20.9 或 Ubuntu 22.04 系统上,通过 X11 服务器的默认配置或 nvidia-xconfig 生成的 xorg.conf 文件和 x11vnc 命令,我们可以轻松实现远程桌面的显卡加速。这里使用的是 SSH 远程连接到 Linux 上,手动执行 x11vnc 命令启动远程桌面。
启动 x11vnc 示例命令如下(ssh 远程的普通用户执行):
2、无物理显示器的一类显卡:P106-100 矿卡或 GT 710。在这种情况下,我曾在一篇关于《P106-100矿卡在Linux系统下算力及游戏应用小结》中详细介绍过这一配置。这里给出关键的 /etc/X11/xorg.conf 和启动 x11vnc 命令二者的示例如下:
xorg.conf:
启动 x11vnc(root 用户执行):
3、无物理显示器的另一类显卡:例如,使用 RTX 4090 这样的显卡。在我为一位使用双 4090 显卡的客户配置远程图形加速桌面时发现,上面用于 GT 710 或 P106-100 的配置在 RTX 4090 上无法正常工作。可以正常工作的上述两个配置文件如下:
xorg.conf:
启动 x11vnc(root 用户执行):
三、小结
通过上述分享可以看出,当前 Linux 主流的显示管理器 GDM 和桌面环境 GNOME 对 x11vnc 远程物理桌面的支持似乎正在消失。在无显示器的 x11vnc 远程桌面设置中,不同的显卡需要的配置似乎不一样(我也不知道原因)。如果大家还有更好的其它远程图形加速桌面方案,或者我的经验分享中有任何不当或不准确之处,欢迎各位留言指正,共同探讨。感谢大家的观看,我们下次分享再见!
四、参考链接
1、P106-100矿卡在Linux系统下算力及游戏应用小结:https://www.learndiary.com/2023/06/p106-100-linux/
2、x11vnc without monitor connected:https://bbs.archlinux.org/viewtopic.php?id=197299