RHEL配置TurboVNC+VirtualGL 2022-06-11 服务器 暂无评论 3280 次阅读 Linux常使用VNC协议进行远程桌面连接,但是VNC无法充分利用服务器上的显卡资源,因为VNC的画面是由CPU模拟的显卡提供的,所以VNC的3D性能较弱,在使用blender等3D软件时画面卡顿。VirtualGL就是为解决这个问题而开发的,它将远程Linux主机的显卡渲染好的画面通过网络传输到客户端,可以充分利用远程主机的显卡资源。本文将介绍TurboVNC+VirtualGL这两个软件的配置过程。 #1.下载与安装 通过VirtualGL官网与TurboVNC官网跳转到SourceForge网站下载rpm包,直接下载对应的rpm包即可。 https://virtualgl.org/ https://www.turbovnc.org/ ![TurboVNC-1.png](https://blog.moper.net/usr/uploads/2022/06/2924841274.png) 安装之前需要先安装一个依赖包 ``` [root@coco ~]# dnf install mesa-libGLU-9.0.0-15.el8.x86_64 ``` 之后通过包管理器安装 ``` [root@coco ~]# rpm -ivh VirtualGL-2.6.5.x86_64.rpm turbovnc-2.2.6.x86_64.rpm warning: VirtualGL-2.6.5.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6e7fe9a1: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:turbovnc-2.2.6-20210221 ################################# [ 50%] 2:VirtualGL-2.6.5-20201117 ################################# [100%] ``` VirtualGL安装目录在/opt/VirtualGL/,TurboVNC的安装目录在/opt/TurboVNC/ #2.配置VirtualGL 在配置之前先检查Linux主机的桌面环境和显卡驱动程序是否安装正常。 执行如下命令: ``` [root@coco ~]# lspci | grep -i vga 00:0f.0 VGA compatible controller: VMware SVGA II Adapter ``` 在虚拟机环境下显示为VMware,实体机应显示为对应的显卡型号。 配置VirtualGL需要关闭桌面环境。 ##1). 关闭桌面环境 在终端输入 ``` [root@dell ~]# init 3 ``` 或者按下Ctrl+Alt+F3进入命令行模式,使用命令终止服务 ``` [root@dell ~]# systemctl stop gdm.service ``` ##2). 配置 ``` [root@coco ~]# /opt/VirtualGL/bin/vglserver_config 1) Configure server for use with VirtualGL 2) Unconfigure server for use with VirtualGL X) Exit Choose: 1 WARNING: Configuring this server for use with VirtualGL will disable the ability to log in locally with a Wayland session. Continue? [Y/n] Y Restrict 3D X server access to vglusers group (recommended)? [Y/n] Y Restrict framebuffer device access to vglusers group (recommended)? [Y/n] Y Disable XTEST extension (recommended)? [Y/n] Y ``` 本配置创建了一个新的用户组vglusers,在这个组里的成员才可使用VirtualGL,编辑/etc/group文件添加用户 ``` [root@coco ~]$ tail -1 /etc/group vglusers:x:1003:root,coco ``` ##3). 重启桌面环境 ``` [root@coco ~]$ init 5 ``` 此步骤也可重启实现 ##4). 完整性检查 依次输入以下三个命令 ``` [root@coco ~]$ xauth merge /etc/opt/VirtualGL/vgl_xauth_key [root@coco ~]$ xdpyinfo -display :0 [root@coco ~]$ /opt/VirtualGL/bin/glxinfo -display :0 -c ``` 其中第三步命令检查OpenGL渲染器,在这里看到是VMware ``` [root@coco ~]$ /opt/VirtualGL/bin/glxinfo -display :0 -c | grep OpenGL OpenGL vendor string: VMware, Inc. OpenGL renderer string: SVGA3D; build: RELEASE; LLVM; OpenGL core profile version string: 4.1 (Core Profile) Mesa 21.1.5 OpenGL core profile shading language version string: 4.10 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.1 (Compatibility Profile) Mesa 21.1.5 OpenGL shading language version string: 4.10 OpenGL context flags: (none) OpenGL profile mask: compatibility profile OpenGL extensions: OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.1.5 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 OpenGL ES profile extensions: ``` 检查图形性能,运行这个命令会出现一个收缩的球,通过帧数判断配置是否正确,如果只有20几帧或者 CPU使用率明显提高 或者 显示OpenGL Renderer: llvmpipe之类的信息则配置不正确。 ``` [root@coco ~]# /opt/VirtualGL/bin/vglrun -d :0 /opt/VirtualGL/bin/glxspheres64 Polygons in scene: 62464 (61 spheres * 1024 polys/spheres) GLX FB config ID of window: 0xc7 (8/8/8/0) Visual ID of window: 0x21 Context is Direct OpenGL Renderer: SVGA3D; build: RELEASE; LLVM; 154.391926 frames/sec - 172.301390 Mpixels/sec 173.700126 frames/sec - 193.849341 Mpixels/sec 181.486453 frames/sec - 202.538882 Mpixels/sec ``` #3. 配置TurboVNC TurboVNC的配置与一般的VNC软件相似,配置文件所在路径为/etc/turbovncserver.conf ,修改$useVGL的值为1,并取消注释 ``` $wm = startxfce4; $useVGL = 1; $autokill = 1; ``` 其他位置根据需要修改。与其他VNC软件一样,需要开放防火墙端口或者添加通行规则。 ``` [root@coco ~]# firewall-cmd --permanent --zone=public --add-service=vnc-server [root@coco ~]# firewall-cmd --reload ``` #4.启动TurboVNC 使用普通账户创建密码并启动一个桌面实例 ##1). 设置密码 ``` [coco@coco ~]$ mkdir .vnc [coco@coco ~]$ /opt/TurboVNC/bin/vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n ``` ##2) .启动实例 ``` [coco@coco ~]$ /opt/TurboVNC/bin/vncserver :1 ``` 启动后会在家目录的.vnc目录下创建一个xstartup.turbovnc的文件,修改此文件的内容后重新启动vnc实例 ``` #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS #export VGL_DISPLAY=:1 #export DISPLAY=:1 /opt/VirtualGL/bin/vglrun -d :0 /usr/bin/startxfce4 ``` 此时在VNC中运行3D程序即可正常显示。 ![TurboVNC-2.png](https://blog.moper.net/usr/uploads/2022/06/3506908712.png) 转载https://blog.csdn.net/weixin_44831881/article/details/119810165 标签: rhel 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。