diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-30 00:39:15 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2008-07-30 00:39:15 +0200 |
commit | 726687ad48bdececed1e7e44387c50e009e28208 (patch) | |
tree | 0a0084555d2362e87a8942dd630a72d3ef41d9fc /udev.xml | |
parent | aa5e29a58112aa838be8d04f9e6c994af056f1d1 (diff) |
delete all Makefiles and move udev source to udev/
Diffstat (limited to 'udev.xml')
-rw-r--r-- | udev.xml | 639 |
1 files changed, 0 insertions, 639 deletions
diff --git a/udev.xml b/udev.xml deleted file mode 100644 index c740c0d807..0000000000 --- a/udev.xml +++ /dev/null @@ -1,639 +0,0 @@ -<?xml version='1.0'?> -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" - "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> - -<article> - <section> - <title>udev</title> - <refentry> - <refentryinfo> - <title>udev</title> - <date>August 2005</date> - <productname>udev</productname> - </refentryinfo> - - <refmeta> - <refentrytitle>udev</refentrytitle> - <manvolnum>7</manvolnum> - <refmiscinfo class="version"></refmiscinfo> - </refmeta> - - <refnamediv> - <refname>udev</refname> - <refpurpose>dynamic device management</refpurpose> - </refnamediv> - - <refsect1><title>DESCRIPTION</title> - <para>udev provides a dynamic device directory containing only the files for - actually present devices. It creates or removes device node files in the - <filename>/dev</filename> directory, or it renames network interfaces.</para> - - <para>Usually udev runs as <citerefentry><refentrytitle>udevd</refentrytitle> - <manvolnum>8</manvolnum></citerefentry> and receives uevents directly from the - kernel if a device is added or removed from the system.</para> - - <para>If udev receives a device event, it matches its configured rules - against the available device attributes provided in sysfs to identify the device. - Rules that match may provide additional device information or specify a device - node name and multiple symlink names and instruct udev to run additional programs - as part of the device event handling.</para> - </refsect1> - - <refsect1><title>CONFIGURATION</title> - <para>udev configuration files are placed in <filename>/etc/udev/</filename> - and <filename>/lib/udev/</filename>. All empty lines, or lines beginning with - '#' will be ignored.</para> - - <refsect2><title>Configuration file</title> - <para>udev expects its main configuration file at <filename>/etc/udev/udev.conf</filename>. - It consists of a set of variables allowing the user to override default udev values. - The following variables can be set:</para> - <variablelist> - <varlistentry> - <term><option>udev_root</option></term> - <listitem> - <para>Specifies where to place the device nodes in the filesystem. - The default value is <filename>/dev</filename>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>udev_log</option></term> - <listitem> - <para>The logging priority. Valid values are the numerical syslog priorities - or their textual representations: <option>err</option>, <option>info</option> - and <option>debug</option>.</para> - </listitem> - </varlistentry> - </variablelist> - </refsect2> - - <refsect2><title>Rules files</title> - <para>The udev rules are read from the files located in the - default rules directory <filename>/lib/udev/rules.d/</filename>, - the custom rules directory <filename>/etc/udev/rules.d/</filename> - and the temporary rules directory <filename>/dev/.udev/rules.d/</filename>. - All rule files are sorted and processed in lexical order, regardless - in which of these directories they live. Every line in the rules file contains at least - one key value pair. There are two kind of keys, match and assignment keys. - If all match keys are matching against its value, the rule gets applied and the - assign keys get the specified value assigned.</para> - - <para>A matching rule may specify the name of the device node, add a symlink - pointing to the node, or run a specified program as part of the event handling. - If no matching rule is found, the default device node name is used.</para> - - <para>A rule may consist of a list of one or more key value pairs separated by - a comma. Each key has a distinct operation, depending on the used operator. Valid - operators are:</para> - <variablelist> - <varlistentry> - <term><option>==</option></term> - <listitem> - <para>Compare for equality.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>!=</option></term> - <listitem> - <para>Compare for non-equality.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>=</option></term> - <listitem> - <para>Assign a value to a key. Keys that represent a list, are reset - and only this single value is assigned.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>+=</option></term> - <listitem> - <para>Add the value to a key that holds a list of entries.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>:=</option></term> - <listitem> - <para>Assign a value to a key finally; disallow any later changes, - which may be used to prevent changes by any later rules.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The following key names can be used to match against device properties. - Some of the keys also match against properties of the parent devices in sysfs, - not only the device that has generated the event. If multiple keys that match - a parent device are specified in a single rule, all these keys must match at - one and the same parent device.</para> - <variablelist> - <varlistentry> - <term><option>ACTION</option></term> - <listitem> - <para>Match the name of the event action.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>DEVPATH</option></term> - <listitem> - <para>Match the devpath of the event device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>KERNEL</option></term> - <listitem> - <para>Match the name of the event device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>NAME</option></term> - <listitem> - <para>Match the name of the node or network interface. It can - be used once the NAME key has been set in one of the preceding - rules.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>SUBSYSTEM</option></term> - <listitem> - <para>Match the subsystem of the event device.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>DRIVER</option></term> - <listitem> - <para>Match the driver name of the event device. Only set for devices - which are bound to a driver at the time the event is generated.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>ATTR{<replaceable>filename</replaceable>}</option></term> - <listitem> - <para>Match sysfs attribute values of the event device. Up to five - <option>ATTR</option> keys can be specified per rule. Trailing - whitespace in the attribute values is ignored, if the specified match - value does not contain trailing whitespace itself. Depending on the type - of operator, this key is also used to set the value of a sysfs attribute. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>KERNELS</option></term> - <listitem> - <para>Search the devpath upwards for a matching device name.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>SUBSYSTEMS</option></term> - <listitem> - <para>Search the devpath upwards for a matching device subsystem name.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>DRIVERS</option></term> - <listitem> - <para>Search the devpath upwards for a matching device driver name.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>ATTRS{<replaceable>filename</replaceable>}</option></term> - <listitem> - <para>Search the devpath upwards for a device with matching sysfs attribute values. - Up to five <option>ATTRS</option> keys can be specified per rule, but all of them - must match on the same device. Trailing whitespace in the attribute values is ignored, - if the specified match value does not contain trailing whitespace itself.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>ENV{<replaceable>key</replaceable>}</option></term> - <listitem> - <para>Match against the value of an environment variable. Up to five <option>ENV</option> - keys can be specified per rule. Depending on the type of operator, this key is also used - to export a variable to the environment.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>TEST{<replaceable>octal mode mask</replaceable>}</option></term> - <listitem> - <para>Test the existence of a file. An octal mode mask can be specified - if needed.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>PROGRAM</option></term> - <listitem> - <para>Execute external program. The key is true, if the program returns - with exit code zero. The whole event environment is available to the - executed program. The program's output printed to stdout, is available in - the RESULT key.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>RESULT</option></term> - <listitem> - <para>Match the returned string of the last PROGRAM call. This key can - be used in the same or in any later rule after a PROGRAM call.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>Most of the fields support a shell style pattern matching. The following - pattern characters are supported:</para> - <variablelist> - <varlistentry> - <term><option>*</option></term> - <listitem> - <para>Matches zero, or any number of characters.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>?</option></term> - <listitem> - <para>Matches any single character.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>[]</option></term> - <listitem> - <para>Matches any single character specified within the brackets. For - example, the pattern string 'tty[SR]' would match either 'ttyS' or 'ttyR'. - Ranges are also supported within this match with the '-' character. - For example, to match on the range of all digits, the pattern [0-9] would - be used. If the first character following the '[' is a '!', any characters - not enclosed are matched.</para> - </listitem> - </varlistentry> - </variablelist> - - <para>The following keys can get values assigned:</para> - <variablelist> - <varlistentry> - <term><option>NAME</option></term> - <listitem> - <para>The name of the node to be created, or the name the network interface - should be renamed to. Only one rule can set the node name, all later rules with - a NAME key will be ignored.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>SYMLINK</option></term> - <listitem> - <para>The name of a symlink targeting the node. Every matching rule can add - this value to the list of symlinks to be created along with the device node. - Multiple symlinks may be specified by separating the names by the space - character.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>OWNER, GROUP, MODE</option></term> - <listitem> - <para>The permissions for the device node. Every specified value overwrites - the compiled-in default value.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>ATTR{<replaceable>key</replaceable>}</option></term> - <listitem> - <para>The value that should be written to a sysfs attribute of the - event device. Depending on the type of operator, this key is also - used to match against the value of a sysfs attribute.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>ENV{<replaceable>key</replaceable>}</option></term> - <listitem> - <para>Export a variable to the environment. Depending on the type of operator, - this key is also to match against an environment variable.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>RUN</option></term> - <listitem> - <para>Add a program to the list of programs to be executed for a specific - device. This can only be used for very short running tasks. Running an - event process for a long period of time may block all further events for - this or a dependent device. Long running tasks need to be immediately - detached from the event process itself.</para> - <para>If the specifiefd string starts with - <option>socket:<replaceable>path</replaceable></option>, all current event - values will be passed to the specified socket, as a message in the same - format the kernel sends an uevent. If the first character of the specified path - is an @ character, an abstract namespace socket is used, instead of an existing - socket file.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>LABEL</option></term> - <listitem> - <para>Named label where a GOTO can jump to.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>GOTO</option></term> - <listitem> - <para>Jumps to the next LABEL with a matching name</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>IMPORT{<replaceable>type</replaceable>}</option></term> - <listitem> - <para>Import a set of variables into the event environment, - depending on <replaceable>type</replaceable>:</para> - <variablelist> - <varlistentry> - <term><option>program</option></term> - <listitem> - <para>Execute an external program specified as the assigned value and - import its output, which must be in environment key format.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>file</option></term> - <listitem> - <para>Import a text file specified as the assigned value, which must be in - environment key format.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>parent</option></term> - <listitem> - <para>Import the stored keys from the parent device by reading - the database entry of the parent device. The value assigned to - <option>IMPORT{parent}</option> is used as a filter of key names - to import (with the same shell-style pattern matching used for - comparisons).</para> - </listitem> - </varlistentry> - </variablelist> - <para>If no option is given, udev will choose between <option>program</option> - and <option>file</option> based on the executable bit of the file - permissions.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>WAIT_FOR</option></term> - <listitem> - <para>Wait for a file to become available.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>OPTIONS</option></term> - <listitem> - <para>Rule and device options:</para> - <variablelist> - <varlistentry> - <term><option>last_rule</option></term> - <listitem> - <para>Stops further rules application. No later rules will have - any effect.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>ignore_device</option></term> - <listitem> - <para>Ignore this event completely.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>ignore_remove</option></term> - <listitem> - <para>Do not remove the device node when the device goes away. This may be - useful as a workaround for broken device drivers.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>link_priority=<replaceable>value</replaceable></option></term> - <listitem> - <para>Specify the priority of the created symlinks. Devices with higher - priorities overwrite existing symlinks of other devices. The default is 0.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>all_partitions</option></term> - <listitem> - <para>Create the device nodes for all available partitions of a block device. - This may be useful for removable media devices where media changes are not - detected.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>event_timeout=</option></term> - <listitem> - <para>Number of seconds an event will wait for operations to finish, before it - will terminate itself.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><option>string_escape=<replaceable>none|replace</replaceable></option></term> - <listitem> - <para>Usually control and other possibly unsafe characters are replaced - in strings used for device naming. The mode of replacement can be specified - with this option.</para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - </variablelist> - - <para>The <option>NAME</option>, <option>SYMLINK</option>, <option>PROGRAM</option>, - <option>OWNER</option>, <option>GROUP</option>, <option>MODE</option> and <option>RUN</option> - fields support simple printf-like string substitutions. The <option>RUN</option> - format chars gets applied after all rules have been processed, right before the program - is executed. It allows the use of the complete environment set by earlier matching - rules. For all other fields, substitutions are applied while the individual rule is - being processed. The available substitutions are:</para> - <variablelist> - <varlistentry> - <term><option>$kernel</option>, <option>%k</option></term> - <listitem> - <para>The kernel name for this device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$number</option>, <option>%n</option></term> - <listitem> - <para>The kernel number for this device. For example, 'sda3' has - kernel number of '3'</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$devpath</option>, <option>%p</option></term> - <listitem> - <para>The devpath of the device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$id</option>, <option>%b</option></term> - <listitem> - <para>The name of the device matched while searching the devpath upwards for - <option>SUBSYSTEMS</option>, <option>KERNELS</option>, <option>DRIVERS</option> and <option>ATTRS</option>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$driver</option></term> - <listitem> - <para>The driver name of the device matched while searching the devpath upwards for - <option>SUBSYSTEMS</option>, <option>KERNELS</option>, <option>DRIVERS</option> and <option>ATTRS</option>. - </para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term> - <listitem> - <para>The value of a sysfs attribute found at the device, where - all keys of the rule have matched. If the matching device does not have - such an attribute, follow the chain of parent devices and use the value - of the first attribute that matches. - If the attribute is a symlink, the last element of the symlink target is - returned as the value.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$env{<replaceable>key</replaceable>}</option>, <option>%E{<replaceable>key</replaceable>}</option></term> - <listitem> - <para>The value of an environment variable.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$major</option>, <option>%M</option></term> - <listitem> - <para>The kernel major number for the device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$minor</option>, <option>%m</option></term> - <listitem> - <para>The kernel minor number for the device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$result</option>, <option>%c</option></term> - <listitem> - <para>The string returned by the external program requested with PROGRAM. - A single part of the string, separated by a space character may be selected - by specifying the part number as an attribute: <option>%c{N}</option>. - If the number is followed by the '+' char this part plus all remaining parts - of the result string are substituted: <option>%c{N+}</option></para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$parent</option>, <option>%P</option></term> - <listitem> - <para>The node name of the parent device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$name</option></term> - <listitem> - <para>The current name of the device node. If not changed by a rule, it is the - name of the kernel device.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$links</option></term> - <listitem> - <para>The current list of symlinks, separated by a space character. The value is - only set if an earlier rule assigned a value, or during a remove events.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$root</option>, <option>%r</option></term> - <listitem> - <para>The udev_root value.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$sys</option>, <option>%S</option></term> - <listitem> - <para>The sysfs mount point.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$tempnode</option>, <option>%N</option></term> - <listitem> - <para>The name of a created temporary device node to provide access to - the device from a external program before the real node is created.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>%%</option></term> - <listitem> - <para>The '%' character itself.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><option>$$</option></term> - <listitem> - <para>The '$' character itself.</para> - </listitem> - </varlistentry> - </variablelist> - <para>The count of characters to be substituted may be limited by specifying - the format length value. For example, '%3s{file}' will only - insert the first three characters of the sysfs attribute</para> - </refsect2> - </refsect1> - - <refsect1><title>AUTHOR</title> - <para>Written by Greg Kroah-Hartman <email>greg@kroah.com</email> and - Kay Sievers <email>kay.sievers@vrfy.org</email>. With much help from - Dan Stekloff and many others.</para> - </refsect1> - - <refsect1> - <title>SEE ALSO</title> - <para><citerefentry> - <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum> - </citerefentry>, - <citerefentry> - <refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum> - </citerefentry></para> - </refsect1> - </refentry> - </section> -</article> |