Как настроить modprobe для поиска моего модуля?

Я пытаюсь загрузить модуль ядра при загрузке.

Если я запускаю insmod /path/to/module.ko, все работает нормально. Но это нужно повторять каждый раз, когда я перезагружаюсь.

Если я запускаю modprobe /path/to/module.ko, он не может найти модуль. Я знаю, что modprobe использует файл конфигурации, но я не могу заставить его загрузить модуль даже после добавления /path/to/module.ko в /etc/modules.

Какова правильная конфигурация?


person sep332    schedule 22.10.2008    source источник


Ответы (3)


Вы можете сделать символическую ссылку вашего модуля на стандартный путь, так что depmod увидит его, и вы сможете загрузить его как любой другой модуль.

sudo ln -s /path/to/module.ko /lib/modules/`uname -r`
sudo depmod -a
sudo modprobe module

Если вы добавите имя модуля в /etc/modules, оно будет загружено при каждой загрузке.

В любом случае, я думаю, что правильная конфигурация - это скопировать модуль по стандартным путям.

person Jaime Soriano    schedule 22.10.2008
comment
Если вы действительно хотите, вы можете написать поиск /some/other/path в /etc/depmod.conf или /etc/depmod.d/something, но я все же предлагаю сделать так, как предложил Хайме и копирование или символическая ссылка на /lib/modules/uname -r, где все ожидают наличия модулей. - person ephemient; 22.10.2008
comment
вы также можете переписать include/config/kernel.release и перекомпилировать ядро. Тогда ваши модули будут находиться в /lib/modules/‹независимо от того, что вы написали-в-kernel.release›/ - person Jan Matějka; 16.11.2013
comment
Мне просто пришлось немного почесать голову, пока я не обнаружил, что у меня /lib/modules/ неправильная версия ядра. Так что действительно, используйте этот uname -r, по крайней мере, для проверки текущей версии ядра... - person hyde; 05.11.2014
comment
В настоящее время я создаю систему докеров на основе linuxkit/alpine, где я хочу загрузить модуль ядра. Для начала я пытаюсь выполнить этот тест, но у меня даже нет папки /lib/modules/, не говоря уже о версии ядра или modules.dep. Таким образом, после создания путей depmod -a по-прежнему приводит к Segmentation fault. Любые подсказки? - person gr4nt3d; 04.06.2019

Выполните следующие шаги:

  1. Скопируйте hello.ko в /lib/modules/'uname-r'/misc/
  2. Добавьте запись misc/hello.ko в /lib/modules/'uname-r'/modules.dep
  3. судо депмод
  4. sudo modprobe привет

modprobe проверит файл modules.dep на наличие зависимостей.

person tusharrnimje    schedule 13.03.2016

Я думаю, что ключ заключается в том, чтобы скопировать модуль по стандартным путям.

Как только это будет сделано, modprobe принимает только имя модуля, поэтому не указывайте путь и расширение «.ko».

person Ray Li    schedule 22.10.2008