5. 远程桌面

本章主要讲解如何使用远程桌面连接LubanCat

5.1. VNC

VNC(Virtual Network Console)是虚拟网络控制台的缩写。 它是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发。

5.1.1. 配置鲁班猫VNC服务

VNC分为客户端和服务端,我们首先进行鲁班猫上服务端的配置。

5.1.1.1. 安装VNC服务

1
sudo apt install x11vnc

5.1.1.2. 创建连接密码

1
x11vnc -storepasswd

使用cat用户创建VNC连接密码,密码默认保存在/home/cat/.vnc/passwd文件中

5.1.1.3. 进行连接测试

1
2
export DISPLAY=:0
x11vnc -auth guess -once -loop -noxdamage -repeat -rfbauth /home/cat/.vnc/passwd -rfbport 5900 -shared

手动开启VNC服务,设置连接端口为5900,如果端口被占用可以使用其他端口。

开启VNC服务以后,我们使用MobeXterm的VNC连接功能进行测试

5.1.1.4. 设置VNC服务开机自启动

1
sudo vim /etc/systemd/system/x11vnc.service

新建文件,创建一个x11vnc.service的服务,在文件中输入以下内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Unit]
Description=x11vnc (Remote access)
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /home/cat/.vnc/passwd -rfbport 5900 -forever -loop -noxdamage -repeat -shared -capslock -nomodtweak
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=graphical.target

文件创建成功以后,使用以下命令重新读取系统服务配置,将x11vnc.service加入系统服务并开启

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

注意

如果设置了系统休眠,要将系统休眠关闭。否则在系统处于休眠状态时无法通过VNC唤醒。

5.1.2. 安装VNC客户端

在电脑端,我们可以安装VNC Viewer 作为客户端来进行VNC连接。

下载地址:https://www.realvnc.com/en/connect/download/viewer

5.2. NoMachine

NoMachine 是一款远程桌面软件,适用于Linux、windows、ARM、Android等几乎全系统。常见的远程桌面软件还有向日葵、ToDesk等。那么NoMachine与其他远程桌面工具有何区别呢?

最重要的因素就是速度。NX协议在高延迟低带宽的链路上提供了近乎本地速度的响应能力。所以,给人的感觉是好像你就在你的电脑跟前。其次是因为它支持鲁班猫的ARM64处理器。

注意

目前官网显示该软件最高只支持到Ubuntu20.04和Debian10,实测某些Ubuntu22.04系统也能成功安装。对于Ubuntu22.04系统能否安装,视实际情况而定。

5.2.1. NoMachine安装需求分析

进入 NoMachine官网下载页面 ,可以知道其下载页面分为了三大类,分别是PC端、移动端和嵌入式端。

5.2.1.1. PC端

未找到图片

PC端NoMachine支持Windows、Mac和Linux系统,请根据自己的系统选择合适的版本进行安装。

5.2.1.2. 移动端

未找到图片

移动端NoMachine分为了Android版和IOS版,请根据自己的手机/平板的操作系统下载安装。

5.2.1.3. 嵌入式端

未找到图片

嵌入式端通常用作服务端(被控端),通过安装NoMachine,在世界任何地方控制您的树莓派、鲁班猫、NVIDIA Jetson或其他Linux ARM设备。 您可以将您的口袋大小的板卡转换为强大的远程桌面客户端或服务器。

5.2.2. 鲁班猫安装NoMachine

鲁班猫安装NoMachine前,要先满足以下条件:

  1. 鲁班猫系统必须是有桌面版本,如xfce版本和xfce-full版本。

  2. 鲁班猫通过HDMI接口连接屏幕,并接上鼠标键盘,方便后续操作。

  3. 鲁班猫板卡必须连接上互联网。

下面将以搭载Ubuntu20.04的鲁班猫板卡为例,演示一下NoMachine安装流程。

5.2.2.1. 获取安装包

5.2.2.1.1. 终端下载

对于安装包的拉取,一般都可以在终端输入 wget + 安装包下载链接 实现,如:

1
wget https://download.nomachine.com/download/8.8/Arm/nomachine_8.8.1_1_arm64.deb

但是通过这种方式下载,你得提前知道安装包下载链接,很多博客也是通过这种方式来分享,虽然很直接,但存在链接失效的风险。

5.2.2.1.2. 浏览器下载

点开 NoMachine官网下载 链接,下拉找到嵌入式端的下载页面。

未找到图片

点击 NoMachine for ARM ,进入针对arm的NoMachine下载页面。

未找到图片

这里分了ARMv7和ARMv8两类,ARMv8指令集分为AArch64和AArch32指令集,而ARMv7使用的是A32和T16指令集(分别为32位和16位)。

想要确定自己的鲁班猫板卡适用ARM哪个架构版本,除了百度查看主控芯片支持什么ARM架构的方法之外,还可以通过以下命令查看:

1
sudo uname -a
未找到图片

可以看到鲁班猫板卡使用的是aarch64,所以应该下载ARMv8对应的安装包,因为演示的板卡系统是Ubuntu20.04,所以下载deb包和tar.gz包都可以。

5.2.2.2. 安装

1
2
3
4
5
6
7
8
# 1. cd到安装包下载目录
cd Downloads/

# 2. 下载的内容mv到/usr文件夹
sudo mv nomachine_8.8.1_1_arm64.deb /usr/

# 3. 进入/usr文件夹并安装
cd /usr/ && sudo dpkg -i nomachine_8.8.1_1_arm64.deb
未找到图片

安装过程没报错并且顺利执行完,说明已经安装成功了,接下来就是PC客户端配置。

5.2.3. PC端远程连接鲁班猫

注意

鲁班猫和PC电脑要处于同一局域网内

PC端常作为客户端,这里以Windows10为例。我们在官网上下载windows端,下载完成后打开软件。

NoMachine 启动后会自动扫描局域网内其他安装有NoMachine 的设备,因为刚刚已经在鲁班猫上安装了NoMachine 服务端,所以主界面的设备列表会识别出鲁班猫板卡。如果没有,可以尝试点击左上角 add 输入鲁班猫IP地址进行添加。

未找到图片

点击要连接的设备,输入鲁班猫板卡的用户名和密码,点击 OK 登录即可。

未找到图片

5.3. 常见问题

5.3.1. 鲁班猫无显示器进行NoMachine远程桌面连接,分辨率低

  • 解决方法一:买一个合适分辨率的HDMI诱骗器,插上去后,远程桌面的分辨率就和HDMI接口诱骗的分辨率一致了。

  • 解决方法二:接上适配的mipi屏幕,远程桌面的分辨率就和mipi屏幕一致了。

  • 解决方法三:连接NoMachine后,在终端输入 xrandr --fb 1920x1080 即可修改当前显示的分辨率。修改后可能会出现鼠标错位,在NoMachine客户端重新连接该设备即可。

注意

解决方法三虽然是解决分辨率的方法,但是每次启动鲁班猫板卡时都得这么做。因为该指令只有 NoMachine 连接上后才能使用,所以就算添加到开机启动脚本也起不到作用。

5.3.2. NoMachine连接时鼠标会有偏移/错位

产生这个问题的原因应该是刚在终端修改了屏幕分辨率,关掉 NoMachine 客户端,重新连接上设备就可以了。