什么可能导致内核模块损坏?

什么可能导致内核模块损坏?

我的内核模块偶尔会出现奇怪的效果,我无法完全定位(这是在使用 Raspberry OS 的 Raspberry Pi4 上,我使用的是 SSD - 无 SD 卡;3A 电源)。

我已经构建了一个内核模块,它似乎仍然存在某种错误,可能会随机使设备崩溃(有时在 4 秒后......下次在 15 分钟后等)。

让我困惑的是:我有一个成功构建的模块,可以加载和运行。在某些时候设备会冻结(可能是由于我的模块)。我重新启动设备,但是当我尝试再次插入相同的内核模块(在重新启动之前已成功加载的内核模块)时,我现在得到:

insmod:错误:无法插入模块 abc.ko:参数无效

..并且我必须重新编译该模块(我绝对没有对其进行任何软件更改),然后才能再次插入它。有趣的是,这种效果并不是每次设备冻结时都会发生,而是有时会发生……发生了什么事? Linux 中是否有某种机制可能会使某些内核模块二进制文件“失效”,从而使其无法再使用?

PS:连接到 Raspberry 5V 电源的唯一附加部件是:SSD(通过 USB3 消耗 80-100mA 电流)、CPU 风扇(据说是 200mA)以及承载我的项目中使用的音频芯片的 PCB (消耗 80mA).. 即我认为总电流 380mA 应该完全在我的 3A 电源能够处理的范围内。

相关内容