Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:基于另一个模块加载模块_Linux_Linux Kernel_Kernel Module - Fatal编程技术网

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

Linux:基于另一个模块加载模块,linux,linux-kernel,kernel-module,Linux,Linux Kernel,Kernel Module,是否可以动态加载(通过MOD_ALIAS()maybe?)需要先加载另一个模块的模块 背景:我的系统上有一个USB->I2C桥接器,连接到I2C端的是一个触摸屏。每当USB电缆连接/断开时,启动i2c的内核模块会自动加载/卸载。我正在寻找一种在相同事件上加载/卸载触摸屏驱动程序的方法。您所说的是由depmod-a生成的模块依赖项。实际的依赖项信息存储在/lib/modules/version/modules.dep中 如果/lib/modules/2.6.29/kernel/a.ko依赖于b.k

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


背景:我的系统上有一个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
创建依赖项

你想要的是

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

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

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

# /etc/modprobe.d/alice.conf
install alice /sbin/modprobe --ignore-install alice;  /sbin/modprobe bob;"
--ignore install
,停止
modprobe
再次运行相同的安装命令

同样,在同一conf文件中定义
删除
部分。

有关更多详细信息,请查看

我不知道这对我有什么帮助。foo.ko根据usb插头事件动态加载/卸载,并且不知道另一个模块bar.ko。加载foo.ko后需要加载bar.ko。如果我创建了一个从foo.ko到bar.ko的依赖项,bar.ko将在其init函数中失败,因为我看到它需要首先加载foo.ko。我相信你对udev规则很感兴趣。有一种方法可以在USB设备上执行这些操作,这样当您热插拔USB设备时,您几乎可以执行任何操作,包括运行脚本。不幸的是,我对udevadm了解不多,对不起……我们如何使用一开始就加载的内置驱动程序呢