.B udev
queries the internal database for the name of the device file to be deleted.
.SH "CONFIGURATION"
+All
.B udev
-expects its configuration at
-.I /etc/udev/udev.config.
-The file consists of a set of lines. All empty lines and
-lines beginning with a '#' will be ignored.
+configuration files consist of a set of lines of text. All empty
+lines, and lines beginning with a '#' will be ignored.
+.P
+
+.B udev
+expects its main configuration file at
+.I /etc/udev/udev.conf.
+The file consists of a set of variables and values that allow the user to
+override default udev values. The current set of variables that can be
+overridden in this file is:
+.TP
+.B udev_root
+This is the where in the filesystem to place the device nodes. The default
+value for this is
+.I /udev/
+.TP
+.B udev_db
+The name and location of the udev database. The default value for this is
+.I /udev/.udev.tdb
+.TP
+.B udev_rules
+This is the location of the udev rules file. The default value for this is
+.I /etc/udev/udev.rules
+.TP
+.B udev_permissions
+This is the location of the udev permission file. The default value for this is
+.I /etc/udev/udev.permissions
+.TP
+.B default_mode
+This is the default mode for all nodes that have no explicit match in the
+permissions file. The default value for this is
+.I 0666
.br
-Every line defines the mapping between device attributes and the device file
-name. It starts with a keyword defining the method used to match, followed by
-one ore more keys to compare and the filename for the device. If no matching
-configuration is found, the default kernel device name is used.
+.P
+A sample \fIudev.conf\fP might look like this:
+.sp
+.nf
+# udev_root - where in the filesystem to place the device nodes
+udev_root="/udev/"
+
+# udev_db - The name and location of the udev database.
+udev_db="/udev/.udev.tdb"
+
+# udev_rules - The name and location of the udev rules file
+udev_rules="/etc/udev/udev.rules"
+
+# udev_permissions - The name and location of the udev permission file
+udev_permissions="/etc/udev/udev.permissions"
+
+# default_mode - set the default mode for all nodes that have no
+# explicit match in the permissions file
+default_mode="0666"
+.fi
+.P
+The rules for udev to use when naming devices may specified at
+.I /etc/udev/udev.rules
+or specified by the
+.I udev_rules
+value in the
+.I /etc/udev/udev.conf
+file.
+.P
+Every line in the rules file define the mapping between device attributes and
+the device file name. It starts with a keyword defining the method used to
+match, followed by one ore more keys to compare and the filename for the
+device. If no matching configuration is found, the default kernel device name
+is used.
.P
The line format is:
-.RS
.sp
.I method, key,[key,...] name
.sp
-.RE
where valid methods with corresponding keys are:
.TP
+.B CALLOUT
+calling external program, that returns a string to match
+.br
+keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP
+.TP
.B LABEL
device label or serial number, like USB serial number, SCSI UUID or
file system label
string replacement of the kernel device name
.br
key: \fBKERNEL_NAME\fP
-.TP
-.B CALLOUT
-calling external program, that returns a string to match
-.br
-keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP
.P
-The name field supports simple printf-like string subtitution:
-.RS
+The methods are applied in the following order:
+.BR CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "."
+.P
+The
+.B NAME
+and
+.B PROGRAM
+fields support simple printf-like string substitution:
.TP
.B %n
the "kernel number" of the device
.TP
.B %b
the bus id for the device
-.RE
+.TP
+.B %c
+the CALLOUT program returned string
+(this does not work within the PROGRAM field for the obvious reason.)
+.TP
+.B %D
+Use the devfs style disk name for this device.
+For partitions, this will result in 'part%n'
+If this is not a partition, it will result in 'disk'
.P
-A sample \fIudev.conf\fP might look like this:
+A sample \fIudev.rules\fP might look like this:
.sp
.nf
+# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
+CALLOUT, BUS="scsi", PROGRAM="/sbin/scsi_id", ID="OEM 0815", NAME="disk1"
+
# USB printer to be called lp_color
LABEL, BUS="usb", serial="W09090207101241330", NAME="lp_color"
# ttyUSB1 should always be called pda
REPLACE, KERNEL="ttyUSB1", NAME="pda"
-# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
-CALLOUT, BUS="scsi", PROGRAM="/sbin/scsi_id", ID="OEM 0815", NAME="disk1"
-
# USB webcams to be called webcam0, webcam1, ...
LABEL, BUS="usb", model="WebCam Version 3", NAME="webcam%n"
.fi
.P
Permissions and ownership for the created device files may specified at
-.I /etc/udev/udev.permissions.
-The file consists of a set of lines. All empty lines and
-lines beginning with a '#' will be ignored.
+.I /etc/udev/udev.permissions
+or specified by the
+.I udev_permission
+value in the
+.I /etc/udev/udev.conf
+file.
+.br
+Every line lists a device name followed by owner, group and permission
+mode. All values are separated by colons. The name field may contain a
+pattern to apply the values to a whole class of devices.
.br
-Every line lists a device name followed by numeric owner, group and permission
-mode. All values are separated by colons. The name field may end with a
-wildcard to apply the values to a whole class of devices.
+If
+.B udev
+was built using klibc or is used before the user database is accessible (e.g.
+.B initrd
+), only numeric owner and group values may be used.
.sp
A sample \fIudev.permissions\fP might look like this:
.sp
.nf
#name:user:group:mode
+input/*:root:root:644
ttyUSB1:0:8:0660
-video*:500:500:0660
+video*:root:video:0660
dsp1:::0666
.fi
-
+.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 zero, one, or more characters.
+.TP
+.B ?
+Matches any single character, but does not match zero 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
+following the '[' is a '!' then any character not enclosed is matched.
.SH "FILES"
.nf
.ft B
.ft
/sbin/udev udev program
-/etc/udev/* udev config and database files
+/etc/udev/* udev config files
/etc/hotplug.d/default/udev.hotplug hotplug symlink to udev program
.fi
.LP
.SH AUTHORS
.B udev
was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
-Dan Stekloff <dsteklof@us.ibm.com> and many others.
+Dan Stekloff <dsteklof@us.ibm.com>, Kay Sievers <kay.sievers@vrfy.org>, and
+many others.