xubuntu16.04下安装turboVNC并设置开机自启(TurboVNC + VirtualGL)

关于TightVNC的安装和使用可参考:
在Ubuntu 16.04上安装和配置VNC
使用VNC过程中遇到的问题总结

  • 为什么使用TurboVNC?
    ——虽然TightVNC可以进行远程桌面登录,但如果运行有界面的软件或程序,无法显示界面且出现报错freeglut (Something): OpenGL GLX extension not supported by display ‘:1.0’,查了下好像是因为 TightVnc 不支持 GLX,需要使用TurboVNC + VirtualGL

1.安装TurboVNC和VirtualGL

TurboVNC下载地址https://www.turbovnc.org/
https://sourceforge.net/projects/turbovnc/files/

VirtualGL下载地址
https://sourceforge.net/projects/virtualgl/files/

下载TurboVNC + VirtualGL安装包:https://download.youkuaiyun.com/download/qq_45445740/87713640?spm=1001.2014.3001.5501
turbovnc-3.0.3-amd64.debvirtualgl-3.1-amd64.deb

  • 将TurboVNC + VirtualGL拷贝到目标设备上进行安装
sudo dpkg -i turbovnc-3.0.3-amd64.deb
sudo dpkg -i virtualgl-3.1-amd64.deb

安装完成可在 /opt/目录下查看

2.配置TurboVNC和VirtualGL

  • 配置 VirtualGL,终端输入 /opt/VirtualGL/bin/vglserver_config
[root@aubo]# /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文件添加用户,最后一行改成如下:
vglusers:x:1001:root,aubo
  • 重启桌面环境或者重启设备
  • 配置TurboVNC
    TurboVNC的配置与一般的VNC软件相似,配置文件所在路径为/etc/turbovncserver.conf ,修改$useVGL的值为1,并取消注释
 # $wm = "";
 useVGL = 1;
 # $autokill = 1;

关于turbovncserver.conf配置文件,这是TurboVNC服务器的配置文件,用于配置VNC服务器的各种参数和选项。其中包括桌面分辨率、颜色深度、字体路径、安全类型、VNC用户目录、使用VGL等。用户可以根据需要取消注释并编辑这些选项,以满足自己的需求。此外,还可以设置VNC密码、X.509证书、X启动脚本等。

##
## Configuration of the TurboVNC Server.
##
## This file uses Perl syntax, although only one-line assignments
## are allowed.  Assignments can be applied to the following variables:
##
##  $geometry    -- desktop geometry, WIDTHxHEIGHT or
##                  W0xH0+X0+Y0[,W1xH1+X1+Y1,...,WnxHn+Xn+Yn]
##  $depth       -- color depth in bits per pixel (between 8 and 32)
##  $desktopName -- X desktop name
##  $vncUserDir  -- path to TurboVNC user directory (session information,
##                  VNC passwords, and log files are stored here)
##  $fontPath    -- X font path
##  $securityTypes -- comma-separated list of security types to enable
##                    (passed to Xvnc in the -securitytypes argument)
##  $generateOTP -- 1 to generate an initial one-time password.  (OTP
##                  authentication must be enabled and permitted)
##  $wm          -- the window manager to use (for instance, "mate" or "2d".)
##                  This variable is ignored if $xstartup or $noxstartup is
##                  specified.
##  $useVGL      -- 1 to run the window manager using VirtualGL.  This variable
##                  is ignored if $xstartup or $noxstartup is specified.
##  $autokill    -- 1 to automatically kill the TurboVNC session when the
##                  X startup script finishes or 0 to leave it running
##  $noVNC       -- directory containing noVNC
##  $passwdFile  -- path to VNC password file to use with VNC Password
##                  authentication
##  $x509CertFile -- path to X.509 signed certificate file (in PEM format) to
##                   use with X.509 encryption
##  $x509KeyFile -- path to X.509 private key file (in PEM format) to use with
##                  X.509 encryption
##  $xstartup    -- path to alternative X startup script
##  $noxstartup  -- 1 to start the TurboVNC session with no X startup script
##  $serverArgs  -- additional arguments to pass to Xvnc (refer to the Xvnc man
##                  page for a list of accepted arguments)
##

## These settings are the default.  Uncomment and edit to change.
#
# $geometry = "1240x900";
# $depth = 24;
$desktopName = "TurboVNC ($ENV{USER})";
# $vncUserDir = "$ENV{HOME}/.vnc";
# $fontPath = "";
# $securityTypes = "TLSVnc, TLSOtp, TLSPlain, X509Vnc, X509Otp, X509Plain, VNC, OTP, UnixLogin, Plain";
# $generateOTP = 0;
# $wm = "";
$useVGL = 1;
# $autokill = 1;
# $noVNC = "";
# $xstartup = "${exedir}xstartup.turbovnc";
# $noxstartup = 0;
# $serverArgs = "";

## Here is an example of setting the font path:
#
# $fontPath = "/usr/lib/X11/fonts/misc/"
# $fontPath = "$fontPath,/usr/lib/X11/fonts/75dpi/";

