.B udev
reads the sysfs directory of the given device to collect device attributes
like label, serial number or bus device number.
-These attributes are passed as a key to the namedev subsystem
-to receive a unique name for device file creation.
-namedev maintains a database for devices present on the system.
+These attributes are treated as a key
+to determine a unique name for device file creation.
+.B udev
+maintains a database for devices present on the system.
.br
On device removal,
.B udev
-queries the namedev database for the name of the device file to be deleted.
+queries the internal database for the name of the device file to be deleted.
.SH "CONFIGURATION"
-namedev expects its configuration at
-.I /etc/udev/namedev.config.
+.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.
.br
.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
-A sample \fInamedev.conf\fP might look like this:
+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 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'
+.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
-.I /etc/udev/namedev.permissions.
+.I /etc/udev/udev.permissions.
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 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
+.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 \fInamedev.permissions\fP might look like this:
+A sample \fIudev.permissions\fP might look like this:
.sp
.nf
#name:user:group:mode
-ttyUSB1:root:uucp:0666
+input/*:root:root:644
+ttyUSB1:0:8:0660
+video*:root:video:0660
dsp1:::0666
.fi
-
.SH "FILES"
.nf
.ft B
.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.