like label, serial number or bus device number.
These attributes are treated as a key
to determine a unique name for device file creation.
-udev maintains a database for devices present on the system.
+.B udev
+maintains a database for devices present on the system.
.br
On device removal,
.B udev
queries the internal database for the name of the device file to be deleted.
.SH "CONFIGURATION"
-udev expects its configuration at
+.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.
.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
+.P
+The methods are applied in the following order:
.B CALLOUT
-calling external program, that returns a string to match
-.br
-keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP
+,
+.B LABEL
+,
+.B NUMBER
+,
+.B TOPOLOGY
+,
+.B REPLACE
+.P
+The
+.B NAME
+and
+.B PROGRAM
+fields support simple printf-like string subtitution:
+.RS
+.TP
+.B %n
+the "kernel number" of the device
+for example, 'sda3' has a "kernel number" of '3'
+.TP
+.B %M
+the kernel major number for the device
+.TP
+.B %m
+the kernel minor number for the device
+.TP
+.B %b
+the bus id for the device
+.TP
+.B %c
+the CALLOUT program return value (this does not work within the PROGRAM field for the obvious reason.)
+.RE
.P
A sample \fIudev.conf\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/dev_id returns "V0815" device will be called dev0815
-CALLOUT, PROGRAM="/sbin/dev_id", BUS="pci", ID="V0815", NAME="dev0815"
+# 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
The file consists of a set of lines. All empty lines and
lines beginning with a '#' will be ignored.
.br
-Every line lists a device name followed by owner, group and permission mode. All values are separated by colons.
+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.
+.br
+If udev was built using glibc, string owner and group names may be used.
.sp
A sample \fIudev.permissions\fP might look like this:
.sp
.nf
#name:user:group:mode
-ttyUSB1:root:uucp:0666
+ttyUSB1:0:8:0660
+video*:500:500:0660
dsp1:::0666
.fi
+.P
+If
+.B
+udev
+was built using glibc, string owner and group names may be used.
.SH "FILES"
.nf
.I http://linux-hotplug.sourceforge.net/
web site.
.SH AUTHORS
-udev was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
+.B udev
+was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
Dan Stekloff <dsteklof@us.ibm.com> and many others.