RDKX5到手怎么搭建初始ROS2 humble环境?

root@ubuntu:~/xhc_ros2_ws# sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
root@ubuntu:~/xhc_ros2_ws# echo “deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu jammy main” | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
root@ubuntu:~/xhc_ros2_ws# sudo apt clean
root@ubuntu:~/xhc_ros2_ws# sudo rm -rf /var/lib/apt/lists/*
root@ubuntu:~/xhc_ros2_ws# sudo apt updateReading package lists… Done
E: Failed to fetch https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/jammy/main/binary-arm64/Packages 404 Not Found [IP: 2402:f000:1:400::2 443]
E: Failed to fetch https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/jammy-updates/main/binary-arm64/Packages 404 Not Found [IP: 2402:f000:1:400::2 443]
E: Failed to fetch https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/jammy-backports/main/binary-arm64/Packages 404 Not Found [IP: 2402:f000:1:400::2 443]
E: Failed to fetch https://mirrors.tuna.tsinghua.edu.cn/ubuntu/dists/jammy-security/main/binary-arm64/Packages 404 Not Found [IP: 2402:f000:1:400::2 443]

结论

清华源/阿里源对 ARM64 架构同步有问题,这是 RDK X5 (ARM64) 的常见问题。推荐换用华为云镜像源或ROS2 官方源。


:rocket: 解决方案:换用华为云镜像源

华为云对 ARM64 架构支持更好:

# 1. 备份当前配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak4

# 2. 写入华为云源 (ARM64 支持更好)
sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb https://repo.huaweicloud.com/ubuntu/ jammy main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-backports main restricted universe multiverse
deb https://repo.huaweicloud.com/ubuntu/ jammy-security main restricted universe multiverse
EOF

# 3. 清理缓存
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*

# 4. 更新
sudo apt update

:wrench: 如果华为云也失败:使用 ROS2 官方源 + 手动安装依赖

# 1. 只用 Ubuntu 官方源(不替换 mirrors)
sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
EOF

# 注意:ARM64 架构用 ports.ubuntu.com 而不是 archive.ubuntu.com

# 2. 清理并更新
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

# 3. 安装基础依赖
sudo apt install libceres-dev liblapack-dev libeigen3-dev

# 4. 安装 ROS2 包
sudo apt install ros-humble-slam-toolbox ros-humble-navigation2

:high_voltage: 备选方案:源码编译 slam_toolbox

如果 apt 始终无法安装,直接源码编译:

# 1. 安装编译依赖(用 ports.ubuntu.com 源)
sudo apt install libceres-dev liblapack-dev libeigen3-dev libboost-all-dev

# 2. 克隆源码
mkdir -p ~/slam_ws/src
cd ~/slam_ws/src
git clone -b humble https://github.com/SteveMacenski/slam_toolbox.git

# 3. 编译
cd ~/slam_ws
colcon build --symlink-install

# 4. source 环境
source install/setup.bash

:clipboard: 请先执行这个测试

# 测试 ports.ubuntu.com 是否可用
curl -I http://ports.ubuntu.com/ubuntu-ports/dists/jammy/main/binary-arm64/Packages

如果返回 HTTP/1.1 200 OK,说明 ARM64 源可用,用上面的方案 2。


:light_bulb: 建议优先级

优先级 方案 说明
1 华为云源 对 ARM64 支持好,速度快
2 ports.ubuntu.com Ubuntu 官方 ARM64 源
3 源码编译 不依赖 apt 源,但耗时长

先试华为云源方案,把 sudo apt update 的输出贴出来,如果还有 404 我们换 ports.ubuntu.com 源!