如何找到哪个模块驱动程序拥有 i2c 地址?

如何找到哪个模块驱动程序拥有 i2c 地址?

我想使用 Python 通过 I2C 总线进行通信。但该地址无法使用,因为它已被另一个驱动程序使用。

# i2cdetect -y 0
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --    

# i2cget -y 0 0x1b
Error: Could not set address to 0x1b: Device or resource busy

我已按照中的说明进行操作这个答案

# cat /sys/bus/i2c/devices/0-001b/modalias 
wm8731

根据该答案的作者 wm8731 是“使该设备保持忙碌状态的内核驱动程序的名称”。禁用该模块不起作用:

# rmmod wm8731
Error: Module wm8731 is not currently loaded

如何禁用该地址的驱动程序?

答案1

在从内核配置文件中的内核源代码禁用该驱动程序后,您必须重建内核

相关内容