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


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
Я следовал вашим инструкциям, но ничего не получалось, пока поставщик не предоставил некоторый отлаженный код !!! Ваш ответ является полным, простым, и я считаю, что он сработал бы, если бы не было ошибок поставщика. Да, я приму это.
— Нейт Локвуд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.