Page tree
Skip to end of metadata
Go to start of metadata

获取显卡的总线标识符

nvidia-xconfig --query-gpu-info

总线标识符,如下图所示:

生成xorg配置文件

sudo nvidia-xconfig -a --allow-empty-initial-configuration --virtual=1920x1080 --busid PCI:23:0:0

注意,上述命令的--busid要填写自己服务器显卡的PCI总线标识符!

下载VirtualGL和TurboVNC

mkdir -pv ~/Downloads/vnc
cd ~/Downloads/vnc
wget https://versaweb.dl.sourceforge.net/project/virtualgl/3.0/virtualgl_3.0_amd64.deb
wget https://versaweb.dl.sourceforge.net/project/libjpeg-turbo/2.1.3/libjpeg-turbo-official_2.1.3_amd64.deb
wget https://cfhcable.dl.sourceforge.net/project/turbovnc/2.2.7/turbovnc_2.2.7_amd64.deb

安装依赖包

sudo apt install libglu1-mesa mesa-utils libegl1-mesa

安装VirtualGL和TurboVNC

sudo dpkg -i libjpeg-turbo-official_2.1.3_amd64.deb
sudo dpkg -i virtualgl_3.0_amd64.deb
sudo dpkg -i turbovnc_2.2.7_amd64.deb

停止lightdm服务

sudo systemctl stop lightdm

设置VirtualGL

# 全部采用默认值
sudo vglserver_config

将用户账号加入vglusers群组

sudo usermod --groups vglusers bean
sudo usermod --groups vglusers root

注意,上述命令会为用户添加vglusers群组!

重启lightdm服务

sudo systemctl start lightdm

重启工作站

sudo reboot

合并xauth密钥

xauth merge /etc/opt/VirtualGL/vgl_xauth_key

检查VirtualGL环境

xdpyinfo -display :0
/opt/VirtualGL/bin/glxinfo -display :0 -c

如果出现NVIDIA显卡的型号信息,则表示已经可以使用服务器的显卡进行OpenGL加速了,如下图所示:

启动TurboVNC服务

/opt/TurboVNC/bin/vncserver -geometry 1920x1080 -depth 24

注意,上述命令中的-geometry用于指定分辨率,-depth用于指定色深。通过Remmina连接至服务器,效果如下图所示:

停止TurboVNC服务

/opt/TurboVNC/bin/vncserver -kill :1

执行需要OpenGL加速的应用程序

vglrun glxgears

单机多GPU的情况

# 使用第一張 GPU 卡執行 glxgears
vglrun -d :0.0 glxgears
# 使用第二張 GPU 卡執行 glxgears
vglrun -d :0.1 glxgears

3 Comments

  1. 本文操作可能会将用户踢出sudoer群组,可以参考下文重新设置:

    04 - 如何在Ubuntu中将用户添加到sudoers?

  2. 本文操作会导致docker的nvidia-docker2组件发生权限问题,可以参考下文解决:

    https://github.com/NVIDIA/nvidia-docker/issues/1547

    简单说来,就是编辑/etc/nvidia-container-runtime/config.toml文件,取消 user = "root:video" 的注释,然后改成 user = "root:vglusers",最后重启docker服务即可!

  3. Windows的VNC客户端连接Ubuntu时,Ubuntu服务器需要关闭加密,方法如下:

    gsettings set org.gnome.Vino require-encryption false
Write a comment...