8.1 硬件、系统与环境配置
许多问题可通过系统更新解决,相关下载资源请参考:下载资源汇总
认证配件及购买链接请参考RDK X3 认证配件清单
认证配件及购买链接请参考RDK X5 认证配件清单
Q1: 什么是 D-Robotics RDK 套件?
A: D-Robotics Developer Kits,简称D-Robotics RDK 套件,是 基于 D-Robotics 智能芯片打造的机器人开发者套件,目前主要包括RDK X3(旭日 X3 派)、RDK X3 Module(旭日 X3 模组)、RDK X5、RDK X5 Module(旭日 X5 模组)、RDK S100等系列。
Q2: 如何查看 RDK 板卡的系统版本号?
A: 登录到 RDK 板卡的系统后,您可以使用以下命令:
-
查看系统大版本号:
cat /etc/version例如,输出可能是
2.0.0或x3_ubuntu_v1.1.6。 -
查看已安装的地瓜核心功能包版本:
apt list --installed | grep hobot或者使用
rdkos_info命令(适用于较新的系统版本,如 2.1.0 及以后):rdkos_info示例输出 (RDK OS 2.x 版本,如 2.0.0):
root@ubuntu:~# apt list --installed | grep hobot
hobot-boot/unknown,now 2.0.0-20230530181103 arm64 [installed]
hobot-bpu-drivers/unknown,now 2.0.0-20230530181103 arm64 [installed]
# ... 其他 hobot-* 包
root@ubuntu:~# cat /etc/version
2.0.0示例输出 (RDK OS 1.x 版本,如 1.1.6):
root@ubuntu:~# apt list --installed | grep hobot
hobot-arm64-boot/unknown,now 1.1.6 arm64 [installed]
# ... 其他 hobot-arm64-* 包
root@ubuntu:~# cat /etc/version
x3_ubuntu_v1.1.6
Q3: 不同 RDK OS 系统版本和硬件平台之间有什么对应关系?
A:
- RDK OS 2.x 及更新版本系统 (如 2.0.0, 2.1.0, 3.0.x):
- 基于 D-Robotics Linux 开源代码包制作。
- 通常支持对应芯片的 RDK 系列硬件,例如 RDK X3 的 2.x/3.x 系统支持 RDK X3、RDK X3 Module。
- RDK OS 1.x 版本系统:
- 基于闭源 Linux 系统制作,属于历史版本。
- 主要支持早期的 RDK X3 硬件。
重要注意事项:
- 版本升级: 1.x 版本系统无法通过
apt命令直接升级到 2.x 或更新版本的系统。如需升级,必须通过烧录新版本系统镜像的方式重新安装操作系 统。 - TROS 兼容性: 不同大版本的 TROS(如基于 Foxy 的 TROS 和基于 Humble 的 TROS)通常与特定的 RDK OS 大版本绑定。例如,RDK OS 2.x 通常搭载基于 ROS2 Foxy 的 TROS,而 RDK OS 3.x 通常搭载基于 ROS2 Humble 的 TROS。
Q4: 摄像头插拔有什么注意事项?
A: 严禁在开发板未断电的情况下插拔摄像头,否则非常容易烧坏摄像头模组或主板接口。 请务必在断开开发板所有电源后,再进行摄像头的连接或移除操作。
Q5: RDK X3 的调试串口线如何正确连接?
A: RDK X3 的调试串口线一端(通常是白色 XH 连接器或对应排针)连接到 RDK X3 板上的 DEBUG 串口接口。由于接口通常有防呆设计(如凹槽或特定引脚顺序),正反面一般不易接错。另一端连接到 USB 转串口模块(如 CH340、CP210x 等),串口模块再通过 USB 连接到电脑。
连接示意图:
重点关注: 确保串口模块的 TX 连接到 RDK 的 RX,RX 连接到 RDK 的 TX,GND 连接到 GND。
Q6: F37 和 GC4663 MIPI 摄像头如何连接到 RDK X3? 连接后如何验证?
A: F37 和 GC4663 这类 MIPI 摄像头模组通常通过 24pin FPC(柔性扁平电缆)与开发板连接。
连接注意: FPC 排线的两端通常有蓝色加强筋,请确保蓝色加强筋的一面朝上(或朝向连接器卡扣的扳手面,具体取决于连接器类型)插入到开发板和摄像头模组的连接器中,并锁紧卡扣。
F37 摄像头连接示意图:

