subsystem,
.B udev
is executed if a kernel device is added or removed from the system.
-On device creation,
+A list of rules is used to match against specific device attributes.
+.br
+On device addition,
.B udev
-reads the sysfs directory of the given device to collect device attributes
-like label, serial number or bus device number.
-These attributes may be used as keys to determine a
-unique name for the device.
+matches its configured rules against the available device attributes to
+uniquely name the device.
.B udev
-maintains a database for devices present on the system.
+maintains its own database for devices present on the system. This database
+can be queried for the relationship of the kernel device path and the
+name of the device file.
.br
On device removal,
.B udev
queries its database for the name of the device file to be deleted.
+.br
+After the device node handling, a list of collected programs specific to this
+device is executed.
.SH "CONFIGURATION"
All
.B udev
.sp
.IR "key " ,[ "key " ,...]
.P
+Each key has the following format:
+.sp
+.IR "name op value"
+.P
+There are distinct key operation types, depending on the type of the key, it
+does a comparison or an assignment.
+.P
+Comparison operators are:
+.TP
+.B ==
+Compare for equality.
+.TP
+.B !=
+Compare for non-equality.
+.P
+Assignment operators are:
+.TP
+.B +=
+Add the value to a key that holds a list of entries.
+.TP
+.B :=
+Assign a value to a key finally; disallow any later changes, which
+is useful to prevent changes by any later rules.
+.TP
+.B =
+Asign a value to a key. Keys that represent a list, are reset and only this
+single value is assigned. While this operator still works inplicitely as
+comparison on keys that can't get a value assigned, its usage as an comparison
+operator is deprecated.
+.P
The following key names can be used to match against device properties:
.TP
.B BUS
.TP
.B NAME
The name of the node to be created, or the name, the network interface
-should be renamed to.
+should be renamed to. Only one rule can set the a name, all later rules
+with a NAME key will be ignored.
.TP
.B SYMLINK
-The name of a symlink targeting the node. Multiple symlinks may be
-specified by separating the names by the space character.
-.br
-If both the name and the symlink fields are omitted or its
-values are empty, the device will be ignored and no node will be created.
-.br
-If only the symlink field is given and the name field is omitted,
-the rule will not be applied immediately, but the symlink field is added
-to the symlink list of the rule which will create the node.
-This makes it possible to specify additional symlinks in a possibly
-separate rules file, while the device nodes are maintained by the
-distribution provided rules file.
+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.
.TP
.B OWNER, GROUP, MODE
The permissions for the device node. Every specified value overwrites the
.TP
.B OPTIONS
.B last_rule
-will be the last rule applied. No later rules will have any effect.
+stops further rules application. No later rules will have any effect.
.sp
.B ignore_device
-will ignore this device. No node will be created.
+will ignore this device. No node will be created or program executed.
.sp
.B ignore_remove
will ignore any later remove event for this device.
.B %%
The '%' character itself.
.P
-The count of charcters to insert may be limited by specifying
+The count of characters to insert may be limited by specifying
the format length value. For example, '%3s{file}' will only insert
the first three characters of the sysfs attribute.
.P
.P
After device node creation, removal, or network device renaming,
.B udev
-executes the programs located in the directory tree under
-.IR /etc/dev.d/ .
-The name of a program must have the suffix
-.I .dev
-to be recognized.
+executes the programs specified by the
+.B RUN
+key.
.br
In addition to the kernel provided hotplug environment variables,
.B UDEV_LOG
Executed programs may want to follow that setting.
.B DEVNAME
is exported to make the name of the created node, or the name the network
-device is renamed to, available to the executed program. The programs in every
-directory are sorted in lexical order, while the directories are searched in
-the following order:
-.sp
-.nf
-/etc/dev.d/$(DEVNAME)/*.dev
-/etc/dev.d/$(SUBSYSTEM)/*.dev
-/etc/dev.d/default/*.dev
-.fi
+device is renamed to, available to the executed programs.
.SH "ENVIRONMENT"
.P
The following variables are read from the environment:
.TP
.B UDEV_RUN
If set to "0", it disables the execution of programs added by rules.
-.TP
-.B UDEV_NO_DEVD
-The default behavior of
-.B udev
-is to execute programs in the
-.I /etc/dev.d/
-directory after device handling. If set,
-.B udev
-will skip this step.
.SH "FILES"
.nf
/sbin/udev udev program
/etc/udev/* udev config files
-/etc/dev.d/* programs invoked by udev
.fi
.SH "SEE ALSO"
.BR udevinfo (8),