Depmod linux что это

Команда depmod в Linux с примерами

Команда depmod (Dep endency Mod üles) используется для создания списка описания зависимостей модулей ядра и связанных с ним файлами карты. При этом анализируются модули ядра в каталоге / lib / modules / kernel-release и создается файл зависимостей, похожий на « Makefile» с именем modules.dep, на основе символов, присутствующих в наборе модулей. Эти модули обычно берутся из каталогов, указанных в файле конфигурации или упомянутых в командной строке. Затем, когда стек модулей добавляется и удаляется автоматически с помощью modprobe, никакие модули не обходятся без других связанных модулей, которые им требуются. Одновременно он создает связанную карту, сопоставляющую идентификаторы оборудования и соответствующие модули, которые обрабатывают их с целью использования инфраструктурой горячего подключения. Это специально связанное сопоставление используется для поиска и поиска правильного модуля, когда его запрашивает единица оборудования.

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

Синтаксис:

Модули ядра Linux будут предоставлять уникальные сервисы, называемые « символами », чтобы другие модули могли использовать его утилиты. Это можно сделать с помощью одного из вариантов EXPORT_SYMBOL в коде. В конце концов, когда второй модуль использует этот символ, тогда второй модуль зависит исключительно от атрибутов и функций первого модуля. Эти модульные зависимости имеют тенденцию выглядеть сложными.
Основная цель команды depmod — создать список зависимостей модулей, отменив каждый модуль в / lib / modules / kernel-release и обнаружив, какие символы экспорта используются для количественной оценки его потребностей. По умолчанию этот список записывается в modules.dep , а также доступен в бинарной хешированной версии с именем modules.dep.bin, в том же каталоге.

  • Команда depmod также создает список символов, предоставляемых модулями, в файле modules.symbols .
  • Команда depmod создает список символов в модулях по его бинарной хэшированной версии modules.symbols.bin .
  • depmod сохранит вывод файла с именем modules.devname, если модули предоставляют уникальные имена устройств (devname), которые должны быть загружены в / dev при загрузке с помощью специальной утилиты, такой как udev.

Параметры:

  • -a, -all: тщательно исследует и проверяет все модули в ядре. По умолчанию эта опция включена, если в командной строке не указаны имена файлов.
  • -A, –quick: эта опция сканирует и обнаруживает, являются ли какие-либо модули новыми, чем те, которые находятся в файле modules.dep, прежде чем какая-либо работа будет выполнена: если она не найдена, она плавно завершает работу, вместо того, чтобы заново генерировать файлы.
  • -b basedir, –basedir, basedir: если модули в данный момент не находятся в каталоге по умолчанию / lib / modules / kernel-version, но находятся в какой-либо другой промежуточной области, мы можем указать basedir, который делает посадку на имя каталога. Этот basedir извлекается из результирующего файла modules.dep , поэтому он всегда готов к перемещению в каталог по умолчанию / lib / modules / kernel-version. Поставщик дистрибутива, которому необходимо предварительно сгенерировать файлы метаданных, а не запускать depmod позже, сочтет эту опцию очень полезной.
  • -C, –config file-or-directory: эта конкретная опция переопределяет каталог конфигурации по умолчанию в /etc/depmod.d/ .
  • -e, -errsyms: в сочетании с параметром -F, он сообщает о любых специфических символах, которые особенно нужны модулю, которые не обязательно поставляются другими модулями или ядром. По умолчанию любые символы, которые не предоставлены модулями, предполагаются предоставленными ядром, но это предположение может быть недействительным, если дополнительно обновленные сторонние драйверы не установлены должным образом или были созданы с ошибками.
  • -E, –symvers: depmod в сочетании с параметром -e, сообщает о любых версиях символов, предоставляемых модулями, которые не совпадают с версиями символов, предоставленными ядром в его Module.symvers. Эта опция несовместима с опцией -F.
  • -F, –filesyms System.map: поставляется с System.map, созданным при сборке ядра, что позволяет опции -e сообщать о неразрешенных и неопознанных символах. Эта опция несовместима с -E.
  • -h, –help: эта опция, как правило, печатает сообщение справки и завершается.
  • -n, –show: эта опция отображает файл зависимости в stdout, а не в дереве / lib / modules.
  • -q, –quiet: эта опция заставляет depmod молчать и не жаловаться на пропущенные символы.
  • -r, –root: эта опция помогает некоторым пользователям, которые компилируют модули с ИД пользователя без полномочий root, а затем устанавливают модули как root. Этот процесс может оставить модули, принадлежащие некорневому идентификатору пользователя, который подвержен атакам злоумышленников, даже если каталог модулей принадлежит root. Если идентификатор пользователя без полномочий root скомпрометирован с одной стороны, злоумышленник может перезаписать существующие модули, принадлежащие этому идентификатору пользователя без полномочий root, и использовать это воздействие для начальной загрузки до уровня доступа root. Обычно modutils отклоняет попытки использовать модуль, который не принадлежит root. Указание-r переопределит ошибку и позволит root загружать модули, которые не принадлежат root. Использование -r является серьезной угрозой безопасности и не рекомендуется, поскольку модуль подвержен атакам.
  • -s, –syslog: эта опция отображает все сообщения об ошибках через демон syslog вместо stderr.
  • -u, –unresolved-error: команда depmod не устанавливает код возврата, когда в модуле присутствуют неразрешенные символы. В некоторых дистрибутивах требуется ненулевой код возврата в modutils, но это изменение может вызвать проблемы у пользователей, которые ожидают старого поведения. Если вы хотите ненулевой код возврата в depmod, укажите -u. В последних версиях ядра Linux команда depmod будет молча игнорировать флаг -u и всегда будет давать ненулевой код возврата для неразрешенных символов.
  • -n, –dry-run: эта опция отправляет результирующий файл modules.dep и различные связанные файлы карт в стандартный вывод, а не записывает их в каталог модуля.
  • -P: эта опция делает некоторые архитектуры префиксом символов с посторонним символом. Это упоминание префиксного символа (например, _), чтобы игнорировать.
  • -v, –verbose: опция verbose mode в depmod будет выводить на стандартный вывод все символы, от которых зависит каждый модуль, и имя файла конкретного модуля, который предоставляет этот символ.
  • -V, –version: эта опция имеет тенденцию отображать версию depmod и выходить.
  • -w: эта опция выводит предупреждение о дублирующих зависимостях, псевдонимах, версиях символов и т. д.
