udev \- Linux configurable dynamic device naming support
.SH SYNOPSIS
.BI udev " hotplug-subsystem"
+.P
+The environment must provide the following variables:
+.TP
+.B ACTION
+.IR add " or " remove
+signifies the connection or disconnection of a device.
+.TP
+.B DEVPATH
+The sysfs devpath of the device without the mountpoint but a leading slash.
+.P
+Additional optional environment variables are:
+.TP
+.B UDEV_CONFIG_FILE
+Overrides the default location of the
+.B udev
+config file.
+.TP
+.B UDEV_NO_SLEEP
+The default behavior of
+.B udev
+is to wait until all the sysfs files of the device chain are populated. If set
+.B udev
+will will continue, regardless of the state of the device representation.
.SH "DESCRIPTION"
.B udev
creates or removes device node files usually located in the /dev directory.
-Its goal is to provide a dynamic device directory that contains only the files
-for devices that are actually present.
+It provides a dynamic device directory that contains only the files for
+devices that are actually present.
.P
As part of the
.B hotplug
Every line in the rules file defines the mapping between device attributes
and the device file name. One ore more keys are specified to match a rule
with the current device. If all keys are matching, the rule will be applied
-and the name is used for the device node. One or more optional symlinks
-targeting the node may be specified.
+and the name is used for the device node.
.br
If no matching rule is found, the default kernel device name is used.
.P
-The line format is:
+Every rule consists of a list a comma separated fields:
.sp
-.I key,[key,...] name [, symlink]
+.IR "key " ,[ "key " ,...] " name " [, " symlink" ]
.sp
-where keys are:
+where possible fields are:
.TP
.B BUS
Match the bus type of the device.
.TP
.B PROGRAM
Call external program. This key is valid if the program returns successful.
+The environment variables of
+.B udev
+are also available for the program.
+.br
The string returned by the program may additionally matched with the
.B RESULT
key.
call. This key may used in any following rule after a
.B PROGRAM
call.
-.P
-The
+.TP
.B NAME
-field given with the attribute
+The name of the node to be created. If the name field is omitted or its
+value is empty, the device will be ignored and no node will be created.
+.br
+If given with the attribute
.BR NAME{ all_partitions }
-will create all 15 partitions of a blockdevice.
+it will create all 15 partitions of a blockdevice.
This may be useful for removable media devices.
+.TP
+.B SYMLINK
+The name of a symlink targeting the node. Multiple symlinks may be
+specified by separating the names by the space character.
.P
.RB "The " NAME " ," SYMLINK " and " PROGRAM
fields support simple printf-like string substitution:
.TP
.B %n
The "kernel number" of the device.
-for example, 'sda3' has a "kernel number" of '3'
+For example, 'sda3' has a "kernel number" of '3'.
.TP
.B %k
The "kernel name" for the device.
The content of a sysfs attribute.
.TP
.B %%
-The '%' char itself.
+The '%' character itself.
+.P
+The count of charcters 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
.RI "A sample " udev.rules " might look like this:"
.sp
dsp1:::0666
.fi
.P
+The value
+.I $local
+can be substituted for a specific username. In that case, udev will determine
+the current local user at the time of device node creation and substitute
+that username as the owner of the new device node. This is useful, for
+example, to let hot-plugged devices, such as cameras, be owned by the user at
+the current console. Note that if no user is currently logged in, or if udev
+otherwise fails to determine a current user, the
+.I default_owner
+value is used in lieu.
+.P
A number of different fields in the above configuration files support a simple
form of shell style pattern matching. It supports the following pattern characters:
.TP
.B [ ]
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
+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 '!' then any character not enclosed is matched.
.SH "FILES"
.nf
.LP
.SH "SEE ALSO"
.BR udevinfo (8),
+.BR udevd (8),
.BR hotplug (8)
.PP
The
-.I http://linux-hotplug.sourceforge.net/
+.I http://linux\-hotplug.sourceforge.net/
web site.
.SH AUTHORS
.B udev