modprobe.d - каталог конфигурации modprobe
НАЗВАНИЕ
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>.