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