RDK X5 IMU Module 免驱驱动 无法扫描到imu设备

:white_check_mark: 问题已解决 - 完整方案总结

感谢 @wup114514 提供的最终解决方案!这是经过验证的可靠路径。


:clipboard: 完整解决步骤

:one: 配置接口模式

# 进入配置工具
sudo srpi-config

# 选择 IMU 接口模式 → BMI088-I2C
# 保存并退出

:two: 物理断电重启

# ⚠️ 关键:必须物理断电(拔电源),不是 reboot!
# 断电后等待 10 秒再上电

:three: 验证 I2C 状态

i2cdetect -y -r 5

:white_check_mark: 正常输出(两个 UU 表示驱动已正确占用):

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
10: -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- UU -- -- -- -- -- --

:cross_mark: 异常输出(出现 69 或其他地址需重新断电重启):

60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- --

:four: 下载免驱驱动代码

cd /userdata
git clone -b library https://github.com/D-Robotics/rdk_imu.git

:five: 编译驱动

cd rdk_imu
mkdir build && cd build
cmake ..
make -j4

:six: 测试验证

# C 版本测试
cd ..
./bin/imu_test

# Python 版本测试
cd Py_RDK_IMU
python3 test_pyimu.py

:white_check_mark: 成功标志:能看到加速度和角速度数据输出


:warning: 关键注意事项

关键点 说明
断电方式 必须物理断电,软重启无效
i2cdetect 状态 两个 UU 才正常,69 表示驱动未正确加载
驱动选择 免驱驱动(library 分支)比 hobot_imu_sensor 更稳定
系统版本 镜像 ≥ 3.4.1(当前 3.5.0 已验证可用)

:wrench: 常见问题排查

# 如果仍然扫不到设备,检查以下信息:

# 1. 系统版本
cat /etc/issue

# 2. 内核日志
dmesg | grep -i bmi

# 3. IIO 设备节点
ls -l /sys/bus/iio/devices/

# 4. 跳帽配置
# 确认 IMU 接口跳帽在 I2C 位置

:books: 参考资源


:light_bulb: 建议

遇到同样问题的开发者可以直接按照上述 6 步操作,90% 以上的情况是断电重启没做对导致 i2cdetect 状态异常。

如果按照步骤操作后仍有问题,欢迎在本帖回复你的 i2cdetect 输出和 dmesg 日志,方便进一步排查。