Yocto Dunfell下BBB使用linux-ti-staging 5.10内核无/dev/uio*设备求助
PRU UIO设备缺失排查方向
- 优先检查驱动绑定冲突
Linux 5.10版本TI内核默认启用PRU Remoteproc驱动框架,你当前lsmod结果中pruss模块已加载,该驱动会优先匹配设备树中compatible = "ti,am3356-pruss"的PRU节点,抢占硬件资源导致uio_pruss无法绑定设备。
临时测试可执行命令卸载冲突驱动:
执行后查看是否生成rmmod pruss modprobe -r uio_pruss modprobe uio_pruss/dev/uio*设备,验证是冲突问题后,可在内核配置中将CONFIG_PRUSS_REMOTEPROC设置为n,编译后永久禁用Remoteproc驱动。 - 修正设备树配置
你当前设备树的PRU节点配置适配的是Remoteproc框架,若要使用UIO驱动,需做如下修改:- 将
pruss@0节点的compatible属性改为ti,pruss-uio - 确认节点已配置正确的中断资源,完整匹配
uio_pruss驱动的设备匹配规则
- 将
- 检查内核配置细节
确认内核配置项满足要求:CONFIG_UIO=y或=mCONFIG_UIO_PRUSS=y或=mCONFIG_PRUSS_REMOTEPROC=n
- 查看内核日志定位错误
执行命令dmesg | grep -E '(uio|pruss)',查看uio_pruss驱动加载过程中的报错信息,是未找到匹配设备、资源申请失败还是其他异常。 - 验证设备树加载正确性
执行cat /proc/device-tree/soc/pruss@0/status确认PRU节点状态为okay,确保设备树修改生效。
内容的提问来源于stack exchange,提问作者x'mpl'
相关产品推荐
相关产品推荐

