X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev.8;h=680587a270c2d829a862a4bbe40bdce9ada58e3c;hb=fc238cffafab6518564ebfefaece5d24a8423daa;hp=21ec908b8213861f7436ba68c917db7bc9b86bf1;hpb=758f236fd1385fc7d95c719ec03e4e22ef205bf8;p=elogind.git diff --git a/udev.8 b/udev.8 index 21ec908b8..680587a27 100644 --- a/udev.8 +++ b/udev.8 @@ -13,7 +13,7 @@ signifies the connection or disconnection of a device. .B DEVPATH The sysfs devpath of the device without the mountpoint but a leading slash. .P -Additional optional environment variables are: +Additional optional environment variables: .TP .B UDEV_CONFIG_FILE Overrides the default location of the @@ -23,14 +23,25 @@ config file. .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 +is to wait until all the sysfs files of the device chain are populated. If set, .B udev -will will continue, regardless of the state of the device representation. +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 -creates or removes device node files usually located in the /dev directory. -It provides a dynamic device directory that contains only the files for -devices that are actually present. +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 @@ -41,8 +52,8 @@ 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. +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 @@ -53,27 +64,27 @@ queries its database for the name of the device file to be deleted. All .B udev configuration files consist of a set of lines of text. All empty -lines, and lines beginning with a '#' will be ignored. +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 that allow the user to -override default udev values. The current set of variables that can be -overridden in this file is: +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 -This is the where in the filesystem to place the device nodes. The default -value for this is +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 for this is +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 +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 @@ -88,33 +99,33 @@ If a directory is specified, the whole directory is scanned for files ending wit 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 +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 that have no explicit match in the -permissions file. The default value for this is +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 that have no explicit match in the -permissions file. The default value for this is +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 that have no explicit match in the -permissions file. The default value for this is +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 in the filesystem to place the device nodes +# 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 - 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 @@ -127,40 +138,39 @@ 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 - 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 that have no -# explicit match in the permissions file +# 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 that have no -# explicit match in the permissions file +# 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 at +The rules for udev to use when naming devices may specified in .I /etc/udev/udev.rules -or specified by the +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 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. +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 -The line format is: +Every rule consists of a list of comma separated fields: .sp -.I key,[key,...] name [, symlink] +.IR "key " ,[ "key " ,...] " name " [, " symlink" ] .sp -where keys are: +where fields are: .TP .B BUS Match the bus type of the device. @@ -178,7 +188,10 @@ Match the topological position on bus, like physical port of USB device .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. +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. @@ -186,23 +199,43 @@ The environment variables of .B udev are also available for the program. .br -The string returned by the program may additionally matched with the +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 used in any following rule after a +call. This key may be used in any following rule after a .B PROGRAM call. -.P -The +.TP .B NAME -field given with the attribute +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 } -will create all 15 partitions of a blockdevice. +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: @@ -224,16 +257,18 @@ The kernel minor number for the device. The bus id for the device. .TP .B %c -The +The string returned from the execution of .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 } +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. @@ -254,7 +289,7 @@ 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 +# 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 @@ -270,9 +305,9 @@ KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld" BUS="usb", SYSFS{model}="XV3", NAME="video%n", SYMLINK="webcam%n" .fi .P -Permissions and ownership for the created device files may specified at +Permissions and ownership for the created device files may specified in .I /etc/udev/udev.permissions -or specified by the +or by the .I udev_permission value in the .I /etc/udev/udev.conf @@ -292,6 +327,17 @@ 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 @@ -306,12 +352,34 @@ 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. +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"