连接后验证:
-
确保摄像头已正确连接且开发板已上电。
-
运行 MIPI 摄像头示例程序 (以 RDK X3 为例):
cd /app/ai_inference/03_mipi_camera_sample # 路径可能因系统版本而异
sudo python3 mipi_camera.py如果一切正常, 您应该能通过 HDMI 输出或其他指定方式看到摄像头捕捉的画面以及可能的 AI 算法处理结果。 示例算法渲染结果 HDMI 输出(检测到
teddy bear、cup和vase):
-
通过
i2cdetect命令检查 I2C 通信: MIPI 摄像头通常通过 I2C 总线与主控芯片通信以进行配置。您可以使用i2cdetect命令来扫描连接到特定 I2C 总线上的设备。RDK X3 上 MIPI 摄像头常用的 I2C 总线可能是i2c-1或i2c-2(具体请查阅板卡硬件手册或设备树配置)。sudo i2cdetect -y -r 1 # 扫描 i2c-1 总线
# 或 sudo i2cdetect -y -r 2 # 扫描 i2c-2 总线预期输出示例:
- F37 (通常地址为 0x40):
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
...
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- (UU可能表示内核驱动已占用)
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- (0x40为F37地址)
... - GC4663 (通常地址为 0x29):
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
...
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- -- (0x29为GC4663地址)
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
...
如果
i2cdetect能够扫描到摄像头的 I2C 地址,说明摄像头至少在 I2C 通信层面被识别了。 - F37 (通常地址为 0x40):
Q7: 开发板启动异常、上电后无任何显示或反复重启,可能是什么原因?如何排查?
A: 这类问题通常与供电、启动介质(SD 卡/eMMC)或硬件连接有关。
-
供电不足或不稳定:
- 现象: 系统在 U-Boot 加载内核时或内核启动初期无明显错误日志就直接重启;绿灯状态异常(如 RDK X3 绿灯不闪烁或常亮);HDMI 完全黑屏。

- 排查与解决:
- 确保使用符合开发板要求的电源适配器(RDK X3 推荐至少 5V/2A,建议使用支持 QC/PD 的 5V/3A 或更高规格适配器)。
- 禁止使用 PC 的 USB 接口为开发板供电。
- 使用质量可靠的 USB Type-C 供电线。
- 参考官方推荐的基础配件清单中的电源适配器型号。
- 现象: 系统在 U-Boot 加载内核时或内核启动初期无明显错误日志就直接重启;绿灯状态异常(如 RDK X3 绿灯不闪烁或常亮);HDMI 完全黑屏。
-
启动介质问题 (Micro SD 卡/eMMC):
- 现象: 串口日志提示无法挂载文件系统、找不到分区、MMC/SD 卡初始化错误或超时。

