我有一个第三方模块和一个图像采集卡一起使用。我已经下载了内核源代码,并按照供应商的说明进行了编译,并将生成的模块arvdrv.ko放在一个文件夹中。
供应商提供了一个脚本,该脚本将模块加载到内核中,并且在我运行该模块时可以运行。该模块已加载,但仅在下一次引导之前加载。该脚本不使用modprobe。安装模块后,我可以访问抓帧器。
在我看来,modprobe维护着许多模块的清单。可以编辑/ etc / modules来添加模块名称,它将在启动时加载,但是模块arvdrv不在modprobe的列表中。
我的问题是如何让modprobe知道该模块?是否需要将其复制到新位置?
使用sudo
:
编辑/etc/modules
文件,并.ko
在其自己的行上添加模块的名称(不带扩展名)。引导时,内核将尝试加载此文件中命名的所有模块。
将模块复制到中的适当文件夹中/lib/modules/`uname -r`/kernel/drivers
。就我而言,这是/lib/modules/`uname -r`/kernel/drivers/pci
。这会将模块放置在modprobe的数据库中。我不知道这是否可以是链接。
运行depmod
。这将找到模块的所有依赖关系。
此时,我重新启动,然后运行lsmod | grep module-name
以确认该模块在引导时已加载。
有关更多信息,请参见手册页中的modprobe,lsmod和depmod。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句