<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 form the system.</para>
+ 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
+ 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>
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 consists of a list of one or more key value pairs separated by
+ <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>
</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>
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>
</variablelist>
<para>If no option is given, udev will choose between <option>program</option>
- and <option>file</option> based on the executable bit of of the file
+ and <option>file</option> based on the executable bit of the file
permissions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>OPTIONS</option></term>
<listitem>
- <para><option>last_rule</option> stops further rules application. No later rules
- will have any effect.
- <option>ignore_device</option> will ignore this event completely.
- <option>ignore_remove</option> will ignore any later remove event for this
- device. This may be useful as a workaround for broken device drivers.
- <option>all_partitions</option> will 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>
+ <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.</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>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>
</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>
</varlistentry>
<varlistentry>
- <term><option>$minor</option> <option>%m</option></term>
+ <term><option>$minor</option>, <option>%m</option></term>
<listitem>
<para>The kernel minor number for the device.</para>
</listitem>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><option>$name</option></term>
+ <listitem>
+ <para>The name of the device node. 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>
</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>
<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 <email>dsteklof@us.ibm.com</email> and many others.</para>
+ Dan Stekloff and many others.</para>
</refsect1>
<refsect1>
<refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
- <refentrytitle>udevinfo</refentrytitle><manvolnum>8</manvolnum>
- </citerefentry>,
- <citerefentry>
- <refentrytitle>udevmonitor</refentrytitle><manvolnum>8</manvolnum>
+ <refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum>
</citerefentry></para>
</refsect1>
</refentry>