使用 VNC 远程访问 PI-SG565D 单板电脑

前提:

  • 有线网络:插上网线,PI-SG565D 会自动获取 IPDHCP 协议)

Linux系统

Linux 系统已经内置了 tigervnc server 服务,可以直接使用。

1.设置 VNC 密码

在设备终端上输入以下命令:

# 按提示连续输入2次密码 mkdir ~/.vnc vncpasswd -f > ~/.vnc/passwd 

2.创建启动脚本

在设备终端上输入以下命令:

# 创建脚本 cat > start_xvnc.sh << 'EOF' #!/bin/bash echo "Cleaning up previous sessions..." pkill -9 -f xfce pkill -9 -f xfwm4 pkill -9 -f Xvnc sleep 2 echo "Starting VNC server..." Xvnc :1 -geometry 1280x720 -depth 24 -rfbport 5901 -rfbauth ~/.vnc/passwd & sleep 5 export DISPLAY=:1 echo "Starting window manager (without compositing)..." xfwm4 --display=:1 --compositor=off & WM_PID=$! sleep 3 if ps -p $WM_PID > /dev/null; then echo "Window manager started successfully (PID: $WM_PID)" else echo "Failed to start window manager" exit 1 fi echo "Starting XFCE4 session..." startxfce4 & sleep 5 echo "Desktop components status:" ps aux | grep -E "(xfce|xfwm|xfsettings|xfdesktop|xfce4-panel)" | grep -v grep EOF # 修改权限 chmod +x start_xvnc.sh 

3.管理命令

# 启动 VNC ./start_xvnc.sh # 停止 VNC pkill -9 -f xfce pkill -9 -f xfwm4 pkill -9 -f Xvnc # 查看状态 ps aux | grep vnc netstat -tln | grep 59 

4.测试连接

# 从其他电脑连接,按提示输入密码即可登录 # 例如 vncviewer 10.66.82.*:5901 vncviewer <设备 IP 地址>:5901 
  • 连接成功后,你将会看到以下画面

Debian系统

Debian 系统由于底层 Wayland 存在协议兼容性问题,目前只能采取 Xvfb + x11vnc 方案。

1.安装必要软件

使用调试串口或者 adb shell 进入终端窗口,输入以下命令

sudo apt update sudo apt install -y xvfb xfce4 x11vnc 
  • 遇到选项时,直接按回车键即可

2.设置 VNC 密码

在设备终端上输入以下命令:

# 按提示连续输入2次密码 mkdir -p ~/.vnc x11vnc -storepasswd 

3.创建启动脚本

在设备终端上输入以下命令:

# 创建脚本 cat > ~/vnc_start.sh << 'EOF' #!/bin/bash echo "=== Starting Reliable VNC Server ===" pkill Xvfb pkill x11vnc pkill startxfce4 sleep 2 echo "1. Starting virtual display..." Xvfb :99 -screen 0 1280x720x24 -ac & sleep 5 echo "2. Setting display environment..." export DISPLAY=:99 echo "3. Starting desktop environment..." startxfce4 & sleep 10 echo "4. Starting VNC server..." x11vnc -display :99 -forever -shared -rfbauth ~/.vnc/passwd -rfbport 5900 -bg sleep 3 echo "=== Verification ===" echo "VNC Process: $(ps aux | grep x11vnc | grep -v grep | wc -l)" echo "Port Status: $(ss -tlnp | grep 5900 | wc -l)" echo "" echo " VNC SERVER READY!" echo " Connect to: $(hostname -I | awk '{print $1}'):5900" echo " No password required" echo " Full desktop environment available" EOF # 修改权限 chmod +x ~/vnc_start.sh 
  • 设置登录密码,x11vnc -display :99 -forever -shared -rfbauth ~/.vnc/passwd -rfbport 5900 -bg
  • 不设置登录密码,x11vnc -display :99 -forever -shared -nopw -rfbport 5900 -bg

4.切换x11会话

# 编辑 GDM 配置强制使用 X11 sudo nano /etc/gdm3/daemon.conf # 在文件中取消注释(即去掉最前面的#),不使用 wayland 协议 WaylandEnable=false # 重启 GDM sudo systemctl restart gdm3 
  • GDM 配置强制使用 X11 后,设备连接的显示屏将不能显示

5.管理命令

# 启动 VNC ./vnc_start.sh # 停止 VNC pkill Xvfb pkill x11vnc # 查看状态 ps aux | grep -E "(Xvfb|x11vnc)" ss -tlnp | grep 5900 

6.测试连接

# 从其他电脑连接,按提示输入密码即可登录 # 例如 vncviewer 10.66.82.*:5900 vncviewer <设备 IP 地址>:5900 
  • 连接成功后,你将会看到以下画面

7.恢复显示

GDM 配置强制使用 X11 后,设备连接的显示屏将不能显示,若想恢复显示,需输入以下命令

# 编辑 GDM 配置 sudo nano /etc/gdm3/daemon.conf # 在文件中添加注释(即加上最前面的#),使用 wayland 协议 #WaylandEnable=false # 重启 GDM sudo systemctl restart gdm3 
  • 目前测试可能还存在 bug,恢复后鼠标图标有可能找不到