如何安装第三方模块以便在启动时加载?

我有第三方模块可以使用帧抓取器。 我已经下载了内核源代码,按照供应商的说明编译它,并将生成的模块arvdrv.ko放在一个文件夹中。

供应商提供了一个脚本,可以将模块加载到内核中,并在运行时运行; 模块已加载但仅在下次引导之前。 该脚本不使用modprobe。 我可以在安装模块时访问帧抓取器。

在我看来,modprobe维护着许多模块的列表。 可以编辑/ etc / modules来添加模块名称,它将在启动时加载,但模块arvdrv不在modprobe的列表中。

我的问题是如何让modprobe知道模块? 是否需要将其复制到新位置,如果是这样的话?

作为sudo:

  1. 编辑/etc/modules文件并在其自己的行上添加/etc/modules的名称(不带.ko扩展名)。 在启动时,内核将尝试加载此文件中指定的所有模块。

  2. 将模块复制到/lib/modules/`uname -r`/kernel/drivers的合适文件夹。 在我的例子中,这是/lib/modules/`uname -r`/kernel/drivers/pci 。 这将把模块放在modprobe的数据库中。 我不知道这是否可以成为一个链接。

  3. 运行depmod 。 这将找到模块的所有依赖项。

  4. 此时,我重新启动然后运行lsmod | grep module-name lsmod | grep module-name确认模块是否在引导时加载。

有关更多信息,请参见modprobelsmoddepmod的手册页。