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

Новости   Список переводов по пакетам   Все переводы   Репозиторий Debian   Как нам помочь   Участники проекта   Словарь терминов

Страницы руководства  - UDEV (7)


НАЗВАНИЕ

udev - динамическое управление устройствами

ОПИСАНИЕ

udev предоставляет каталог динамических устройств, содержащий только файлы для устройств, имеющихся на самом деле. Он создаёт или удаляет файлы устройств в каталоге /dev, или переименовывает из сетевые интерфейсы.

Обычно udev запускается как udevd(8) и принимает события прямо от ядра, если устройство добавлено или удалено из системы.

Если udev принимает событие об устройстве, подходящее к правилам, имеющимся в его настройках, то атрибуты устройства, имеющиеся в sysfs, используются для его идентификации. Подходящие правила, могут предоставлять дополнительную информацию об устройстве или указывать имя файла устройства, несколько ссылок, предписание udev запустить дополнительные программы для обработки события устройства.

НАСТРОЙКА

Все файлы настройки udev находятся в /etc/udev/ и /lib/udev/. Все пустые строки или строки, начинающиеся с '#', игнорируются.

    ФАЙЛ НАСТРОЙКИ

udev ожидает главный файл конфигурации в /etc/udev/udev.conf. Он состоит из набора переменных, позволяющих пользователю заменять значения по умолчанию. Могут быть заданы следующие переменные:

udev_root

Указывает место расположения файлов устройств в файловой системе. Значение по умолчанию - /dev.

udev_log

Приоритет журналирования. Правильными значениями являются числовые приоритеты syslog или их текстовые представления: err, info и debug.

    ФАЙЛЫ ПРАВИЛ

Правила udev читаются из файлов, находящихся в каталоге /lib/udev/rules.d/, из особого каталога праивл /lib/udev/rules.d/ и из временного каталога правил /dev/.udev/rules.d/. Все файлы правил сортируются и обрабатываются в алфавитном порядке, вне зависимости от каталога, из которого они взяты. Каждая строка файла правил состоит из по меньшей мере одной пары ключ-значение. Существует два типа ключей - шаблоны и назначения. Если все ключи-шаблоны совпадут с их значениями, применится правило и ключи-назначения зададут назначаемые значения.

Подходящие правила могут задавать имя файла устройства, добавлять ссылки, указывающие на файл устройства, или запускать указанные команды в составе обработки события. Если подходящее правило не найдено, используется имя файла по умолчанию.

Правило может состоять из списка пар ключ-значение, разделённых запятыми. Каждый ключ отдельные операции, зависящие от используемого оператора. Правильными значениями являются:

==

Сравнить на равенство.

!=

Сравнить на не-равенство.

=

Назначить значение ключу. Ключи, которые представляются списком, сбрасываются, их значением становится единственное указанное значение.

+=

Добавляет значение к ключу, который содержит список элементов.

:=

Назначает ключу окончательное значение; отключает любые более поздние изменения, что может быть использовано для предотвращения изменений другими более поздними правилами.

Следующие имена ключей могут использоваться для совпадения со свойствами устройства. Некоторые из ключей также совпадают со свойствами родительских устройств в sysfs, не только с устройством, которое произвело событие. Если в одном правиле указано несколько ключей, которые совпадают с родительским устройством, все эти ключи должны совпадать с ним или с родительским устройством.

ACTION

Совпадает с именем произошедшего события.

DEVPATH

Совпадает с путём к файлу устройства для данного события.

KERNEL

Совпадает с названием устройства в событии.

NAME

Совпадает с именем узла или сетевого интерфейса. Ключ NAME может использоваться сразу после того, как он будет установлен в одном из предыдущих правил.

SUBSYSTEM

Совпадает с подсистемой, в которой произошло событие на устройстве.

DRIVER

Совпадает с именем дрйвера, на котором произошло событие. Совпадают только те устройства, которые были подключены к драйверу в момент генерации события.

ATTR{имя_файла}

Совпадает со значениями атрибутов sysfs устройства, на котором произошло событие. В одном правиле можно указать до пяти ключей ATTR. Обрамляющие пробелы в значении атрибута игнорируются, если само значение для совпадения не содержит обрамляющих пробелов. В зависимости от типа оператора, этот ключ также используется для установки значеня атрибута sysfs.