Читайте также:  Remote media player windows

Пример: ниже приведен ряд команд, которые помогают проиллюстрировать обычный способ использования команды depmod в Linux. Каждая команда имеет префикс sudo, поскольку для каждой из них требуются соответствующие права root:

Получение файла из местоположения по умолчанию:

Загрузка и выгрузка файла из местоположения, отличного от местоположения по умолчанию:

Операции Расширены построчно:

ln используется для создания символической ссылки на наш файл модуля в каталоге / lib / modules / kernel-release. Команда uname -r, заключенная в кавычки, выполняется оболочкой и преобразуется в соответствующую строку, представляющую версию выпуска нашего ядра.

Примечание: $ depmod -a — это обновленный список зависимостей, сгенерированный depmod -a, чтобы убедиться, что устанавливаемый модуль знает обо всех существующих модулях и зависимостях. Этот список зависимостей будет использоваться modprobe при установке модуля в третьей команде.

Источник

DEPMOD

НАЗВАНИЕ

depmod − генерация файлов modules.dep и map

ОБЗОР

ОПИСАНИЕ

Модули ядра Linux могут предоставлять службы (называемые «символами») для использования другими модулями (при помощи одного из вариантов EXPORT_SYMBOL в коде). Если другой модуль использует этот «символ», то этот модуль непосредственно зависит от первого модуля. Такие зависимости могут быть весьма сложными.

depmod создает список зависимостей модулей, прочитывая каждый модуль в каталоге /lib/modules/версия и определяя, какие символы они экспортируют, а какие символы им нужны. По умолчанию этот список записывается в файл modules.dep, а в том же каталоге создаётся его двоичная версия под именем modules.dep.bin. Если в командной строке заданы имена_файлов, то проверяются только эти модули (что иногда может быть полезно, если перечислены не все модули). depmod также создаёт список предоставляемых модулем символов в файле с именем modules.symbols, а его двоичная версия сохраняется под именем modules.symbols.bin. Наконец, depmod записывает в файл modules.devname предоставляемые модулем имена специальных устройств (devname), которые нужно создать в каталоге /dev в процессе загрузки (утилитой вроде systemd−tmpfiles).

Читайте также:  Автокад шрифт для windows

Если указана версия, то используется каталог модулей указанной версии ядра, а не версии текущего ядра (возвращаемой командой «uname −r»).

ОПЦИИ

Проверять все модули. Опция включена по умолчанию, если в командной строке не указаны имена файлов.

Эта опция проверяет, не является ли какой−либо модуль более новым, чем файл modules.dep, прежде чем приступить к работе. Если файл modules.dep свежее модулей, то программа не будет повторно генерировать файлы, а без предупреждений завершит работу.

−b основной_каталог, −−basedir основной_каталог

Если ваши модули находятся не в (обычном) каталоге /lib/modules/версия, а в другом месте, можно указать основной_каталог, который будет предпочтён обычному каталогу. Этот основной_каталог будет вырезан из результирующего файла modules.dep, так что файл будет готов к перемещению в обычное место расположения. Используйте эту опцию если вам нужно изготовить дистрибутив, содержащий заранее сгенерированые файлы мета−данных, что позволит обойтись без повторного запуска depmod.

Эта опция заменяет каталог конфигурации по умолчанию /etc/depmod.d/.

