Linux device driver 为I2C设备加载平台驱动程序时,该设备是否需要存在?

Linux device driver 为I2C设备加载平台驱动程序时,该设备是否需要存在?,linux-device-driver,raspberry-pi3,embedded-linux,i2c,Linux Device Driver,Raspberry Pi3,Embedded Linux,I2c,我正在尝试为raspberrypi构建I2C平台设备驱动程序。该设备正在注册为杂项设备。我的理解是,当我通过insmod加载驱动程序时,应该调用probe函数,并且至少应该打印我在其中的消息。相反,我收到一条关于内核被污染的消息。据我所知,即使我的模块污染了内核,它仍然应该运行。那么我的问题是,为了调用我的驱动程序的探测功能,设备是否需要物理连接到raspberrypi?或者还有其他问题吗?该设备不必通过物理方式插入即可调用探测功能。大多数已实现的探测函数甚至会检查设备是否已插入。内核受污染的警

我正在尝试为raspberrypi构建I2C平台设备驱动程序。该设备正在注册为杂项设备。我的理解是,当我通过
insmod
加载驱动程序时,应该调用probe函数,并且至少应该打印我在其中的消息。相反,我收到一条关于内核被污染的消息。据我所知,即使我的模块污染了内核,它仍然应该运行。那么我的问题是,为了调用我的驱动程序的探测功能,设备是否需要物理连接到raspberrypi?或者还有其他问题吗?

该设备不必通过物理方式插入即可调用探测功能。大多数已实现的探测函数甚至会检查设备是否已插入。
内核受污染的警告也可以忽略,您的驱动程序仍应能够运行。
我认为您没有将驱动程序添加到设备树
您可以在这里找到一个很好的解释

如果没有更多的信息,我们很难猜测其他一些可能的问题。

I2c不是热插拔总线,因此,应该展示设备。按照总线规范的要求,您仍然需要将设备物理连接。