0

我为 Linux 构建了一个特定的驱动程序作为模块 (m),NXP 的 spi-imx。尽管如此,Linux 在引导时会探测此驱动程序。我正在努力找出哪些进程/其他模块/驱动程序请求这个 spi-imx 驱动程序。Adepmod不显示 spi-imx 与其他模块之间的任何依赖关系(除了 spidev 作为子模块)。

经过一番研究,我发现 Linux 在检测到新设备时会自动(?)调用 modprobe。那么 Linux 是否真的调用 modprobe 是因为设备树中 ecSPI 的状态为“okay”?如果是这样,我该如何防止这种情况?我想通过 modprobe 从用户空间应用程序动态加载 spi-imx。其背后的故事:协处理器将这条 SPI 线与 Linux 引导过程并行使用。这当然会干扰并中断协处理器对 SPI 线的使用。当协处理器通过 SPI(也是一种引导机制)完成传输后,它应该将 SPI 线移交给 Linux。

我非常感谢任何类型的提示、链接、提示和评论。

4

1 回答 1

0

非常感谢您的回答。正如你们所提到的,我还发现 Linux 本身会探测设备(如果存在)(“好的”)。

一种可能的解决方案是通过 *.conf 文件中的“install spi-imx /bin/false”之类的条目来完全切断 modprobe 调用。但这使得 Linux 和用户空间无法通过 modprobe 加载驱动程序。

位于 /etc/modprobe.d/ 的 *.conf 中的“blacklist spi-imx”是防止 Linux 在引导时探测驱动程序的方法。之后,来自用户空间的 modprobe 可以成功加载驱动程序。

再次感谢和最好的问候

于 2021-11-10T14:07:03.853 回答