- 排查与解决:
- 确认 SD 卡镜像是否已正确、完整地烧录。
- 尝试重新烧录系统镜像。
- 更换一张新的、质量可靠的高速 Micro SD 卡。
- 清洁 SD 卡槽和 SD 卡金手指。
- 现象: 串口日志提示无法挂载文件系统、找不到分区、MMC/SD 卡初始化错误或超时。
-
串口误触进入 U-Boot:
- 现象: 系统启动后停留在 U-Boot 命令行界面(如
hobot>)。 - 排查与解决: 可能是上电时调试串口有非预期输入。尝试拔掉串口线后重新给设备上电。如果在 U-Boot 命令行,可以尝试输入
boot命令并回车。
- 现象: 系统启动后停留在 U-Boot 命令行界面(如
-
其他硬件问题或外设冲突:
- 如果以上都已排除,移除所有非必要外设(USB 设备、扩展板等)再尝试启动。
- 极端情况下可能存在板卡本身硬件故障。
-
详细排查指南: 请参考官方论坛的板卡无法启动问题定位指南。连接调试串口并记录完整的启动日志对于问题定 位至关重要。
Q8: RDK X3 对供电有什么具体要求?
A: RDK X3 通过 USB Type-C 接口供电,并兼容 QC (Quick Charge) 和 PD (Power Delivery) 快充协议。
- 推荐: 使用支持 QC 或 PD 快充协议的电源适配器。
- 最低要求: 至少搭配 5V 直流 2A 的电源适配器。为保证稳定运行,尤其是在连接外设或运行高负载应用时,建议使用 5V/3A 或更高规格的适配器。
- 警告: 强烈不建议使用 PC 的 USB 接口为开发板供电,因为其输出电流往往不足,容易导致开发板工作异常(如无法启动、HDMI 无输出、绿灯状态异常、系统反复重启等)。
Q9: RDK X3 是否有推荐的 SD 卡品牌或规格?
A:
- 规格: 建议使用高速 C10 (Class 10) 或更高级别 (例如 UHS Speed Class 1 (U1) 或 UHS Speed Class 3 (U3), Application Performance Class A1 或 A2) 的 Micro SD 卡。容量建议 16GB 或以上。
- 兼容性: 一些较老、非品牌或低速的 SD 卡可能会存在烧录镜像后无法启动、系统运行缓慢或数据读写不稳定的问题。
- 推荐品牌 (仅供参考,请以实际测试和官方最新推荐为准): 金士顿 (Kingston)、闪迪 (SanDisk)、三星 (Samsung) 等知名品牌的高速 Micro SD 卡通常具有较好的兼容性和稳定性。
- 金士顿示例链接 (来自原始文档):
https://item.jd.com/25263496192.html - 闪迪示例链接 (来自原始文档):
https://item.jd.com/1875992.html#crumb-wrap(请注意,链接仅为原始文档提供,具体购买时请仔细甄别产品型号和渠道。)
- 金士顿示例链接 (来自原始文档):
Q10: apt update 命令执行失败或报错如何处理?
常见报错类型
- 密钥验证失败或过期
- 软件源域名无法解析
- 锁文件被占用
- 网络连接问题
问题排查与解决
1. 软件源域名变更或 GPG 密钥问题
典型报错 信息:
Clearsigned file isn't valid, got 'NOSPLIT'The repository '...' is no longer signed.Could not resolve 'archive.sunrisepi.tech'(或其他旧域名)The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ...
原因分析: 地瓜机器人官方软件源域名或 GPG 签名密钥发生变更,导致本地配置过期。
解决步骤:
-
检查当前源配置
cat /etc/apt/sources.list.d/sunrise.list正确的配置应类似:
deb [signed-by=/usr/share/keyrings/sunrise.gpg] http://archive.d-robotics.cc/ubuntu-rdk-s100 jammy main #RDK S100
# deb [signed-by=/usr/share/keyrings/sunrise.gpg] http://archive.d-robotics.cc/ubuntu-rdk-x5 jammy universe #RDK X5
# deb [signed-by=/usr/share/keyrings/sunrise.gpg] http://archive.d-robotics.cc/ubuntu-rdk jammy universe #RDK X3 -
更新域名配置
如果发现旧域名(如
archive.sunrisepi.tech或sunrise.horizon.cc等),需要更新:# 替换旧域名为新域名
sudo sed -i 's/archive.sunrisepi.tech/archive.d-robotics.cc/g' /etc/apt/sources.list.d/sunrise.list
sudo sed -i 's/旧域名/archive.d-robotics.cc/g' /etc/apt/sources.list.d/sunrise.list -
切换测试版到正式版 截至 25-7-14 ,RDK S100 的正式版源尚未发布。
如果使用测试版源(包含
-beta后缀),需要切换到正式版:sudo sed -i 's/ubuntu-rdk-s100-beta/ubuntu-rdk-s100/g' /etc/apt/sources.list.d/sunrise.list -
更新 GPG 密钥
sudo wget -O /usr/share/keyrings/sunrise.gpg http://archive.d-robotics.cc/keys/sunrise.gpg -
重新更新软件包列表
sudo apt update
2. APT 锁文件被占用
- 报错示例:
E: Could not get lock /var/lib/apt/lists/lock. It is held by process XXXX (apt-get)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/ - 原因: 系统可能正在后台自动运行更新检查或安装任务,或者上一次 apt 操作未正常结束导致锁文件未被释放。
- 解决方法:
- 等待: 有时后台进程会自动完成,请稍等片刻再试。
- 杀死占用进程: 如果长时间被占用,可以尝试杀死持有锁的进程(报错信息中通常会提示进程 ID,如示例中的
XXXX):sudo kill XXXX - 清理锁文件(⚠️ 谨慎操作): 在确认没有 apt 或 dpkg 进程正在运行后,可以尝试移除相关的锁文件。此操作有一定风险,可能破坏您的包管理系统,请务必谨慎。
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a # 尝试修复任何未完成的包配置 - 再次尝试
sudo apt update。
3. ROS2 GPG 密钥问题
典型报错信息:
W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InReleaase: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
原因分析: ROS2 官方软件源 GPG 签名密钥更新,导致本地配置过期。
解决步骤:
-
更新 GPG 密钥
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo tee /usr/share/keyrings/ros-archive-keyring.gpg > /dev/null -
重新更新软件包列表
sudo apt update
Q11: 如何查看 RDK X3 的 CPU、BPU 等硬件单元的运行状态?
A: 可以使用地瓜机器人提供的 hrut_somstatus 工具来查看实时的系统状态,包括 CPU 各个核心的占用率、BPU(AI 计算单元)的使用率、内存使用情况、芯片温度等。
在板卡终端执行:
sudo hrut_somstatus
该命令通常会以一定的时间间隔持续刷新显示状态信息。按 Ctrl+C 可以退出。
Q12: 如何为 RDK 应用设置开机自启动?
A: 主要有两种方式:
-
通过
/etc/rc.local文件 (传统方式): 编辑该文件 (如果不存在,可能需要手动创建或从模板配置并启用rc-local.service),在exit 0语句之前加入您要执行的命令。确保脚本具有可执行权限。#!/bin/bash -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Example: Start your application in the background
# /usr/bin/python3 /home/sunrise/my_app.py &
# Insert what you need before this line
exit 0 -
通过
systemd服务(现代、推荐方式): 创建一个.service配置文件(例如/etc/systemd/system/myapp.service),定义服务的启动命令、依赖关系、运行用户、重启策略等。 示例myapp.service文件:[Unit]
Description=My Application Service
After=network.target multi-user.target
[Service]
User=sunrise
ExecStart=/usr/bin/python3 /home/sunrise/my_app.py
Restart=on-failure
# StandardOutput=append:/var/log/myapp_stdout.log
# StandardError=append:/var/log/myapp_stderr.log
[Install]
WantedBy=multi-user.target然后使用以下命令启用并启动服务:
sudo systemctl daemon-reload # 如果新建或修改了service文件
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
# 查看服务状态: sudo systemctl status myapp.service
# 查看服务日志 (如果配置了): journalctl -u myapp.service
自启动注意事项:
- 确保脚本或程序的路径正确,并且具有执行权限。
- 处理好依赖项(如网络、特定硬件初始化完成)和环境变量。
- 如果应用需要图形界面,确保
DISPLAY环境变量已正确设置,并且 X Server 已运行。 - 建议将应用的输出重定向到日志文件,以便排查自启动失败的原因。