Linux:基于另一个模块的加载模块



是否可以动态加载(也许通过MOD_ALIAS()?)需要首先加载另一个模块的模块?

背景:我的系统上有一个USB->I2C桥接器,连接到i2c端的是触摸屏。每当连接/断开 USB 电缆时,启动 i2c 的内核模块都会自动加载/卸载。我正在寻找一种方法来加载/卸载相同事件的触摸屏驱动程序。

你说的是模块依赖关系,由 depmod -A 生成。实际的依赖关系信息存储在/lib/modules/version/modules.dep 中。

如果/lib/modules/2.6.29/kernel/a.ko 依赖于 b.ko(在同一目录中),您可以添加以下行:

/lib/modules/2.6.29/kernel/a.ko: /lib/modules/2.6.29/kernel/b.ko

创建依赖项。

你想要的是modprobe.d

添加一个<module>.conf文件,其中<module>是动态加载的内核模块的名称。

在上述 conf 文件中定义installremove选项,以运行相关命令而不是modprobe(按所需顺序)。

如果你想在加载模块 alice 后自动加载模块 bob

# /etc/modprobe.d/alice.conf
install alice /sbin/modprobe --ignore-install alice;  /sbin/modprobe bob;"

--ignore-install 会阻止modprobe再次运行相同的安装命令。

同样,在同一

conf 文件中定义remove节。
有关更多详细信息,请查看 modprobe.d 的手册页