chiark / gitweb /
[PATCH] udev - drop all methods :)
[elogind.git] / udev.8
diff --git a/udev.8 b/udev.8
index bac35b091d53447c10d4d56a333c3b63408fb839..3eb4aecad27b8adbbe3f92f1709d214cb867b10c 100644 (file)
--- a/udev.8
+++ b/udev.8
@@ -3,6 +3,9 @@
 udev \- Linux configurable dynamic device naming support
 .SH SYNOPSIS
 .BI udev " hotplug-subsystem"
+.br
+.B udev
+.RI "[-q " sysfs_path "] [-rVh]"
 .SH "DESCRIPTION"
 .B udev
 creates or removes device node files usually located in the /dev directory.
@@ -18,7 +21,7 @@ On device creation,
 .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 treated as a key 
+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.
@@ -26,8 +29,31 @@ maintains a database for devices present on the system.
 On device removal,
 .B udev
 queries the internal 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.
+.TP
+.BI -q " sysfs_path"
+Query with the sysfs path as argument for the name of the created device node.
+.TP
+.B -h
+Print help text.
 .SH "CONFIGURATION"
-All udev configuration files consist of a set of lines of text.  All empty
+All
+.B udev
+configuration files consist of a set of lines of text.  All empty
 lines, and lines beginning with a '#' will be ignored.
 .P
 
@@ -61,7 +87,7 @@ permissions file.  The default value for this is
 .I 0666
 .br
 .P
-A sample \fIudev.conf\fP might look like this:
+.RI "A sample " udev.conf " might look like this:
 .sp
 .nf
 # udev_root - where in the filesystem to place the device nodes
@@ -76,108 +102,114 @@ 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 
+# 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 
+or specified by the
 .I udev_rules
-value in the 
+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
+device. One ore more optional symlinks targeting the node may be specified.
+.br
+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
+.I method, key,[key,...] name [, symlink]
 .sp
-.RE
 where valid methods with corresponding keys are:
 .TP
 .B CALLOUT
-calling external program, that returns a string to match
+calling external program, that returns a string to match.  The
+.B BUS
+key is optional, but if specified, the sysfs device bus must be able to be
+determined by a "device" symlink.
 .br
-keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP
+.RB "keys: " BUS ", " PROGRAM ", " ID
 .TP
 .B LABEL
 device label or serial number, like USB serial number, SCSI UUID or
-file system label
+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.  The
+.B BUS
+key is optional, but if specified, the sysfs device bus must be able to be
+detemined by a "device" symlink.
 .br
-keys: \fBBUS\fP, \fIsysfs_attribute\fP
+.RB "keys: " BUS ", " SYSFS_
 .TP
 .B NUMBER
 device number on the bus, like PCI bus id
 .br
-keys: \fBBUS\fP, \fBID\fP
+.RB "keys: " BUS ", " ID
 .TP
 .B TOPOLOGY
 device position on bus, like physical port of USB device
 .br
-keys: \fBBUS\fP, \fBPLACE\fP
+.RB "keys: " BUS ", " PLACE
 .TP
 .B REPLACE
 string replacement of the kernel device name
 .br
-key: \fBKERNEL_NAME\fP
+.RB "key: " KERNEL
+.TP
+.B IGNORE
+tell udev to not care about creation of this device, e.g. because the
+device is already handled by another program
+.br
+.RB "key: " KERNEL
 .P
 The methods are applied in the following order:
-.B CALLOUT
-,
-.B LABEL
-,
-.B NUMBER
-,
-.B TOPOLOGY
-,
-.B REPLACE
+.BR IGNORE ", " CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "."
 .P
-The 
-.B NAME 
-and 
-.B PROGRAM 
-fields support simple printf-like string subtitution:
-.RS
+.RB "The " NAME " ," SYMLINK " and " PROGRAM
+fields support simple printf-like string substitution:
 .TP
 .B %n
-the "kernel number" of the device
+The "kernel number" of the device.
 for example, 'sda3' has a "kernel number" of '3'
 .TP
+.B %k
+The "kernel name" for the device.
+.TP
 .B %M
-the kernel major number for the device
+The kernel major number for the device.
 .TP
 .B %m
-the kernel minor number for the device
+The kernel minor number for the device.
 .TP
 .B %b
-the bus id for the device
+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 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
+If this is not a partition, it will result in 'disc'.
 .P
-A sample \fIudev.rules\fP might look like this:
+.RI "A sample " udev.rules " 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"
+LABEL, BUS="usb", SYSFS_serial="W09090207101241330", NAME="lp_color"
+
+# SCSI disk with a specific vendor and model number is to be called boot
+LABEL, BUS="scsi", SYSFS_vendor="IBM", SYSFS_model="ST336", NAME="boot%n"
 
 # sound card with PCI bus id 00:0b.0 to be called dsp
 NUMBER, BUS="pci", ID="00:0b.0", NAME="dsp"
@@ -185,32 +217,31 @@ NUMBER, BUS="pci", ID="00:0b.0", NAME="dsp"
 # USB mouse at third port of the second hub to be called mouse1
 TOPOLOGY, BUS="usb", PLACE="2.3", NAME="mouse1"
 
-# ttyUSB1 should always be called pda
-REPLACE, KERNEL="ttyUSB1", NAME="pda"
+# ttyUSB1 should always be called pda with two additional symlinks
+REPLACE, KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld"
 
-# USB webcams to be called webcam0, webcam1, ...
-LABEL, BUS="usb", model="WebCam Version 3", NAME="webcam%n"
+# multiple USB webcams with symlinks to be called webcam0, webcam1, ...
+LABEL, BUS="usb", SYSFS_model="XV3", NAME="video%n", SYMLINK="webcam%n"
 .fi
 .P
 Permissions and ownership for the created device files may specified at
 .I /etc/udev/udev.permissions
-or specified by the 
+or specified by the
 .I udev_permission
-value in the 
+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
-wildcard to apply the values to a whole class of devices.
+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.
-.B initrd
-), only numeric owner and group values may be used.
+.BR initrd "(4)), only numeric owner and group values may be used."
 .sp
-A sample \fIudev.permissions\fP might look like this:
+.RI "A sample " udev.permissions " might look like this:"
 .sp
 .nf
 #name:user:group:mode
@@ -221,9 +252,7 @@ dsp1:::0666
 .fi
 .P
 A number of different fields in the above configuration files support a simple
-form of wildcard matching.  This form is based on the fnmatch(3) style, and
-supports the following fields:
-.RS
+form of shell style pattern matching. It supports the following pattern characters:
 .TP
 .B *
 Matches zero, one, or more characters.
@@ -235,12 +264,10 @@ Matches any single character, but does not match zero characters.
 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.
-.RE
+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 files
 /etc/hotplug.d/default/udev.hotplug  hotplug symlink to udev program