## You might wish to create the TurboVNC user directories under /tmp, to
## ensure that VNC passwords are always kept on the local filesystem.  To do
## that, uncomment the line below.  Note that in this case, Xvnc will search
## for the .Xauthority file in this same directory by default.
#
# $vncUserDir = "/tmp/$ENV{USER}-vnc";

## These settings are the default.  Uncomment and edit to change.
#
# $passwdFile = "$vncUserDir/passwd";
# $x509CertFile = "$vncUserDir/x509_cert.pem";
# $x509KeyFile = "$vncUserDir/x509_private.pem";

3.启动TurboVNC实例

  • 启动TurboVNC实例,终端输入:
/opt/TurboVNC/bin/vncserver :1
  • 启动后会在/root/.vnc目录下创建一个xstartup.turbovnc的文件,修改此文件的内容如下:(先生成文件,再去修改内容)
#!/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
  • 杀掉TurboVNC,再次启动TurboVNC实例
/opt/TurboVNC/bin/vncserver -kill :1

/opt/TurboVNC/bin/vncserver :1

4.设置TurboVNC自启动

  • 创建TurboVNC的systemd服务文件,turbovnc.service
sudo nano /etc/systemd/system/turbovnc.service
  • 在文件中输入以下内容:
[Unit]
Description=TurboVNC Server
After=syslog.target network.target

[Service]
Type=forking
User=root
Group=root
ExecStart=/opt/TurboVNC/bin/vncserver :1 -depth 24
ExecStop=/usr/bin/vncserver -kill :1

[Install]
WantedBy=multi-user.target
  • 1重新加载systemd配置文件
sudo systemctl daemon-reload
    1. 启用TurboVNC服务
sudo systemctl enable turbovnc.service
  1. 测试TurboVNC服务
sudo systemctl start turbovnc.service
  • 然后使用VNC客户端连接到TurboVNC服务器的IP地址和端口号(默认为5901),输入VNC密码即可。
    1. 验证TurboVNC服务是否已经开机自启动
sudo systemctl status turbovnc.service

如果服务已经开机自启动,则输出的信息中应该包含“Loaded: loaded (/etc/systemd/system/turbovnc.service; enabled; vendor preset: enabled)”这一行。

turboVNC启动后,通过ps -aux | grep Xvnc查看服务是否已启动

参考:
https://www.xiexianbin.cn/linux/vnc/turbovnc/index.html
https://blog.youkuaiyun.com/weixin_44831881/article/details/119810165

TurboVNC是VNC(虚拟网络计算)的派生产品,其经过调整可为3D和视频工作负载提供最佳性能。 TurboVNC最初是TightVNC 1.3.x的分支,从表面上看,X服务器和Windows查看器的行为仍然与其父代相似。但是,当前版本的TurboVNC包含更新得多的X服务器代码库(基于X.org 7.7)以及TightVNC中不存在的各种其他功能和修补程序,包括高性能Java查看器。此外,TurboVNC压缩3D和视频工作负载的性能明显好于TightVNC 1.3.x中的“最紧密”压缩模式,而通常只使用后者的15-20%的CPU时间。使用非默认设置TurboVNC还可以匹配TightVNC 1.3.x对2D工作负载产生的最佳压缩率。此外,TurboVNC包含一些专门为可视化应用程序设计的独特功能。所有VNC实现(包括TurboVNC)都使用RFB(远程帧缓冲器) 从VNC服务器向所有连接的“查看器”发送“帧缓冲区更新”的协议。每个帧缓冲区更新可以包含多个“矩形”(自上次更新以来已更改的区域。)与TightVNC一样,TurboVNC分析每个矩形,将其拆分为多个“子矩形”,尝试使用“子编码类型”对每个子矩形进行编码给定子矩形中唯一颜色的数量,它将提供最有效的压缩。 TurboVNC执行此操作的过程称为“编码方法”。首先分析矩形以确定矩形的重要部分是否为实心,如果是,则将该部分编码为边界框和填充颜色(“实数子编码”。)在其余子矩形中,只有两种颜色的子矩形为编码为带有2色调色板的“每像素1位”位图(“单声道子编码”),具有少量唯一颜色的那些将被编码为调色板和8位每像素的位图(“颜色子编码”),和 根据编码方法,使用JPEG或RGB像素阵列对具有大量唯一颜色的子矩形进行编码(“原始子编码”)。 zlib可以可选地用于压缩索引颜色,单色和原始子矩形。 TurboVNC加速的一部分来自libjpeg-turbo的使用。但是,TurboVNC还消除了TightVNC 1.3.x用来确定子矩形是否是JPEG压缩的良好候选者的CPU占用率过高的检测例程,TurboVNC的编码方法倾向于更多地使用JPEG,因为现在通常使用JPEG。最快的子编码类型。此外,TurboVNC消除了缓冲区副本,它通过将帧缓冲区更新划分为相对较大的子矩形来最大化网络效率,且仅使用zlib压缩级别,可以证明具有可衡量的性能优势。 TurboVNC是广泛研究的产物,其中TightVNC编码器的许多不同排列都以 低级,针对各种捕获的RFB会话,这些会话模拟2D和3D的实际应用程序工作负载。 TigerVNC和libvncserver已采用TurboVNC的编码方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boss-dog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值