X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev.8;h=c78fd4a32b6a2f3f43b974c0a7dcc5d86adcb1a3;hp=e44855ba16d84610ebd9c6da99844dc26e798e51;hb=e68faf511dd9be15a27042d1828460d3655707d8;hpb=04db8c9e06986f0406f4f7cd9a2245e35dd5db9f diff --git a/udev.8 b/udev.8 index e44855ba1..c78fd4a32 100644 --- a/udev.8 +++ b/udev.8 @@ -1,26 +1,289 @@ -.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 " query_type " -p " sysfs_path "] [-drVh]" .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 may used as keys 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 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 +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 defines the mapping between device attributes +and the device file name. One ore 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 for the device node. One or more optional symlinks +targeting the node may be specified. +.br +If no matching rule is found, the default kernel device name is used. +.P +The line format is: +.sp +.I key,[key,...] name [, symlink] +.sp +where keys 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 in order to match the rule. +.TP +.B PROGRAM +Call external program. This key is valid if the program returns successful. +The string returned by the program may additionally matched with the +.B RESULT +key. +.TP +.B RESULT +Match the returned string of the last +.B PROGRAM +call. This key may used in any following rule after a +.B PROGRAM +call. +.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 +.B PROGRAM +returned string. +(This does not work within the +.B 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 +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 is to 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 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 with much help from -Dan Stekloff and many others. +.B udev +was developed by Greg Kroah-Hartman with much help from +Dan Stekloff , Kay Sievers , and +many others.