Команда depmod
(модули зависимостей) используется для создания списка описаний зависимостей модулей ядра и связанных с ними файлов карт.
Содержание
Описание
При запуске утилиты анализируются модули ядра в каталоге /lib/modules/[kernel-release]
и создаётся файл зависимостей типа Makefile
с именем Modules
.
Модули обычно берутся из каталогов, указанных в файле конфигурации или упомянутых в командной строке. Затем, стек модулей добавляется и удаляется автоматически с помощью modprobe
, ни один модуль не остаётся без других связанных модулей, которые им необходимы.
Одновременно создаётся связанная карта, сопоставляющая идентификаторы оборудования и соответствующие модули, которые их обрабатывают с целью использования инфраструктурой горячего подключения. Это специально связанное сопоставление используется для поиска и нахождения правильного модуля, когда аппаратное обеспечение его запрашивает.
Ядро Linux использует depmod
и modprobe
для отправки необработанных данных для своих модулей в правильном порядке для их загрузки. Командные утилиты depmod
и modprobe
облегчают создание модульного ядра Linux, которым могут управлять все конечные пользователи, инженеры по обслуживанию дистрибуции, сетевые и системные администраторы.
Модули ядра Linux будут предоставлять уникальные службы, называемые «символы», позволяющие другим модулям использовать утилиты ядра.
Команда depmod:
- создаёт список символов, предоставленных модулями, в файле с именем
modules.symbols
; - создаёт список символов в модулях по его двоичной хешированной версии,
modules.symbols.bin
; - сохраняет выходные данные файла с именем
modules.devname
, если модули предоставляют уникальные имена устройств (devname
), которые должны быть заполнены в/dev
при загрузке с помощью специальной утилиты, напримерudev
.
Синтаксис
$ depmod -[aA] [options] [forced_version]
Параметры
Основные параметры
- -a, --all
- Проверить все модули
- -A, --quick
- Работает только если есть новый модуль
- -e, --errsyms
- Сообщить о непредоставленных символах
- -n, --show
- Записать файл зависимостей только на стандартный вывод
- -P, --symbol-prefix
- Префикс символа архитектуры
- -C, --config=PATH
- Чтение конфигурации из PATH
- -v, --verbose
- Включить подробный режим
- -w, --warn
- Предупредить о дублях
- -V, --version
- Показать версию
- -h, --help
- Показать эту помощь
Параметры для управления дистрибутивами
- -b, --basedir=DIR
- Использовать изображение дерева модулей
- -o, --outdir=DIR
- Выходной каталог для сгенерированных файлов
- -F, --filesyms=FILE
- Использовать файл вместо текущих символов ядра
- -E, --symvers=FILE
- Использовать файл
Module.symvers
для проверки версий символов
Если аргументы (кроме опций) не указаны, предполагается, что depmod -a
выведет список зависимостей, подходящий для утилиты modprobe
.
Примеры использования команды Linux depmod
Серия команд
В приведённых ниже примерах серия команд, помогающих проиллюстрировать обычный способ использования утилиты в Linux. Каждая команда имеет префикс sudo
, поскольку каждая из них требует соответствующих прав root
.
В первой команде используется утилита ln
для создания символической ссылки в файл нашего модуля в каталоге /lib/modules/[kernel-release]
. Команда `uname -r`
, заключённая в обратные кавычки, выполняется оболочкой и преобразуется в соответствующую строку, представляющую версию выпуска нашего ядра.
$ sudo ln -s /path/to/your-kernel-module.ko /lib/modules/`uname -r`
Во второй команде с помощью depmod -a
создаётся обновлённый список зависимостей, чтобы убедиться, что модуль, который мы устанавливаем, знает обо всех существующих модулях и зависимостях.
$ sudo depmod -a
Обновлённый список зависимостей будет использоваться modprobe
при установке модуля в третьей команде.
$ sudo modprobe your-kernel-module
Команда modprobe
установила модуль ядра.
Необходимые команды
- insmod
- Вставка модуля в ядро Linux
- lsmod
- Отображение состояния модуля ядра Linux
- modinfo
- Отображение информации о модуле ядра Linux
- modprobe
- Добавление или удаление модуля из ядра Linux
- rmmod
- Удаление модуля из ядра Linux
Заключение
Эта небольшая статья о работе в Linux с командой depmod
наверняка будет полезна начинающим системным администраторам.