summaryrefslogtreecommitdiff
path: root/udev.8.in
diff options
context:
space:
mode:
Diffstat (limited to 'udev.8.in')
-rw-r--r--udev.8.in397
1 files changed, 397 insertions, 0 deletions
diff --git a/udev.8.in b/udev.8.in
new file mode 100644
index 0000000000..680587a270
--- /dev/null
+++ b/udev.8.in
@@ -0,0 +1,397 @@
+.TH UDEV 8 "October 2003" "" "Linux Administrator's Manual"
+.SH NAME
+udev \- Linux configurable dynamic device naming support
+.SH SYNOPSIS
+.BI udev " hotplug-subsystem"
+.P
+The environment must provide the following variables:
+.TP
+.B ACTION
+.IR add " or " remove
+signifies the connection or disconnection of a device.
+.TP
+.B DEVPATH
+The sysfs devpath of the device without the mountpoint but a leading slash.
+.P
+Additional optional environment variables:
+.TP
+.B UDEV_CONFIG_FILE
+Overrides the default location of the
+.B udev
+config file.
+.TP
+.B UDEV_NO_SLEEP
+The default behavior of
+.B udev
+is to wait until all the sysfs files of the device chain are populated. If set,
+.B udev
+will continue, regardless of the state of the device representation.
+.TP
+.B UDEV_NO_DEVD
+The default behavior of
+.B udev
+is to execute programs in the
+.I /etc/dev.d/
+directory after device handling. If set,
+.B udev
+will skip this step.
+.SH "DESCRIPTION"
+.B udev
+provides a dynamic device directory containing only the files for actually
+present devices. It creates or removes device node files usually located in
+the /dev directory, or it renames network interfaces.
+.br
+
+.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 may be used as keys to determine a
+unique name for the device.
+.B udev
+maintains a database for devices present on the system.
+.br
+On device removal,
+.B udev
+queries its database for the name of the device file to be deleted.
+.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
+.IR /etc/udev/udev.conf .
+The file consists of a set of variables and values allowing the user to
+override default udev values. The following variables can be overridden
+in this file:
+.TP
+.B udev_root
+Indicates where to place the device nodes in the filesystem. The default
+value is
+.IR /udev/ .
+.TP
+.B udev_db
+The name and location of the udev database. The default value is
+.IR /udev/.udev.tdb .
+.TP
+.B udev_rules
+This is the location of the udev rules file. The default value for this is
+.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
+.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 device handled.
+The default value is
+.IR yes .
+.TP
+.B default_mode
+This is the default mode for all nodes not explicitely matching in the
+permissions file. The default value is
+.IR 0666 .
+.TP
+.B default_owner
+This is the default owner for all nodes not explicitely matching in the
+permissions file. The default value is
+.IR root .
+.TP
+.B default_group
+This is the default group for all nodes not explicitely matching in the
+permissions file. The default value is
+.IR root .
+.br
+.P
+.RI "A sample " udev.conf " might look like this:
+.sp
+.nf
+# udev_root - where to place the device nodes in the filesystem
+udev_root="/udev/"
+
+# udev_db - The name and location of the udev database
+udev_db="/udev/.udev.tdb"
+
+# 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 not
+# explicitely matching in the permissions file
+default_mode="0666"
+
+# default_owner - set the default owner for all nodes not
+# explicitely matching in the permissions file
+default_owner="root"
+
+# default_group - set the default group for all nodes not
+# explicitely matching in the permissions file
+default_group="root"
+.fi
+.P
+The rules for udev to use when naming devices may specified in
+.I /etc/udev/udev.rules
+or by the
+.I udev_rules
+value in the
+.I /etc/udev/udev.conf
+file.
+.P
+Every line in the rules file defines the mapping between device attributes
+and the device name. One or more keys are specified to match a rule with
+the current device. If all keys are matching, the rule will be applied and
+the name is used to name the device file or the network interface.
+.br
+If no matching rule is found, the default kernel device name is used.
+.P
+Every rule consists of a list of comma separated fields:
+.sp
+.IR "key " ,[ "key " ,...] " name " [, " symlink" ]
+.sp
+where fields are:
+.TP
+.B BUS
+Match the bus type of the device.
+(The sysfs device bus must be able to be determined by a "device" symlink.)
+.TP
+.B KERNEL
+Match the kernel device name.
+.TP
+.B ID
+Match the device number on the bus, like PCI bus id.
+.TP
+.B PLACE
+Match the topological position on bus, like physical port of USB device
+.TP
+.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 to match the rule.
+.br
+Trailing whitespace characters in the sysfs attribute value are ignored, if
+the key doesn't have any trailing whitespace characters by itself.
+.TP
+.B PROGRAM
+Call external program. This key is valid if the program returns successful.
+The environment variables of
+.B udev
+are also available for the program.
+.br
+The string returned by the program may be additionally matched with the
+.B RESULT
+key.
+.TP
+.B RESULT
+Match the returned string of the last
+.B PROGRAM
+call. This key may be used in any following rule after a
+.B PROGRAM
+call.
+.TP
+.B NAME
+The name of the node to be created, or the name, the network interface
+should be renamed to.
+.br
+If given with the attribute
+.BR NAME{ all_partitions }
+it will create all 15 partitions of a blockdevice.
+This may be useful for removable media devices.
+.TP
+.B SYMLINK
+The name of a symlink targeting the node. Multiple symlinks may be
+specified by separating the names by the space character.
+.br
+If both the name and the symlink fields are omitted or its
+values empty, the device will be ignored and no node will be created.
+.br
+If only the symlink field is given and the name field is omitted,
+the rule will not be applied immediatly, but the symlink field is added
+to the symlink list of the rule which will create the node.
+This makes it possible to specify additional symlinks in a possibly
+separate rules file, while the device nodes are maintained by the
+distribution provided rules file.
+.TP
+.B OWNER, GROUP, MODE
+The permissions for this device. Every specified value overwrites the value
+given in the permissions file.
+.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 string returned from the execution of
+.B PROGRAM
+(This does not work within the
+.B PROGRAM
+field for the obvious reason.)
+.br
+A single part of the string, separated by a space character
+may be selected by specifying the part number as an attribute:
+.BI %c{ N }
+If the number is followed by the + char this part plus
+all remaining parts of the result string are substituted:
+.BI %c{ N+ }
+.TP
+.BI %s{ filename }
+The content of a sysfs attribute.
+.TP
+.B %%
+The '%' character itself.
+.P
+The count of charcters to insert may be limited by specifying
+the format length value. For example, '%3s{file}' will only insert
+the first three characters of the sysfs attribute.
+.P
+.RI "A sample " udev.rules " might look like this:"
+.sp
+.nf
+# if /sbin/scsi_id returns "OEM 0815" device will be called disk1
+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"
+
+# SCSI disk with a specific vendor and model number will be called boot
+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"
+
+# USB mouse at third port of the second hub to be called mouse1
+BUS="usb", PLACE="2.3", NAME="mouse1"
+
+# ttyUSB1 should always be called pda with two additional symlinks
+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"
+.fi
+.P
+Permissions and ownership for the created device files may specified in
+.I /etc/udev/udev.permissions
+or 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.
+.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
+The value
+.I $local
+can be used instead of a specific username. In that case, udev will determine
+the current local user at the time of device node creation and substitute
+that username as the owner of the new device node. This is useful, for
+example, to let hot-plugged devices, such as cameras, be owned by the user at
+the current console. Note that if no user is currently logged in, or if udev
+otherwise fails to determine a current user, the
+.I default_owner
+value is used in lieu.
+.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 '!', any character not enclosed is matched.
+.P
+After device node creation, removal, or network device renaming,
+.B udev
+executes the programs in the directory tree under
+.IR /etc/dev.d/ .
+The name of a program must end with
+.I .dev
+suffix, to be recognized.
+.br
+In addition to the hotplug environment variables,
+.B DEVNAME
+is exported to make the name of the created node, or the name the network
+device is renamed to, available to the executed program. The programs in every
+directory are sorted in lexical order, while the directories are searched in
+the following order:
+.sp
+.nf
+/etc/dev.d/$(DEVNAME)/*.dev
+/etc/dev.d/$(SUBSYSTEM)/*.dev
+/etc/dev.d/default/*.dev
+.fi
+.SH "FILES"
+.nf
+/sbin/udev udev program
+/etc/udev/* udev config files
+/etc/hotplug.d/default/udev.hotplug hotplug symlink to udev program
+/etc/dev.d/* programs invoked by udev
+.fi
+.LP
+.SH "SEE ALSO"
+.BR udevinfo (8),
+.BR udevd (8),
+.BR hotplug (8)
+.PP
+The
+.I http://linux\-hotplug.sourceforge.net/
+web site.
+.SH AUTHORS
+.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.