X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev.8;h=37b3b625e7da8c2751fc5fb133ff25305773a030;hp=079d15f4d13c02ab2adddc709b42da90addd3aa0;hb=bbd063b5c2aa055a707b472d4e0b1ed297d00674;hpb=cb08e0f2531f910fcd46a24b2fa0eb8049165b02 diff --git a/udev.8 b/udev.8 index 079d15f4d..37b3b625e 100644 --- a/udev.8 +++ b/udev.8 @@ -27,25 +27,87 @@ On device removal, .B udev queries the internal database for the name of the device file to be deleted. .SH "CONFIGURATION" +All .B udev -expects its configuration at -.I /etc/udev/udev.config. -The file consists of a set of lines. All empty lines and -lines beginning with a '#' will be ignored. +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 -Every line defines 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 is used. +.P +A sample \fIudev.conf\fP 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. 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 .sp -.RE where valid methods with corresponding keys are: .TP +.B CALLOUT +calling external program, that returns a string to match +.br +keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP +.TP .B LABEL device label or serial number, like USB serial number, SCSI UUID or file system label @@ -66,14 +128,15 @@ keys: \fBBUS\fP, \fBPLACE\fP string replacement of the kernel device name .br key: \fBKERNEL_NAME\fP -.TP -.B CALLOUT -calling external program, that returns a string to match -.br -keys: \fBBUS\fP, \fBPROGRAM\fP, \fBID\fP .P -The name field supports simple printf-like string subtitution: -.RS +The methods are applied in the following order: +.BR CALLOUT ", " LABEL ", " NUMBER ", " TOPOLOGY ", " REPLACE "." +.P +The +.B NAME +and +.B PROGRAM +fields support simple printf-like string substitution: .TP .B %n the "kernel number" of the device @@ -87,11 +150,22 @@ the kernel minor number for the device .TP .B %b the bus id for the device -.RE +.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 'disk' .P -A sample \fIudev.conf\fP might look like this: +A sample \fIudev.rules\fP 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" @@ -104,37 +178,59 @@ TOPOLOGY, BUS="usb", PLACE="2.3", NAME="mouse1" # ttyUSB1 should always be called pda REPLACE, KERNEL="ttyUSB1", NAME="pda" -# 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 webcams to be called webcam0, webcam1, ... LABEL, BUS="usb", model="WebCam Version 3", NAME="webcam%n" .fi .P Permissions and ownership for the created device files may specified at -.I /etc/udev/udev.permissions. -The file consists of a set of lines. All empty lines and -lines beginning with a '#' will be ignored. +.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 -Every line lists a device name followed by numeric owner, group and permission -mode. All values are separated by colons. The name field may end with a -wildcard to apply the values to a whole class of devices. +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. .sp A sample \fIudev.permissions\fP might look like this: .sp .nf #name:user:group:mode +input/*:root:root:644 ttyUSB1:0:8:0660 -video*:500:500: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 @@ -147,4 +243,5 @@ web site. .SH AUTHORS .B udev was developed by Greg Kroah-Hartman with much help from -Dan Stekloff and many others. +Dan Stekloff , Kay Sievers , and +many others.