</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
+ <para>udev configuration files are placed in <filename>/etc/udev</filename>
+ and <filename>/usr/lib/udev</filename>. All empty lines or lines beginning with
'#' are ignored.</para>
<refsect2><title>Configuration file</title>
<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>/run/udev/rules.d/</filename>.
- All rule files are collectively sorted and processed in lexical order,
- regardless of the directories in which they live. However, files in
- <filename>/etc/udev/rules.d/</filename> take precedence over files with
- the same name in <filename>/lib/udev/rules.d/</filename>; this can be
- used to ignore a default rules file if needed.</para>
+ system rules directory <filename>/usr/lib/udev/rules.d</filename>,
+ the local administration directory <filename>/etc/udev/rules.d</filename>
+ and the volatile runtime directory <filename>/run/udev/rules.d</filename>.
+ All rules files are collectively sorted and processed in lexical order,
+ regardless of the directories in which they live. However, files with
+ identical file names replace each other. Files in <filename>/run</filename>
+ have the highest priority, files in <filename>/etc</filename> take precedence
+ over files with the same name in <filename>/lib</filename>. This can be
+ used to overwrite a system rules file if needed; a symlink in
+ <filename>/etc</filename> with the same name as a rules file in
+ <filename>/lib</filename>, pointing to <filename>/dev/null</filename>,
+ disables the rules file entirely.</para>
<para>Rule files must have the extension <filename>.rules</filename>; other
extensions are ignored.</para>
<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>
+ <para>Match the name of a 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>NAME</option></term>
<listitem>
- <para>What a network interface should be named.</para>
- <para>Also, as a temporary workaround, this is what a device node
- should be named; usually the kernel provides the defined node name or creates
- and removes the node before udev even receives any event. Changing
- the node name from the kernel's default creates inconsistencies
- and is not supported. If the kernel and NAME specify different names,
- an error is logged. udev is only expected to handle device node
- permissions and to create additional symlinks, not to change
- kernel-provided device node names. Instead of renaming a device node,
- SYMLINK should be used. However, symlink names must never conflict with
- device node names, as that would result in unpredictable behavior.</para>
+ <para>The name to use for a network interface. The name of a device node
+ can not be changed by udev, only additional symlinks can be created.</para>
</listitem>
</varlistentry>
this or a dependent device. Long running tasks need to be immediately
detached from the event process itself.</para>
<para>If no absolute path is given, the program is expected to live in
- the directory provided at compile-time to configure via --libexecdir
- (this is usually <filename>/lib/udev</filename>), otherwise the absolute
- path must be specified. The program name and following arguments are
- separated by spaces. Single quotes can be used to specify arguments with
- spaces.</para>
+ /usr/lib/udev, otherwise the absolute path must be specified. The program
+ name and following arguments are separated by spaces. Single quotes can
+ be used to specify arguments with spaces.</para>
</listitem>
</varlistentry>
<listitem>
<para>Apply the permissions specified in this rule to the static device node with
the specified name. Static device nodes might be provided by kernel modules
- or copied from <filename>/lib/udev/devices</filename>. These nodes might not have
+ or copied from <filename>/usr/lib/udev/devices</filename>. These nodes might not have
a corresponding kernel device at the time udevd is started; they can trigger
automatic kernel module loading.</para>
</listitem>
<varlistentry>
<term><option>$name</option></term>
<listitem>
- <para>The current name of the device node. If not changed by a rule, it is the
+ <para>The current name of the device. If not changed by a rule, it is the
name of the kernel device.</para>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
- <term><option>$tempnode</option>, <option>%N</option></term>
+ <term><option>$devnode</option>, <option>%N</option></term>
<listitem>
- <para>The name of a temporary device node created to provide access to
- the device from a external program before the real node is created.</para>
+ <para>The name of the device node.</para>
</listitem>
</varlistentry>