获取显卡的总线标识符
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
Bean Young
本文操作可能会将用户踢出sudoer群组,可以参考下文重新设置:
04 - 如何在Ubuntu中将用户添加到sudoers?
Bean Young
本文操作会导致docker的nvidia-docker2组件发生权限问题,可以参考下文解决:
https://github.com/NVIDIA/nvidia-docker/issues/1547
简单说来,就是编辑/etc/nvidia-container-runtime/config.toml文件,取消 user = "root:video" 的注释,然后改成 user = "root:vglusers",最后重启docker服务即可!
Bean Young
Windows的VNC客户端连接Ubuntu时,Ubuntu服务器需要关闭加密,方法如下:
Add Comment