板卡环境搭建
本次记录在 Rock 5B+ (RK3588) 上部署代码的过程,后续飞无人机时也将使用这块板卡。虽然之前有 5T 可用,但考虑到散热和重量分布,5B+ 依然是主力选择。
系统安装与基础配置
参考官方文档将系统镜像写入 MicroSD 卡并安装到 NVMe 中。推荐使用 Debian 12 内核版本(如 6.1),与 Ubuntu 22.04 体验相近。安装过程中注意 SPI Bootloader 的更新位置可能因版本而异,需灵活查找。
安装完成后,建议按官方指引配置中文输入法、SSH 和 VNC 远程访问。调试中发现系统约 15 分钟会自动休眠黑屏,SSH 连接也会提示即将挂起。解决方法是在系统设置 - 节能选项中关闭所有自动休眠选项,重启后生效。
Python 虚拟环境
为隔离依赖,建议在虚拟环境中运行 Python 代码。按照官方教程配置 RKNN 和 YOLOv11 环境。实测 YOLOv11n 模型在 RK3588 上可达 12 FPS,NPU 占用约 40%。
sudo cat /sys/kernel/debug/rknpu/load # NPU load: Core0: 41%, Core1: 0%, Core2: 0%
早期项目曾尝试调用 3 个 NPU 跑 YOLOv5 达到 120 FPS,但当前开箱即用的 12 FPS 已满足需求,过度优化带来的精力消耗需权衡。
系统优化与网络配置
开机自动登录与 VNC
若使用 GDM3 桌面,可通过修改 /etc/gdm3/daemon.conf 开启自动登录:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=[用户名]
随后重启 GDM 服务。VNC 服务也可配置为开机自启,通过 systemd 管理脚本即可。
有线网卡驱动
RK3588 的 2.5G 网卡走 PCIe 通道,有时会出现掉驱动情况。建议手动加载 r8169 或 r8125 驱动模块,并写入 /etc/modules-load.d/ 实现开机自动加载。
sudo tee /etc/modules-load.d/r8169.conf >/dev/null <<'EOF'
r8169
EOF
跨网络互通
无人机与地面站通常处于不同 NAT 网络,建议使用 ZeroTier 组建虚拟局域网。注册账号后,在板卡上执行以下命令加入网络:
curl -s https://install.zerotier.com | sudo bash
sudo systemctl enable zerotier-one
sudo systemctl start zerotier-one
sudo zerotier-cli join <NetworkID>
实测延迟在 10~20ms 左右,丢包率 0%,P2P 直连效果良好。若出现较大抖动,可能是 5G 信号波动导致。
SSH 与 VNC 协同
在 SSH 中运行 GUI 程序时,需指定 DISPLAY 变量指向 VNC 会话(通常为 :1):

