tigervnc配置方法

Posted on By 李继龙

前言

最近突然想折腾一下arm64系统,我就装了个Ubuntu server,为啥选他呢,因为他是有官方支持的arm64系统
因为已经有经验了所以装起来很快,十分钟就完事了,具体过程请参考官方教程
并且我还装了个桌面环境,让我想不到的是居然装了半小时,这还是已经换好中科大镜像源的速度呢,如果是官方源我估计得装一天
ok,系统算是折腾好了。但是问题也来了,这系统没内置vnc,因此我没法远程操作桌面,于是我就百度去了,随便找了个文章就开始干了,所以也别问我为啥要用 tigervnc 了,因为我也不知道

安装和运行

首先安装命令如下

$ sudo apt-get install tigervnc-standalone-server tigervnc-common

安装之后启动,启动之后他会让你输入初始密码,注意这里不必加 sudo 命令,直接运行即可

$ vncserver :1 -localhost no

这时你可以试试用 vnc viewer 连接看看,如果看不到画面,或者闪退(我就是),请用如下命令启动 vnc server

$ LD_PRELOAD=/lib/aarch64-linux-gnu/libgcc_s.so.1 vncserver :1 -localhost no

参考资料: https://github.com/TigerVNC/tigervnc/issues/800#issuecomment-565669421
顺便说下这个bug好像会在下个版本修复

对了,这里的 vnc viewer 最好用 tigervnc 官方的软件,下载地址: https://bintray.com/tigervnc/stable/tigervnc
之前的 realvnc vnc viewer 不是不能用,而是显示效果是真的不行。。

设置开机启动

将以下代码保存成一个名为 vncserver@.service 的文件
注意,第七行的用户名参数要填写你自己的用户名

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=ubuntu
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i
ExecStart=/bin/sh -c 'LD_PRELOAD=/lib/aarch64-linux-gnu/libgcc_s.so.1 /usr/bin/vncserver :%i -alwaysshared -fg -localhost no'
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

然后把该文件移动到 /etc/systemd/system/

$ sudo mv vncserver@.service /etc/systemd/system/vncserver@.service

最后再来个服务启动三连

$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@1.service
$ sudo systemctl start vncserver@1.service

ok,到此为止 tigervnc 就全部配置好了