8.1 硬件、系统与环境配置
许多问题可通过系统更新解决,相关下载资源请参考:下载资源汇总
- rdk_x3
- rdk_x5
- rdk_s100
Q1: 什么是D-Robotics RDK套件?
A: D-Robotics Developer Kits,简称D-Robotics RDK套件,是基于D-Robotics智能芯片打造的机器人开发者套件,目前主要包括RDK X3(旭日X3派)、RDK X3 Module(旭日X3模组)、RDK X5、RDK Ultra、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已 运行。 - 建议将应用的输出重定向到日志文件,以便排查自启动失败的原因。
Q13: 开发板的默认登录账户和密码是什么?
A: 开发板通常默认支持以下两种账户:
- 普通用户: 用户名
sunrise
,密码sunrise
- 超级用户 (root): 用户名
root
,密码root
(请注意,具体默认账户和密码可能因您烧录的系统镜像版本和来源略有不同,建议查阅该镜像的发行说明。)
Q14: 如何在RDK板卡上挂载NTFS文件系统的U盘或硬盘并支持读写?
A: Ubuntu系统默认对NTFS文件系统的写入支持可能不完整或仅为只读。为了获得完整的NTFS读写支持,需要安装 ntfs-3g
软件包:
- 安装
ntfs-3g
:sudo apt update
sudo apt -y install ntfs-3g - 挂载NTFS分区:
安装完成后,再使用
mount
命令挂载NTFS分区。通常,系统会自动使用ntfs-3g
驱动进行挂载,从而支持读写。- 首先,创建一个挂载点目录(如果尚未创建):
sudo mkdir /mnt/my_ntfs_disk
- 然后挂载设备(假设NTFS分区是
/dev/sda1
,请根据实际情况替换):sudo mount /dev/sda1 /mnt/my_ntfs_disk
# 或者显式指定类型 (通常不需要,系统会自动识别)
# sudo mount -t ntfs-3g /dev/sda1 /mnt/my_ntfs_disk
/mnt/my_ntfs_disk
目录下对NTFS分区进行读写操作了。 - 首先,创建一个挂载点目录(如果尚未创建):
Q15: RDK开发板是否支持本地安装VS Code?如何在PC上使用VS Code远程连接开发板?
A:
- 本地安装VS Code: RDK开发板作为嵌入式ARM架构设备,通常不直接支持在其上本地安装并运行完整版的VS Code桌面应用程序。VS Code官方主要提供x86_64架构的桌面版。
- 远程开发 (推荐方式):
强烈推荐在您的PC(Windows, macOS, 或Linux)上安装VS Code,并利用其强大的 Remote - SSH 扩展插件来远程连接到RDK开发板。通过这种方式,您可以在PC上享受完整的VS Code体验(包括代码编辑、智能提示、调试器前端等),而实际的代码编译、运行和调试则在RDK板卡上执行。
步骤概述:
- 在PC上的VS Code中安装 "Remote - SSH" 扩展。
- 确保您的PC和RDK板卡在同一局域网内,并且RDK板卡上的SSH服务已启动且网络可达。
- 在VS Code中配置SSH连接到RDK板卡(通常是
ssh 用户名@板卡IP地址
)。 - 连接成功后,您可以直接在VS Code中打开RDK板卡上的文件夹进行开发。
Q16: RDK开发板如何启用和使用ADB (Android Debug Bridge) 调试功能?
A: RDK的Ubuntu系统中通常默认已经编译并可能启动了 adbd
(ADB守护进程) 服务,但其默认配置和USB接口的功能模式可能需要调整才能用于ADB连接。
- 确认
adbd
服务: 检查服务是否运行,或是否有启动脚本。 - USB接口模式: RDK板卡的USB Type-C口或特定的Micro USB口(通常标有OTG或Device功能)可能需要被配置为USB Device模式(而不是Host模式)才能被PC识别为ADB设备。这有时可以通过
srpi-config
工具或修改设备树/内核参数来配置。 - PC端准备: 在您的电脑上安装ADB工具包(通常作为Android SDK Platform Tools的一部分提供)。
- 连接: 使用USB线将PC与RDK板卡上配置为Device模式的USB口连接。
- 验证: 在PC的命令行/终端中执行
adb devices
。如果一切配置正确,您应该能看到列出的RDK设备。 - 使用: 一旦连接成功,您就可以使用
adb shell
访问板卡终端,adb push <本地文件> <板卡路径>
上传文件,adb pull <板卡文件> <本地路径>
下载文件等。
注意: 具体的启用步骤可能因RDK型号和系统版本而异。请务必查阅对应板卡和系统版本的官方文档中关于ADB功能配置的详细说明。有时,官方提供的 bootloader
更新教程中也可能包含ADB的配置或使 用前提。
参考 (来自原始文档,可能主要关于bootloader更新,但可间接涉及ADB环境):bootloader镜像更新 (建议查找更专注于ADB配置的官方文档或社区帖子)。
Q17: 开发板和电脑之间的文件传输有哪些常用方式?
A: 有多种方式可以在RDK开发板和电脑之间传输文件:
-
SCP (Secure Copy Protocol) - 基于SSH:
- 从电脑拷贝文件到开发板:
# 拷贝单个文件
scp /path/to/local_file sunrise@<开发板IP地址>:/path/on/rdk/
# 拷贝整个文件夹 (使用 -r 选项)
scp -r /path/to/local_folder sunrise@<开发板IP地址>:/path/on/rdk/ - 从开发板拷贝文件到电脑:
scp sunrise@<开发板IP地址>:/path/on/rdk/remote_file /path/to/local_destination/
scp -r sunrise@<开发板IP地址>:/path/on/rdk/remote_folder /path/to/local_destination/
需要电脑端有SCP客户端(Linux/macOS自带,Windows可用WinSCP、MobaXterm或Git Bash中的scp)。
- 从电脑拷贝文件到开发板:
-
SFTP (SSH File Transfer Protocol) - 基于SSH: 许多FTP客户端软件(如FileZilla, WinSCP)支持SFTP协议,可以提供图形化的文件传输界面。连接时选择SFTP协议,并使用SSH的用户名、密码和IP地址。
-
USB存储设备 (U盘/移动硬盘):
- 将U盘等格式化为开发板支持的文件系统(如FAT32, exFAT, 或安装了
ntfs-3g
后的NTFS)。 - 在电脑上存入文件,然后将U盘插入开发板的USB Host口。
- 在开发板上挂载U盘 (
sudo mount /dev/sda1 /mnt/usb_disk
- 设备节点可能变化),然后进行文件操作。
- 将U盘等格式化为开发板支持的文件系统(如FAT32, exFAT, 或安装了
-
ADB (Android Debug Bridge) - 如果已配置并连接:
- 从电脑推送文件到开发板:
adb push C:\local\path\file.txt /remote/path/on/rdk/
- 从开发板拉取文件到电脑:
adb pull /remote/path/on/rdk/file.txt C:\local\path\
- 从电脑推送文件到开发板:
-
网络共享服务 (如Samba, NFS): 可以在开发板上配置Samba或NFS服务,将特定目录共享到局域网,然后在电脑上像访问网络驱动器一样访问这些文件。配置相对复杂一些。
-
Python HTTP服务器 (临时小文件共享): 如果在开发板的某个目录下有想让电脑下载的文件,可以在该目录下快速启动一个HTTP服务器:
# 在开发板上,进入要共享的目录
cd /path/to/share
python3 -m http.server 8000然后在电脑的浏览器中访问
http://<开发板IP地址>:8000
即可看到文件列表并下载。
选择哪种方式取决于文件大小、传输频率、网络环境以及个人偏好。对于开发过程中的代码和配置文件同步,SCP/SFTP或VS Code的Remote-SSH内置的文件同步功能通常最为便捷。
Q18: RDK X3不同系统版本的有线网口的IP是什么?
A:
- RDK X3 2.0.0 (包括2.0.0) 以下版本的RDK OS系统镜像,有线网口默认IP:
192.168.1.10/24
- RDK X3 2.1.0 (包括2.1.0) 以上版本的RDK OS系统镜像,有线网口默认IP:
192.168.127.10/24
Q19: RDK X5 不同系统版本的网口的IP是什么?
A: (以RDK OS 3.0.0版本为例)
- RDK X5 3.0.0 版本的RDK OS系统镜像,有线网口默认IP:
192.168.127.10/24
- RDK X5 3.0.0 版本的RDK OS系统镜像,闪连口(USB Device口),为虚拟USB网卡,默认IP:
192.168.128.10/24
Q20: 系统执行 apt upgrade
时桌面环境黑屏怎么办?
A: 建议通过串口终端或SSH远程登录后,在纯字符界面的终端中执行系统更新命令(如 sudo apt update && sudo apt upgrade
)。直接在图形桌面的终端中更新,有时在升级桌面自身相关的包时可能会导致显示中断或X Server重启,从而造成黑屏现象。
Q21: 我将X3板卡的HDMI输出接口和电脑的HDMI输入/输出接口相连,为什么电脑没有出现画面?
A: RDK X3板卡的HDMI接口是输出接口,用于将板卡的图形界面或视频信号输出到显示设备(如HDMI显示器、电视机)。 电脑上的HDMI接口通常也都是输出接口(用于连接外接显示器)或者在特定情况下(如带有视频采集卡的台式机、部分一体机或笔记本)可能有HDMI输入接口。
- 如果将RDK X3的HDMI输出连接到电脑的HDMI输出接口,两者都是输出设备,自然无法显示。
- 如果您的电脑确实有HDMI输入接口(例如,显示器模式或采集卡输入),请确保电脑已切换到正确的HDMI输入源,并且该输入接口支持RDK X3输出的分辨率和信号格式。 对于希望在电脑上看到RDK X3画面的场景,更常见和推荐的做法是:
- VNC远程桌面: 如果RDK X3烧录的是Desktop版本的系统并开启了VNC服务,您可以通过网络在电脑上使用VNC客户端远程访问其桌面。
- 视频推流: 将RDK X3的摄像头画面或处理结果通过网络推流(如RTSP、WebRTC),然后在电脑上使用播放器或浏览器接收观看。
Q22: 为什么SD卡插上去能启动,但是拔下来后下次就启动不了了?
A: 这取决于您的RDK板卡型号和启动方式:
- 对于RDK X3(标准版,通常从SD卡启动)和设置为SD卡启动模式的RDK X3 Module: 在这种情况下,Micro SD卡是作为操作系统和用户数据的唯一存储介质。系统运行时所有文件都存储在SD卡上。因此,SD卡必须始终插入板卡才能正常启动和运行。如果拔下SD卡,系统自然无法找到引导文件和操作系统,下次将无法启动。
- 对于配置为从eMMC启动模式的RDK X3 Module: 这种板卡板载了eMMC存储芯片,操作系统可以烧录并运行在eMMC中。在这种模式下,启动时不需要插入SD卡(除非您希望从SD卡临时引导)。如果eMMC中的系统完好,板卡应该能从eMMC正常启动。此时插入的SD卡可以用作额外的外部存储设备,例如挂载到某个目录下存放数据。如果 您拔下了作为外部存储的SD卡,并不会影响从eMMC启动的系统。
请确认您的板卡型号和当前的启动介质设置。
Q23: RDK OS的Server版能直接升级为Desktop版吗?
A: RDK OS的Server版和Desktop版在预装的软件包上存在显著差异,最主要的是Desktop版包含了图形用户界面(如XFCE桌面环境)及其相关组件,而Server版通常不包含这些,以节省资源。
- 理论上: 您可以通过在Server版系统上手动安装所有Desktop版所需的软件包(如
xserver-xorg
,xfce4
,lightdm
等以及它们的依赖)来将其“升级”为一个具有图形界面的系统。 - 官方支持与稳定性: 官方通常不提供或不推荐这种手动升级路径,并且不对通过此方式构建的Desktop系统的稳定性和完整性进行保证或测试。手动安装过程复杂,容易遗漏依赖或产生配置冲突。
- 推荐做法: 如果您需要Desktop版的完整功能和最佳体验,强烈建议直接下载并烧录官方发布的Desktop版本系统镜像。这是确保系统稳定性和功能完整的最佳途径。
Q24: 为什么连接HDMI显示器后没有画面显示,或者显示异常?
A: HDMI显示问题可能由多种原因造成:
- 显示器兼容性:
- 部分显示器可能与RDK板卡输出的特定分辨率或刷新率不完全兼容。
- RDK OS 2.1.0及以上版本引入了更多的HDMI分辨率支持,但也可能导致与某些旧显示器的兼容性问题。
- 通常情况下,标准的1080p (1920x1080) 分辨率的显示器在板卡启动时直接连接,兼容性会比较好。
- 线缆问题: 确保使用的HDMI线缆质量良好且连接牢固。尝试更换一条HDMI线。
- RDK系统配置:
- 对于Desktop版本的系统,确保图形界面服务(如LightDM)正常启动。
- 对于Server版本的系统,默认情况下HDMI可能只输出启动LOGO或控制台信息,不会有图形桌面。
- 在RDK OS 2.1.0及以上版本,如果遇到显示不兼容,可以尝试先通过VNC连接到板卡(如果已开启),然后在系统中手动调整HDMI的输出分辨率。参考:HDMI显示问题及分辨率调整
- 供电问题: 虽然不直接,但严重的供电不足可能导致系统无法正常初始化显示子系统。
- 硬件问题: 极少数情况下,可能是板卡的HDMI接口或显示器本身的硬件故障。
Q25: 连接的HDMI显示器不被支持,如何抓取EDID信息以供技术支持分析?
A: 如果您的HDMI显示器无法正常显示或显示异常,技术支持人员可能需要您提供该显示器的EDID (Extended Display Identification Data) 信息来帮助诊断问题或添加兼容性支持。EDID包含了显示器的特性、支持的分辨率和时序等信息。 获取EDID信息的方法通常有:
- 通过Linux命令行工具(如果板卡能部分启动或通过其他方式访问):
- 可以使用如
read-edid
包中的get-edid
和parse-edid
工具。首先需要安装这些工具:sudo apt install read-edid
。 - 然后尝试读取连接的显示器的EDID。
- 可以使用如
- 使用专门的EDID读取硬件/软件: 有些显示器测试工具或专用的EDID编程器可以直接读取和保存EDID信息。
- 在PC上读取: 如果该显示器连接到一台装有Linux或Windows的PC上可以正常工作,也可以尝试在PC上读取其EDID信息。
- Linux下可以使用
xrandr --props
查看连接显示器的属性,其中可能包含EDID信息,或使用get-edid | parse-edid
。 - Windows下可以使用如MonitorInfoView (NirSoft) 或 Phoenix EDID Designer 等工具。
- Linux下可以使用
获取到EDID数据(通常是一个二进制文件或十六进制文本)后,可以将其提供给技术支持。 具体在地瓜机器人RDK平台抓取EDID的方法,请参考官方论坛的指导帖子:如何提供不支持显示器的EDID信息
Q26: SD卡有时不识别或识别不稳定怎么办?
A: SD卡不识别或识别不稳定的问题,可以从以下几个方面排查:
- SD卡本身质量:
- 使用劣质、老化或损坏的SD卡是常见原因。请尝试更换一张新的、质量可靠的品牌高速Micro SD卡(如Class 10, U1/U3级别)。
- SD卡与卡槽接触:
- 确保SD卡已完全插入卡槽且接触良好。可以尝试取出SD卡,用橡皮擦清洁金手指,并检查卡槽内是否有异物。
- SD卡兼容性:
- 虽然RDK X3对SD卡的兼容性在新版系统中已较好,但极少数SD卡仍可能存在兼容性问题。
- 对于旭日X3派,如果遇到SD卡兼容性问题,官方建议可以尝试手动烧录最新的miniboot镜像来改善。此方法也适用于RDK X3。 参考教程:SD卡兼容性问题及miniboot更新
- 系统镜像或烧录问题:
- 确保系统镜像文件本身没有损坏,并且烧录过程正确无误。可以尝试重新下载镜像并使用推荐的烧录工具(如balenaEtcher, Rufus)重新烧录。
- 供电问题:
- 不稳定的供电有时也可能间接影响SD卡的识别和读写稳定性。
- 板卡硬件问题:
- 极少数情况下,可能是板卡的SD卡控制器或卡槽硬件故障。
如果在串口日志 中看到类似 "mmc0: error -110 whilst initialising SD card" 或 "Card did not respond to voltage select" 等信息,通常指向SD卡识别或初始化失败。
Q27: 系统启动的时候卡在 hobot>
U-Boot命令行界面怎么办?
A: 当系统启动时停留在 hobot>
提示符,这表示板卡已进入U-Boot (Universal Boot Loader) 的命令行模式,而没有继续引导加载Linux内核。可能的原因有:
- 串口干扰: 在板卡上电启动的最初几秒内,如果调试串口接收到了某些非预期的字符或电平信号(例如,键盘误触、串口终端软件自动发送的某些控制字符),可能会中断U-Boot的自动引导流程,使其停在命令行。
- 引导顺序配置: U-Boot内部有引导顺序的配置(如先尝试SD卡,再尝试eMMC或网络引导)。如果配置被意外更改,或者首选的引导介质上没有有效的系统,也可能停在命令行。
- 引导脚本问题: U-Boot执行的引导脚本(boot script)如果存在错误或被中断。
- 按键中断: 某些板卡设计中,如果在启动时按下了特定的按键,也可能进入U-Boot命令行。
解决方法:
- 简单尝试: 在
hobot>
提示符下,直接输入boot
命令并按回车。这会尝试执行默认的引导命令,通常能继续引导进入Linux系统。