У меня есть сторонний модуль с фрейм-граббером. Я скачал исходный код ядра, следовал инструкциям вендора, чтобы скомпилировать его, и у меня есть получившийся модуль 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 для получения дополнительной информации.