Команда 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 наверняка будет полезна начинающим системным администраторам.