Как установить сторонний модуль, чтобы он загружался при загрузке?

24

У меня есть сторонний модуль с фрейм-граббером. Я скачал исходный код ядра, следовал инструкциям вендора, чтобы скомпилировать его, и у меня есть получившийся модуль arvdrv.ko, который находится в папке.

Поставщик предоставил скрипт, который загружает модуль в ядро, и он работает, когда я его запускаю; модуль загружен, но только до следующей загрузки. Скрипт не использует modprobe. Я могу получить доступ к фрейм-грабберу, когда модуль установлен.

Мне кажется, что modprobe поддерживает список многих модулей. Можно отредактировать / etc / modules, чтобы добавить имя модуля, и он будет загружаться при загрузке, но модуль arvdrv отсутствует в списке modprobe.

Мой вопрос: как сообщить modprobe о модуле? Нужно ли его копировать в новое место и если да, то куда?

Нейт Локвуд
источник
Наконец, я обнаружил, что проблема, с которой я столкнулся после нахождения «правильного» способа, заключалась в том, что поставщик забыл включить дополнительный сценарий инициализации, чтобы драйвер загружался при загрузке, но не работал.
Нейт Локвуд
Вот краткий обзор процедуры установки модуля «из дерева» без части установки при автоматическом запуске: stackoverflow.com/questions/22783793/…
Ciro Santilli 事件 改造 中心 法轮功 六四 事件

Ответы:

32

Использование 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чтобы подтвердить, что модуль был загружен при загрузке.

Смотрите man-страницы для modprobe , lsmod и depmod для получения дополнительной информации.

Нейт Локвуд
источник
3
Я следовал вашим инструкциям, но ничего не получалось, пока поставщик не предоставил некоторый отлаженный код !!! Ваш ответ является полным, простым, и я считаю, что он сработал бы, если бы не было ошибок поставщика. Да, я приму это.
Нейт Локвуд