MODPROBE.D

НАЗВАНИЕ
ОБЗОР
ОПИСАНИЕ
КОМАНДЫ
СОВМЕСТИМОСТЬ
АВТОРСКОЕ ПРАВО
СМОТРИ ТАКЖЕ
АВТОРЫ
АВТОР ПЕРЕВОДА

НАЗВАНИЕ

modprobe.d − каталог конфигурации modprobe

ОБЗОР

/lib/modprobe.d/*.conf

/etc/modprobe.d/*.conf

/run/modprobe.d/*.conf

ОПИСАНИЕ

Поскольку команда modprobe при разрешении зависимостей модуля может добавлять или удалять дополнительно более одного модуля, необходим способ указания опций, которые нужно использовать в этих модулях. Все файлы внутри /etc/modprobe.d, оканчивающиеся расширением .conf, описывает эти опции требуемым образом. Он также может использоваться для создания удобных псевдонимов: альтернативных имён модуля. Наконец, он может также заменять обычное поведение modprobe, в соответствии с особыми требованиями (такими как вставка более одного модуля).

Отметим, что имя модуля и псевдоним (как и другие имена модуля) может содержать любой из знаков − или _: они оба взаимозаменяемы во всех командах модулей, а подчёркивания преобразуются автоматически.

Формат файлов в каталоге modprobe.d прост: каждая команда находится в отдельной строке, пустые строки и строки, начинающиеся с символа # игнорируются (полезно для добавления комментариев). Строки, оканчивающиеся \, продолжаются на следующей строке, что делает файл немного аккуратнее.

КОМАНДЫ

alias шаблон имя_модуля

Эта команда позволяет задавать альтернативные имена для модуля. Например: "alias my−mod really_long_modulename" означает, что можно использовать "modprobe my−mod" вместо "modprobe really_long_modulename". Можно также использовать шаблоны, подобные шаблонам оболочки, так что команда "alias my−mod* really_long_modulename" сделает то же самое, что команда "modprobe my−mod−something". Нальзя создавать псевдонимы для других псевдонимов (это приведет к путанице), но псевдонимы могут иметь опции, которые будут добавлены к любым другим опциям.

Отметим, что модули также могут содержать свои собственные псевдонимы, которые можно узнать при помощи modinfo. Эти псевдонимы используются в последнюю очередь (то есть, если нет команды install, remove или alias в файле конфигурации для настоящего имени модуля).

blacklist имя_модуля

Модули могут содержать собственные псевдонимы: обычно эти псевдонимы описывают поддерживаемые устройства, например "pci:123…". Эти "внутренние" псевдонимы могут быть заменены обычными ключевыми словами "alias", но может случиться, что два или более модулей поддерживают одно и то же устройство, или в модуле неправильно указана поддержка устройства: ключевое слово blacklist означает, что все частные внутренние псевдонимы модуля будут проигнорированы.

install имя_модуля команда...

Эта команда сообщает modprobe запустить вашу команду вместо обычной вставки модуля в ядро. Командой может быть команда оболочки: это позволяет вам выполнить любую разновидность сложной обработки, которую вы могли бы пожелать. Например, если модуль "fred" работает лучше совместно с уже установленным модулем "barney" (но не зависит от него, так что modprobe не захочет загружать его автоматически), вы можете указать команду "install fred /sbin/modprobe barney; /sbin/modprobe −−ignore−install fred", которая сделает то, что вы хотите. Отметим, что −−ignore−install предотвратит перезапуск второй командой modprobe этой же команды install. Обратитесь также к команде remove ниже.

Длинный список возможностей этой команды для решения проблем предоставления дополнительных зависимостей модулей не гарантируется и предназанчен для замены этой команды на предупрежения о её оконачательном удалении или устаревании в будущем. Их использование усложняет автоматическое определение зависимостей модулей утилитами распространения, например, mkinitrd (поскольку она теперь требует каким−то образом интерпретировать команды, которые должна выполнить install). В совершенном мире модули должны предоставлять полную информацию о зависимостях без использования этой команды и нижележащих систем для реализации поддержки мягких завсисимостей внутри ядра Linux.

Если в команде указать строку "$CMDLINE_OPTS", то она будет заменена опциями, указанными в командной строке modprobe. Это может быть полезно, потому что пользователи ожидают, что "modprobe opt=1" передаст аргумент "opt=1" модулю, даже если для этого модуля в файле конфигурации указана команда install. Указанный выше пример примет вид "install fred /sbin/modprobe barney; /sbin/modprobe −−ignore−install fred $CMDLINE_OPTS".

options имя_модуля опция...

Эта команда позволяет вам добавить опции к модулю имя_модуля (он может быть псевдонимом) при каждой вставке в ядро: непосредственно (с помощью modprobe имя_модуля), или если модуль был вставлен в качестве зависимости данного модуля.

Все опции накапливаются: они берутся из строки option самого модуля, из псевдонима и из командной строки.

remove имя_модуля команда...

Эта команда похожа на вышеописанную команду install, кроме случая, когда она запущена как "modprobe −r".

softdep имя_модуля pre: модули... post: модули...

Команда softdep позволяет указать мягкие (или не обязательные) зависимости модуля. Модуль с именем имя_модуля может использоваться без загрузки этих необязательных модулей, но обычно с утратой части возможностей. Например, драйвер контроллера хранилища данных может потребовать загрузить другой модуль, чтобы реализовать функции управления.

Модули в pre−deps и post−deps − это список имён и/или псевдонимов модулей, которые принимаются modprobe для установки (или удаления) до и после главного модуля, указанного в аргументе имя_модуля.

Например: предположим, что в конфигурации указано "softdep c pre: a b post: d e". Запуск "modprobe c" теперь будет эквивалентен запуску "modprobe a b c d e" без softdep. Флаги типа −−use−blacklist будут применяться ко всем указанным модулям, в то время как параметры модуля будут применяться только к модулю c.

Замечание: Если команды install или remove вызываются с одним и тем же аргументом имя_модуля, softdep имеет приоритет.

СОВМЕСТИМОСТЬ

Будущие версии kmod будут выдавать строгое предупреждение о попытке воспользоваться командой install описанным выше способом. Это произойдёт тогда, когда мягкие зависимости будут полностью поддерживаться ядром. Такая поддержка дополнит существующую поддержку мягких зависимостей в этой утилите, позволяя указывать такие зависимости прямо внутри модулей.

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

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

СМОТРИ ТАКЖЕ

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>.