是否可以动态加载(通过MOD_ALIAS()
?)一个需要首先加载另一个模块的模块?
背景:我的系统上有一个USB-> I2C桥接器,并且连接到i2c端的是一个触摸屏。无论何时连接/断开USB电缆,启动i2c的内核模块都会自动加载/卸载。我正在寻找一种方法来加载/卸载相同事件的触摸屏驱动程序。
答案 0 :(得分:1)
您正在谈论由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
创建依赖项。
答案 1 :(得分:1)
你想要的是 modprobe.d
添加<module>.conf
文件,其中<module>
是动态加载的内核模块的名称。
在上述配置文件中定义install
和remove
选项,以运行相关命令而不是modprobe
(按所需顺序)。
如果您想在加载模块 alice 后自动加载模块 bob ,
# /etc/modprobe.d/alice.conf
install alice /sbin/modprobe --ignore-install alice; /sbin/modprobe bob;"
--ignore-install
阻止modprobe
再次运行相同的安装命令。
同样在同一个conf文件中定义remove
部分
有关详情,请查看 man page of modprobe.d 。