В чем разница между insmod и modprobe?

Я знаю insmod и modprobe используется для вставки модуля в ядро. Но какая между ними разница?

и, почему опасно вставлять модули с force опция в modprobe?

4 ответов


modprobe является интеллектуальной версией insmod. insmod просто добавляет модуль, в котором modprobe ищет любую зависимость (если этот конкретный модуль зависит от любого другого модуля) и загружает их.

о , вот цитата из man-страницы:

   Try to strip any versioning information from the module which might otherwise
   stop it from loading: this is the same as using both --force-vermagic and
   --force-modversion. Naturally, these checks are there for your protection,
   so using this option is dangerous unless you know what you are doing.

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


Если Вы доверяете man-страницам Linux isnmod.

большинство пользователей захотят использовать modprobe вместо этого, что более умно и может обрабатывать зависимости модулей.


insmod: используется для загрузки модуля
команды modprobe: почти так же, как insmod, но также загружает любые другие модули, которые требуются модулем, который вы хотите загрузить.
Хотя вам все равно понадобится insmod при загрузке ваших собственных модулей из текущего каталог, потому что modprobe выглядит только в стандартных каталогах установленных модулей.
ссылка:https://lwn.net/Kernel/LDD3/


modprobe ищет зависимости при загрузке модуля. Предположим, если я загрузил модуль, который имеет символы, определенные в каком-то другом модуле (этот путь модуля указан внутри основного модуля). Итак, modprobe загружает основной модуль и зависимый модуль.

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