Jetson Nano配置TigerVNC
Jetson Nano配置VNC 2021-5-14
参考了很多教程,但是效果都不是很好,有的是桌面灰屏,有的是没鼠标显示黑叉,本来觉得也不是不能用,但是在打开文件编辑器后发现确实不能用。今遇到论坛有国外兄弟发帖:网址,这位兄弟嫌其他vnc太慢了,而笔者没有显示器,虽然情境不同,但是好歹能用,特此记录,感谢那位兄弟。
一、软件安装
首先在安装之前需要保证所有东西都是最新的,然而我觉得并没有什么用,如果有问题再来修正吧。(下面的nano是作者使用的,这里笔者使用vim)
$ sudo apt-get update sudo apt-get upgrade
$ sudo apt-get install nano
开始安装tigervnc
$ sudo apt install tigervnc-standalone-server
显示安装完成即可
二、为VNC设置密码
需要注意的是这里的密码是vnc登录的密码,并非用户密码
这里只需要简单的一句:
$ vncpasswd
设置密码即可
三、配置文件
这里需要修改一些配置文件,个人理解是用于使vnc画面显示正常。
1. 修改xstartup文件
$ sudo vim ~/.vnc/xstartup
修改成如下:
!/bin/sh
export XDG_RUNTIME_DIR=/run/user/1000
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb /home//.Xresources
xsetroot -solid grey
gnome-session &
startlxde &
如果这一步,xstartup
文件并未创建过, 还需要执行下面一句命令来进行提权操作:
$ sudo chmod 755 ~/.vnc/xstartup
2. 创建.Xresources
检查一下 .Xresources
是否存在:
$ ls -al /home/.Xresources
如果不存在就创建一个
$touch /home/.Xresources
3. 创建service文件(文件名为vncserver@.service)
这一步的目的是让VNC能自启动,首先转到systemd
路径下:
$ cd /etc/systemd/system
创建并编辑vncserver@.service
文件, (没错, 确实带@这个符号):
$ sudo vim vncserver@.service
添加下面的文本到这个文件中,将user, group 以及家目录更改为你自己的情况, 这里原作者制作了一个2K分辨率的配置, 当然我们一般用不到这么大分辨率的, 可以将下面的改成1080P,也可自行设置屏幕大小。
[Unit]
Description=Start TigerVNC Server at startup
After=syslog.target network.target
[Service]
Type=forking
User=
Group=
WorkingDirectory=/home/<home_directory>
PIDFile=/home//.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920×1080 -nolisten tcp
# ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 2560×1400 -nolisten tcp
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
4. 修改conf文件
检查/etc/vnc.conf
, 确保 VNC可以被localhost
以外的用户访问.
$ sudo nano /etc/vnc.conf
在vnc.conf
文件中, 将下面的文本注释掉,或者自己另起一行 :
localhost = “no”;
配置使用 GDM3自动登录 ,如果没有安装,建议安装一下(原话) :
$ sudo nano /etc/gdm3/custom.conf
在custom.conf
文件中, 取消注释或者添加下面两行:
AutomaticLoginEnable=true
AutomaticLogin=
使用下面两句来使VNC在启动时运行, 一个启动 daemons
, 另一个创建了一个 链接到之前创建好的vncserver@.service
。
$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@1
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
在重启之前可以测试一下vnc的服务是否启动:
$ sudo systemctl start vncserver@1
$ sudo systemctl enable vncserver@1
相应的,我们也可以通过下面的命令关闭vnc服务和取消启动项
$ sudo systemctl stop vncserver@1
$ sudo systemctl disable vncserver@1
这里可以参考这个博客的解释:"systemctl mask"和"systemctl disable"有什么区别?
检查是否有错,这里我运行上面两个命令中的第一条报错,但是手动启动vncserver
可以成功运行,并且能够正常显示画面。
四、验证
重启nano或者使用上面的start命令启动vnc。可以通过这样的方式链接vnc: 192.168.0.101:1
下面是我连接后的截图,效果还行,但是帧率比较低,建议改低分辨率。