BeagleBone Black SPI0/SPI1总线OLED驱动插入失败求助
BeagleBone Black SPI驱动加载失败:Chipselect被占用的解决思路
问题根源
错误提示chipselect 0 already in use是因为SPI0的CS0引脚已被系统默认的spidev驱动占用,对应设备文件spidev0.0——你启用SPI0后,系统自动加载了spidev模块并注册了该设备节点。
解决步骤
卸载冲突的spidev模块
先移除占用CS0的spidev驱动:rmmod spidev若提示依赖错误,先查看依赖模块:
lsmod | grep spidev卸载相关依赖后再执行
rmmod spidev。禁止spidev自动加载
避免重启后再次出现冲突,添加黑名单规则:echo "blacklist spidev" >> /etc/modprobe.d/blacklist-spidev.conf或者调整设备树配置:编辑
/boot/uEnv.txt,确保未加载启用spidev的overlay(如BB-SPIDEV0),保存后重启系统。重新加载OLED驱动
卸载冲突模块后,重新插入你的驱动:insmod your_oled_driver.ko执行
dmesg | tail检查是否加载成功。备选方案:更换CS引脚
若需保留spidev,可修改驱动代码,改用未被占用的CS引脚:比如SPI0的CS1(对应spidev0.1,若未使用)或SPI1的CS0/CS1,调整驱动中SPI设备注册时的chipselect参数即可。
内容的提问来源于stack exchange,提问作者Prateek Sonthalia
相关产品推荐
相关产品推荐

