如何安装第三方模块以便在启动时加载?
我有第三方模块可以使用帧抓取器。 我已经下载了内核源代码,按照供应商的说明编译它,并将生成的模块arvdrv.ko放在一个文件夹中。
供应商提供了一个脚本,可以将模块加载到内核中,并在运行时运行; 模块已加载但仅在下次引导之前。 该脚本不使用modprobe。 我可以在安装模块时访问帧抓取器。
在我看来,modprobe维护着许多模块的列表。 可以编辑/ etc / modules来添加模块名称,它将在启动时加载,但模块arvdrv不在modprobe的列表中。
我的问题是如何让modprobe知道模块? 是否需要将其复制到新位置,如果是这样的话?
作为sudo:
-
编辑
/etc/modules
文件并在其自己的行上添加/etc/modules
的名称(不带.ko扩展名)。 在启动时,内核将尝试加载此文件中指定的所有模块。 -
将模块复制到
/lib/modules/`uname -r`/kernel/drivers
的合适文件夹。 在我的例子中,这是/lib/modules/`uname -r`/kernel/drivers/pci
。 这将把模块放在modprobe的数据库中。 我不知道这是否可以成为一个链接。 -
运行
depmod
。 这将找到模块的所有依赖项。 -
此时,我重新启动然后运行
lsmod | grep module-name
lsmod | grep module-name
确认模块是否在引导时加载。
有关更多信息,请参见modprobe , lsmod和depmod的手册页。