RDK X5交叉编译

你好 @lettersony,关于 RDK X5 在 X86 平台交叉编译的问题,结合社区现有资源给你明确答复:

结论

是的,官方提供交叉编译 Docker 镜像,你看到的 pc_tros_ubuntu22.04_v1.0.0.tar.gz 就是用于 RDK X5 的交叉编译环境。

关键问题解答

1. 镜像版本兼容性

项目 说明
镜像发布日期 24-Apr-2024
适用系统 RDKOS V3.x 系列(包括 V3.5.0)
ROS2 版本 Humble(Ubuntu 22.04)
架构 X86 主机 → ARM64 目标

镜像虽然发布于 2024 年 4 月,但编译的程序可以在 RDKOS V3.5.0 上运行。因为:

  • 交叉编译依赖的是板端 sysroot(系统库),而非内核版本
  • RDKOS V3.x 系列保持 ABI 兼容
  • 只要不修改内核驱动,用户态程序兼容性良好

2. 官方交叉编译步骤

# === 在 X86 主机上执行 ===

# 1. 下载镜像(约 2.5GB)
wget http://archive.d-robotics.cc/TogetheROS/cross_compile_docker/pc_tros_ubuntu22.04_v1.0.0.tar.gz

# 2. 加载镜像
sudo docker load --input pc_tros_ubuntu22.04_v1.0.0.tar.gz

# 3. 查看镜像 ID
sudo docker images | grep pc_tros

# 4. 创建工作目录
mkdir -p ~/rdk_cross_compile/cc_ws/tros_ws/src

# 5. 启动容器并挂载目录
sudo docker run -it --rm \
  --entrypoint="/bin/bash" \
  -v ~/rdk_cross_compile:/work \
  <IMAGE_ID>  # 替换为实际 IMAGE ID
# === 在 Docker 容器内执行 ===

# 6. 获取配置文件
cd /work/cc_ws/tros_ws
git clone https://github.com/D-Robotics/robot_dev_config.git -b develop
cd robot_dev_config

# 7. 切换到稳定版本(关键!)
git tag --list
git reset --hard tros_2.3.2  # 使用稳定 tag

# 8. 拉取源码
cd ..
vcs-import src < ./robot_dev_config/ros2_release.repos

# 9. 交叉编译 X5 版本
bash ./robot_dev_config/build.sh -p X5

3. 版本匹配建议

RDKOS 版本 推荐 TROS 版本 备注
V3.0.x - V3.5.x tros_2.3.2 稳定版本,社区验证最多
V3.5.0+ 查看板端 apt list tros-* 确认板端已安装的 TROS 版本

检查板端 TROS 版本:

# 在 RDK X5 上执行
apt list | grep tros
cat /etc/version

4. 常见问题

Q1: 镜像版本旧,是否支持 V3.5.0?

  • :white_check_mark: 支持。用户态程序兼容性良好,除非你修改了内核驱动

Q2: 下载太慢怎么办?

# 使用 aria2 断点续传
sudo apt install aria2
aria2c -x 16 -s 16 -k 1M \
  http://archive.d-robotics.cc/TogetheROS/cross_compile_docker/pc_tros_ubuntu22.04_v1.0.0.tar.gz

Q3: 编译自己的功能包?

  • 将你的 package 放在 cc_ws/tros_ws/src/ 目录下
  • 使用同样的 build.sh -p X5 编译
  • 生成的 install/ 目录拷贝到板端 /opt/tros/

相关资源

建议

  1. 先走通官方流程:严格按照文档编译一次官方示例
  2. 验证版本:在板端执行 apt list | grep tros 确认版本
  3. 再开发自己的包:编译成功后再添加自己的功能包

如果遇到具体编译报错,欢迎把错误日志贴到社区,方便定位问题。