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

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

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

供应商提供了一个脚本,用于将模块加载到内核中,当我运行该脚本时,它就可以工作;模块已加载,但只能加载到下次启动为止。该脚本不使用 modprobe。安装模块后,我可以访问帧抓取器。

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

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

答案1

使用sudo

  1. 编辑/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以确认该模块在启动时已加载。

请参阅手册页修改探针修改, 和德普莫德了解更多信息。

相关内容