depmod − генерация файлов modules.dep и map
depmod [−b основной_каталог] [−e] [−E Module.symvers] [−F System.map] [−n] [−v] [−A] [−P префикс] [−w] [версия] |
|
depmod [−e] [−E Module.symvers] [−F System.map] [−m] [−n] [−v] [−P префикс] [−w] [версия] [имя_файла...] |
Модули ядра Linux могут предоставлять службы (называемые "символами") для использования другими модулями (при помощи одного из вариантов EXPORT_SYMBOL в коде). Если другой модуль использует этот "символ", то этот модуль непосредственно зависит от первого модуля. Такие зависимости могут быть весьма сложными.
depmod создает список зависимостей модулей, прочитывая каждый модуль в каталоге /lib/modules/версия и определяя, какие символы они экспортируют, а какие символы им нужны. По умолчанию этот список записывается в файл modules.dep, а в том же каталоге создаётся его двоичная версия под именем modules.dep.bin. Если в командной строке заданы имена_файлов, то проверяются только эти модули (что иногда может быть полезно, если перечислены не все модули). depmod также создаёт список предоставляемых модулем символов в файле с именем modules.symbols, а его двоичная версия сохраняется под именем modules.symbols.bin. Наконец, depmod записывает в файл modules.devname предоставляемые модулем имена специальных устройств (devname), которые нужно создать в каталоге /dev в процессе загрузки (утилитой вроде systemd−tmpfiles).
Если указана версия, то используется каталог модулей указанной версии ядра, а не версии текущего ядра (возвращаемой командой "uname −r").
−a, −−all
Проверять все модули. Опция включена по умолчанию, если в командной строке не указаны имена файлов.
−A, −−quick
Эта опция проверяет, не является ли какой−либо модуль более новым, чем файл modules.dep, прежде чем приступить к работе. Если файл modules.dep свежее модулей, то программа не будет повторно генерировать файлы, а без предупреждений завершит работу.
−b основной_каталог, −−basedir основной_каталог
Если ваши модули находятся не в (обычном) каталоге /lib/modules/версия, а в другом месте, можно указать основной_каталог, который будет предпочтён обычному каталогу. Этот основной_каталог будет вырезан из результирующего файла modules.dep, так что файл будет готов к перемещению в обычное место расположения. Используйте эту опцию если вам нужно изготовить дистрибутив, содержащий заранее сгенерированые файлы мета−данных, что позволит обойтись без повторного запуска depmod.
−C, −−config файл или каталог
Эта опция заменяет каталог конфигурации по умолчанию /etc/depmod.d/.
−e, −−errsyms
В сочетании с опцией −F, эта опция докладывает обо всех символах, которые требуются модулю, но не предоставляются другими модулями или ядром. Обычно предполагается, что любые символы не предоставляемые модулями, предоставляются ядром (что должно быть верно в идеальном мире), но это предположение может может не соблюдаться, особенно в случае сторонних драйверов, которые не были корректно установлены или были некорректно собраны.
−E, −−symvers
При указании вместе с опцией −e, вывести версии символов из модулей, не совпадающие с версиями символов, предоставляемых ядром в файле Module.symvers. Эта опция взаимно не совместима с опцией −F.
−F, −−filesyms System.map
Указать файл System.map, созданный при сборке ядра, который позволяет опции −e сообщать обо всех неразрешённых символах. Эта опция взаимно несовместима с опцией −E.
−h, −−help
Вывести краткую справку и завершить работу.
−n, −−show, −−dry−run
Эта опция отправит получившийся modules.dep, а затем и различные map−файлы на стандартный вывод, а не запишет их в каталог модулей.
−P
На некоторых архитектурах к символам добавляется символ−префикс. Эта опция позволяет указать символ−префикс (например, _) чтобы он не учитывался.
−v, −−verbose
В подробном режиме depmod будет выводить (на стандартный вывод) символы, от которых зависит каждый модуль и имена файлов модулей, которые предоставляют эти символы.
−V, −−version
Отобразить версию программы и завершить работу. Обратите внимание на предостережения, описанные ниже, о запуске на старых ядрах.
−w
Предупреждать о дублирующихся зависимостях, псевдонимах, версиях символов и т.п.
Эта страница руководства первоначально написана Copyright 2002, Расти Расселом (Rusty Russell), корпорация IBM. Часть авторства принадлежит Джону Мастерсу (Jon Masters) и другим авторам.
depmod.d(5), modprobe(8), modules.dep(5)
Джон Мастерс (Jon Masters) <jcm@jonmasters.org>
Разработчик
Робби Воркман (Robby Workman) <rworkman@slackware.com>
Разработчик
Лукас Де Марчи (Lucas De Marchi) <lucas.de.marchi@gmail.com>
Разработчик
Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.