KERNELS

Восходящий поиск подходящего имени устройства в пути к устройству.

SUBSYSTEMS

Восходящий поиск подходящего имени подсистемы в пути к устройству.

DRIVERS

Восходящий поиск подходящего названия драйвера в пути к устройству.

ATTRS{имя_файла}

Восходящий поиск значений атрибутов в sysfs в пути к устройству. В одном правиле может быть указано дл пяти ключей ATTR, но все они должны совпадать с одним и тем же устройством. Обрамляющие пробельные символы в значениях атрибутов игнорируются, если указанное подходящее значение само не содержит пробельный символ.

ENV{ключ}

Подходящее значение переменной окружения. В одном правиле может быть указано до пяти ключей ENV. В зависимости от типа оператора, этот ключ также используется для экспорта переменной в окружение.

TEST{восьмеричная_маска_доступа}

Проверить существование файла. Если необходимо, может быть указана восьмеричная маска доступа.

PROGRAM

Выполнить внешнюю программу. Ключ - истина, если программа завершается с нулевым кодом возврата. Всё событие доступно выполняемой программе в переменных окружения. Вывод программы направляется на стандартный поток вывода, который доступен в ключе RESULT.

RESULT

Совпадение со строкой, выведенной последним вызовом PROGRAM. Этот ключ может использоваться в том же или в любом более позднем правиле после вызова PROGRAM.

Большинство полей поддерживают совпадение с шаблонами в стиле shell. Поддерживаются следующие символы шаблонов:

*

Совпадает с нулём или любым количеством символов.

?

Совпадает с любым единственным символом.

[]

Совпадает с любым из символов, указанным внутри квадратных скобок. Например, строка с шаблоном 'tty[SR]' будет совпадать с 'ttyS' или 'ttyR'. Также шаблоном поддерживаются диапазоны, которые задаются символом '-'. Например, для совпадения с любой цифрой можно использовать шаблон [0-9]. Если первый символ, следующий за '[' - это '!', совпадают любые символы вне диапазона.

Следующие ключи могут принимать назначаемые значения:

NAME

Имя создаваемого файла устройства или имя сетевого интерфейса, в которое он должен быть переименован. Только одно правило может задать имя файла устройства, все последующие правила с ключом NAME будут проигнорированы.

SYMLINK

Имя символической ссылки, указывающей на файл устройства. Каждое подходящее правило может добавлять значение ко списку создаваемых символических ссылок, которые будут указывать на файл устройства. Можно указать несколько символических ссылок, азделённых пробелами.

OWNER, GROUP, MODE

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

ATTR{ключ}

Значение, которое нужно записать в атрибут sysfs для данного устройства. В зависимости от типа оператора, этот ключ может использоваться для совпадения со значением атрибута sysfs.

ENV{ключ}

Экспортировать переменную в окружение. В зависимости от типа оператора, этот ключ может использоваться для совпадения со значением переменной окружения.

RUN

Добавить программу в список программ, выполняемых для данного устройства. Этот ключ может использоваться только для запуска коротких задач. Запуск долгой обработки события может привести к блокированию всех будущих событий для этого или подчинённых устройств. Долго работающие задачи должны немедленно отсоединяться от процесса обработки события.

Если указана строка, начинающаяся с socket:путь, все текущие значения событий будут переданы в указанный сокет, в виде такого же сообщения, которое ядро отправляет в uevent. Если первый символ указанного пути является символом @, вместо существующего файла сокета будет использован сокет абстрактного пространства имён.

LABEL

Именованная метка, на которую можно перейти из GOTO.

GOTO

Переход к следующей метке, указанной в LABEL, при совпадении имени.

IMPORT{тип}

Импорт множества переменных в окружение для обработки события, в зависимости от типа:

program

Выполнить внешнюю программу, указанную в назначении, и импортировать вывод, который должен иметь формат переменных окружения.

file

Импортировать текстовый файл, указанный в назначении, который должен соответствовать формату переменных окружения.

parent

Импортировать сохранённые ключи из родительского устройства, прочитав базу данных родительского устройства. Значение, присваиваемое IMPORT{parent}, используется в качестве фильтра имён импортируемых ключей (в том же стиле, в котором происходит сравнение в shell).

