udev \- Linux configurable dynamic device naming support
.SH SYNOPSIS
.BI udev " hotplug-subsystem"
-.br
-.B udev
-.RI "[-q " query_type " -p " sysfs_path "] [-drVh]"
.SH "DESCRIPTION"
.B udev
creates or removes device node files usually located in the /dev directory.
On device removal,
.B udev
queries its database for the name of the device file to be deleted.
-.SH "OPTIONS"
-.B udev
-normally is called by
-.B hotplug
-with the subsystem as argument and various environment variables set.
-.br
-It may also called with the following options:
-.TP
-.B -V
-Print the version information.
-.TP
-.B -r
-Print the the
-.B udev_root
-directory. When used in conjunction with a query for the node name, the
-.B udev_root
-will be prepended.
-.TP
-.BI -q " query_type"
-Query the database for specified value of a created device node.
-Valid types are:
-.BR name ", " symlink ", " owner " or " group .
-.TP
-.BI -p " sysfs_path"
-Specify the sysfs path needed for the query.
-.TP
-.B -d
-Dump the whole database.
-.TP
-.B -h
-Print help text.
.SH "CONFIGURATION"
All
.B udev
.B udev
expects its main configuration file at
-.I /etc/udev/udev.conf.
+.IR /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:
.B udev_root
This is the where in the filesystem to place the device nodes. The default
value for this is
-.I /udev/
+.IR /udev/ .
.TP
.B udev_db
The name and location of the udev database. The default value for this is
-.I /udev/.udev.tdb
+.IR /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
+.IR /etc/udev/udev.rules .
+If a directory is specified, the whole directory is
+scanned for files ending with
+.I .rules
+and all rule files are read in lexical order.
.TP
.B udev_permissions
-This is the location of the udev permission file. The default value for this is
-.I /etc/udev/udev.permissions
+This is the location of the udev permission file. The default value for this is
+.IR /etc/udev/udev.permissions .
+If a directory is specified, the whole directory is scanned for files ending with
+.I .permissions
+and all permission files are read in lexical order.
+.TP
+.B udev_log
+If you want udev to log some information to the syslog for every node created or
+removed. The default value for this is
+.IR yes .
.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
+.IR 0666 .
+.TP
+.B default_owner
+This is the default owner for all nodes that have no explicit match in the
+permissions file. The default value for this is
+.IR root .
+.TP
+.B default_group
+This is the default group for all nodes that have no explicit match in the
+permissions file. The default value for this is
+.IR root .
.br
.P
.RI "A sample " udev.conf " might look like this:
# 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_rules - The location of the directory where to look for files
+ which names ending with .rules
+udev_rules="/etc/udev/"
# udev_permissions - The name and location of the udev permission file
udev_permissions="/etc/udev/udev.permissions"
+# udev_log - set to "yes" if you want logging, else "no"
+udev_log="yes"
+
# default_mode - set the default mode for all nodes that have no
# explicit match in the permissions file
default_mode="0666"
+
+# default_owner - set the default owner for all nodes that have no
+# explicit match in the permissions file
+default_owner="root"
+
+# default_group - set the default group for all nodes that have no
+# explicit match in the permissions file
+default_group="root"
.fi
.P
The rules for udev to use when naming devices may specified at
.B PLACE
Match the topological position on bus, like physical port of USB device
.TP
-.BI SYSFS_ filename
+.BI SYSFS{ filename }
Match sysfs device attribute like label, vendor, USB serial number, SCSI UUID
or file system label. Up to 5 different sysfs files can be checked, with
all of the values being required in order to match the rule.
.B PROGRAM
call.
.P
+The
+.B NAME
+field given with the attribute
+.BR NAME{ all_partitions }
+will create all 15 partitions of a blockdevice.
+This may be useful for removable media devices.
+.P
.RB "The " NAME " ," SYMLINK " and " PROGRAM
fields support simple printf-like string substitution:
.TP
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.)
+The
+.B PROGRAM
+returned string.
+(This does not work within the
+.B PROGRAM
+field for the obvious reason.)
+.br
+A single part of the string, separated by the space character
+my be selected by specifying the part number as a attribute:
+.BI %c{ part }
+.TP
+.BI %s{ filename }
+The content of a sysfs attribute.
.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 'disc'.
+.B %%
+The '%' char itself.
.P
.RI "A sample " udev.rules " might look like this:"
.sp
BUS="scsi", PROGRAM="/sbin/scsi_id", RESULT="OEM 0815", NAME="disk1"
# USB printer to be called lp_color
-BUS="usb", SYSFS_serial="W09090207101241330", NAME="lp_color"
+BUS="usb", SYSFS{serial}="W09090207101241330", NAME="lp_color"
# SCSI disk with a specific vendor and model number is to be called boot
-BUS="scsi", SYSFS_vendor="IBM", SYSFS_model="ST336", NAME="boot%n"
+BUS="scsi", SYSFS{vendor}="IBM", SYSFS{model}="ST336", NAME="boot%n"
# sound card with PCI bus id 00:0b.0 to be called dsp
BUS="pci", ID="00:0b.0", NAME="dsp"
KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld"
# multiple USB webcams with symlinks to be called webcam0, webcam1, ...
-BUS="usb", SYSFS_model="XV3", NAME="video%n", SYMLINK="webcam%n"
+BUS="usb", SYSFS{model}="XV3", NAME="video%n", SYMLINK="webcam%n"
.fi
.P
Permissions and ownership for the created device files may specified at
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
-If
-.B udev
-was built using klibc or is used before the user database is accessible (e.g.
-.BR initrd "(4)), only numeric owner and group values may be used."
.sp
.RI "A sample " udev.permissions " might look like this:"
.sp
.fi
.LP
.SH "SEE ALSO"
+.BR udevinfo (8),
.BR hotplug (8)
.PP
The