You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto环境下Raspberry Pi Sense HAT摇杆驱动无法触发probe()问题排查

Raspberry Pi Sense HAT摇杆驱动probe未触发的排查与解决

1. 修正设备树compatible字符串

驱动代码中定义的兼容字符串为raspberrypi,sense-hat-joystick,你当前的设备树条目存在大小写、空格和连字符错误,需修改为:

sensehat-joystick@46 {
    compatible = "raspberrypi,sense-hat-joystick";
    reg = <0x46>;
    status = "okay";
};

2. 将设备节点挂载到对应I2C总线

I2C设备节点必须作为目标I2C总线(i2c18或i2c19)的子节点存在,不能独立定义。示例结构如下:

&i2c18 {
    status = "okay";
    clock-frequency = <100000>;

    sensehat-joystick@46 {
        compatible = "raspberrypi,sense-hat-joystick";
        reg = <0x46>;
        status = "okay";
    };
};

3. 确认Yocto中驱动的正确配置

仅通过make menuconfig修改内核配置可能不会被Yocto构建流程保留,需通过以下方式确保驱动被启用:

  • 在local.conf中添加:CONFIG_RPI_SENSE_HAT_JOYSTICK=y(编译进内核)或CONFIG_RPI_SENSE_HAT_JOYSTICK=m(编译为模块)
  • 若使用自定义内核recipe,需在对应的.bbappend文件中添加上述配置
  • 构建完成后,检查内核配置文件(如/boot/config-$(uname -r))确认CONFIG_RPI_SENSE_HAT_JOYSTICK已启用

4. 验证I2C总线与硬件连接

  • 确认目标I2C总线(i2c18/i2c19)的设备树节点已设置status = "okay",且引脚复用配置正确
  • 使用i2cdetect -y 18(或19)命令检测总线,确认0x46地址存在设备
  • 检查硬件连接,确保Sense HAT与Raspberry Pi的引脚连接无误

5. 确认设备树已正确部署

Yocto构建时需确保修改后的设备树被包含到镜像中:

  • 在machine配置文件或local.conf中指定自定义设备树文件,例如:KERNEL_DEVICETREE = "your-custom-dtb.dtb"
  • 重新构建镜像并烧录,避免使用未更新的旧设备树

内容的提问来源于stack exchange,提问作者Prashanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:52:06