chiark / gitweb /
[PATCH] add IGNORE rule type
[elogind.git] / udev.8
diff --git a/udev.8 b/udev.8
index e44855b..3eb4aec 100644 (file)
--- a/udev.8
+++ b/udev.8
-.TH UDEV 8 "October 2003" "" "Linux Programmer's Manual"
+.TH UDEV 8 "October 2003" "" "Linux Administrator's Manual"
 .SH NAME
-udev \- Linux dynamic device naming support
+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
-is a wonderful program whose man page has not been written yet.
+creates or removes device node files usually located in the /dev directory.
+Its goal is to provide a dynamic device directory that contains only the files
+for devices that are actually present.
+.P
+As part of the
+.B hotplug
+subsystem,
+.B udev
+is executed if a kernel device is added or removed from the system.
+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
+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 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
+.B udev
+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
+.P
+.RI "A sample " udev.conf " 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. 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:
+.sp
+.I method, key,[key,...] name [, symlink]
+.sp
+where valid methods with corresponding keys are:
+.TP
+.B CALLOUT
+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
+.RB "keys: " BUS ", " PROGRAM ", " ID
+.TP
+.B LABEL
+device label or serial number, like 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.  The
+.B BUS
+key is optional, but if specified, the sysfs device bus must be able to be
+detemined by a "device" symlink.
+.br
+.RB "keys: " BUS ", " SYSFS_
+.TP
+.B NUMBER
+device number on the bus, like PCI bus id
+.br
+.RB "keys: " BUS ", " ID
+.TP
+.B TOPOLOGY
+device position on bus, like physical port of USB device
+.br
+.RB "keys: " BUS ", " PLACE
+.TP
+.B REPLACE
+string replacement of the kernel device name
+.br
+.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:
+.BR IGNORE ", " CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "."
+.P
+.RB "The " NAME " ," SYMLINK " and " PROGRAM
+fields support simple printf-like string substitution:
+.TP
+.B %n
+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.
+.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 'disc'.
+.P
+.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", 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"
+
+# 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 with two additional symlinks
+REPLACE, KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld"
+
+# 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
+.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
+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
+.nf
+#name:user:group:mode
+input/*:root:root:644
+ttyUSB1:0:8: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 "SEE ALSO"
-.BR hotplug "(8)"
+.BR hotplug (8)
 .PP
 The
 .I http://linux-hotplug.sourceforge.net/
 web site.
 .SH AUTHORS
-udev was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
-Dan Stekloff <dsteklof@us.ibm.com> and many others.
+.B udev
+was developed by Greg Kroah-Hartman <greg@kroah.com> with much help from
+Dan Stekloff <dsteklof@us.ibm.com>, Kay Sievers <kay.sievers@vrfy.org>, and
+many others.