В сочетании с опцией −F, эта опция докладывает обо всех символах, которые требуются модулю, но не предоставляются другими модулями или ядром. Обычно предполагается, что любые символы не предоставляемые модулями, предоставляются ядром (что должно быть верно в идеальном мире), но это предположение может может не соблюдаться, особенно в случае сторонних драйверов, которые не были корректно установлены или были некорректно собраны.

При указании вместе с опцией −e, вывести версии символов из модулей, не совпадающие с версиями символов, предоставляемых ядром в файле Module.symvers. Эта опция взаимно не совместима с опцией −F.

Указать файл System.map, созданный при сборке ядра, который позволяет опции −e сообщать обо всех неразрешённых символах. Эта опция взаимно несовместима с опцией −E.

Вывести краткую справку и завершить работу.

Эта опция отправит получившийся modules.dep, а затем и различные map−файлы на стандартный вывод, а не запишет их в каталог модулей.

На некоторых архитектурах к символам добавляется символ−префикс. Эта опция позволяет указать символ−префикс (например, _) чтобы он не учитывался.

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

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

Читайте также:  Установил uefi windows настройки bios

Предупреждать о дублирующихся зависимостях, псевдонимах, версиях символов и т.п.

АВТОРСКОЕ ПРАВО

Эта страница руководства первоначально написана Copyright 2002, Расти Расселом (Rusty Russell), корпорация IBM. Часть авторства принадлежит Джону Мастерсу (Jon Masters) и другим авторам.

СМОТРИ ТАКЖЕ

АВТОРЫ

Джон Мастерс (Jon Masters)

Робби Воркман (Robby Workman)

Лукас Де Марчи (Lucas De Marchi)

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин .

Источник

Переводы страниц руководства

Страницы руководства —

НАЗВАНИЕ

depmod — программа для создания файла modules.dep и map-файла

ОБЗОР

ОПИСАНИЕ

Модули ядра Linux могут предоставлять службы (называемые «символами») для использования другими модулями (при помощи EXPORT_SYMBOL в коде). Если другой модуль использует этот «символ», то этот модуль непосредственно зависит от первого модуля. Такие зависимости могут быть весьма сложными.

depmod создает список зависимостей модулей, прочитывая каждый модуль в каталоге /lib/modules/версия и определяя, какие символы они экспортируют, а какие символы им нужны. По умолчанию этот список записывается в файл modules.dep в том же каталоге. Если в командной строке задано имя_файла, то проверяются только эти модули (что иногда может быть полезно, если перечислены не все модули).

Если указана версия, то используется каталог модулей указанной версии ядра, а не версии текущего ядра (возвращаемой командой «uname -r»).

depmod в том же каталоге так же генерирует различные map-файлы, которые используются инфраструктурой горячего подключения (hotplug).

ОПЦИИ

-a —all Проверять все модули. Опция включена по умолчанию, если в командной строке не указаны имена файлов.
-A —quick Эта опция проверяет, не является ли какой-либо модуль более новым, чем файл modules.dep, прежде чем приступить к работе. Если файл modules.dep свежее модулей, то программа не будет повторно генерировать файлы, а без предупреждений завершит работу.
-b основной_каталог —basedir основной_каталог Если ваши модули находятся не в (обычном) каталоге /lib/modules/версия, а в другом месте, можно указать основной_каталог, который будет предпочтён обычному каталогу. Этот основной_каталог будет вырезан из результирующего файла modules.dep, так что файл будет готов к перемещению в обычное место расположения.
-C —config файл или каталог Эта опция заменяет файл конфигурации по умолчанию (/etc/depmod.conf или /etc/depmod.d/), если он не был найден.
-e —errsyms В сочетании с опцией -F, эта опция докладывает обо всех символах, которые требуются необходимому модулю, но не предоставляются другими модулями или ядром. Обычно предполагается, что любые символы не предоставляемые модулями, предоставляются ядром (что должно быть верно в идеальном мире).
-F —filesyms System.map Указать файл System.map, созданный при сборке ядра, который позволяет опции -e сообщать обо всех неразрешённых символах.
-h —help Вывести краткую справку и завершить работу.
-n —dry-run Эта опция отправит получившийся modules.dep, а затем и различные map-файлы на стандартный вывод, а не запишет их в каталог модулей.
-v —verbose В подробном режиме depmod будет выводить (на стандартный вывод) все символы-зависимости каждого модуля и имена файлов модулей, которые предоставляют эти символы.
-V —version Отобразить версию программы и завершить работу. Обратите внимание на следующие предостережения о запуске на старых ядрах.

ОБРАТНАЯ СОВМЕСТИМОСТЬ

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

АВТОРСКОЕ ПРАВО

Эта страница руководства: Copyright 2002, Расти Рассел (Rusty Russell), корпорация IBM.

Источник

Оцените статью