Если опции не заданы, осуществит выбор между программой или файлом, основываясь на бите исполнимости в правах доступа.

WAIT_FOR

Ожидать доступности файла.

OPTIONS

Правило и опции устройства:

last_rule

Прекратить применять последующие правила. Последующие правила не будут оказывать какого-либо эффекта.

ignore_device

Полностью проигнорировать данное событие.

ignore_remove

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

link_priority=значение

Указывает приоритет созданных символических ссылок. Устройства с более высоким приоритетом заменяют существующие символические ссылки других устройств. По умолчанию 0.

all_partitions

Создать файлы устройства для всех доступных разделов блочного устройства. Это может быть полезно для устройств со сменными носителями информации, которые не обнаруживают замену.

event_timeout=

Количество секунд ожидания завершения действий по обработке события, до собственного завершения.

string_escape=none|replace

Указывает, нужно ли заменять небезопасные символы в имени устройства. Режим замены можно указать с помощью данной опции.

Поля NAME, SYMLINK, PROGRAM, OWNER, GROUP и RUN поддерживают простую подстановку, похожую на ту, которую выполняет printf. Формат символов RUN будет применён после того, как все правила были обработаны, но перед запуском программы. Это позволяет использовать полный набор переменных окружения, совпавших с более ранними правилами. Для всех других полей, подстановка выполняется в процессе обработки правила. Доступны следующие подстановки:

$kernel, %k

Имя, выданное ядром данному устройству.

$number, %n

Номер, выданный ядром данному устройству. Например, 'sda3' имеет номер '3'.

$devpath, %p

Путь к устройству.

$id, %b

Имя устройства, совпавшее в процессе восходящего поиска в пути к устройству с атрибутами SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

$driver

Имя драйвера устройства, совпавшего в процессе восходящего поиска в пути к устройству с атрибутами SUBSYSTEMS, KERNELS, DRIVERS и ATTRS.

$attr{файл}, %s{файл}

Значение атрибута устройства, найденное в sysfs, где все ключи в правиле совпали. Если все совпадающие устройства не имеют такого атрибута, будет произведён поиск аттрибута у всех родительских устройств в цепочке. Если атрибут - это символическая ссылка, в качестве значения будет возвращён последний элемент цели символической ссылки.

$env{ключ}, %E{ключ}

Значение переменной окружения.

$major, %M

Старший номер, выданный устройству ядром.

$minor, %m

Младший номер, выданный устройству ядром.

$result, %c

Строка, возвращённая внешней программой, вызванной из PROGRAM. Одна часть строки, отделённая пробелом, может быть выбрана указанием номера части в виде атрибута: %c{N+}. Если за числом следует символ '+', в результирующую строку будут подставлены эта часть и все, следующие за ней: %c{N+}

$parent, %P

Имя файла родительского устройства.

$name

Текущее имя файла устройства. Если имя не было изменено правилом, то это имя устройства, данное ядром.

$links

Список текущих символических ссылок, разделённых пробелами. Имеет значение только в том случае, если оно было назначено предыдущим праивлом или при событии удаления.

$root, %r

Значение udev_root.

$sys, %S

Точка монтирования sysfs.

$tempnode, %N

Имя временно созданного файла устройства, для предоставления доступа к устройству из внешней программы, перед тем как будет создан настоящий файл устройства.

%%

Символ процента - '%'.

$$

Символ доллара - '$'.

Количество символов, подлежащих замене, можно ограничить, указав значение длины формата. Например, '%3s{файл}' вставит только первые три символа атрибута sysfs.

АВТОР

Написано Грегом Кроа-Хартманом (Greg Kroah-Hartman) <greg@kroah.com> и Кеем Сиверсом (Kay Sievers) <kay.sievers@vrfy.org> при существенной помощи от Дэна Стеклоффа (Dan Stekloff) и многих других.

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

Перевод на русский язык выполнил Владимир Ступин <wheelof@gmail.com>.

СМОТРИ ТАКЖЕ

udevd(8), udevadm(8)


udev UDEV (7) Август 2005
Перейти в начало страницы |  Раздел 7 |  Главный указатель.
Сгенерировано manServer 1.07 из /home/stupin/man/man7/udev.7.gz с использованием макросов man.