chiark / gitweb /
[PATCH] add RUN key to be able to run rule based notification
[elogind.git] / udev.8.in
index 4b8691f84265ab109ad402d13753dd6bef0c3d4b..4beab0d3559e4aedd5e0d55f090e4a5615f2a8fb 100644 (file)
--- a/udev.8.in
+++ b/udev.8.in
@@ -2,7 +2,7 @@
 .SH NAME
 udev \- Linux configurable dynamic device naming support
 .SH SYNOPSIS
-.BI udev " hotplug-subsystem"
+.BI udev
 .SH "DESCRIPTION"
 .B udev
 provides a dynamic device directory containing only the files for actually
@@ -56,25 +56,28 @@ All rule files are read in lexical order. The default value is
 .IR /etc/udev/rules.d/ .
 .TP
 .B udev_log
-The switch to enable/disable logging of udev information
+The logging priority which can be set to
+.IR "err " , "info "
+or the corresponding numerical
+.BR syslog (3)
+value.
 The default value is
-.IR yes .
+.IR err .
 .P
 .RI "A sample " udev.conf " file might look like this:
 .sp
 .nf
-# udev_root - where to place the device nodes in the filesystem
-udev_root="/udev"
+# Where in the filesystem to place the device nodes
+udev_root="@udevdir@"
 
-# udev_db - The name and location of the udev database
-udev_db="/udev/.udevdb"
+# The name and location of the udev database.
+udev_db="@udevdir@/.udevdb"
 
-# udev_rules - The name of the udev rules file or directory to look
-               for files with the suffix .rules
-udev_rules="/etc/udev/rules.d/"
+# The name and location of the udev rules file(s).
+udev_rules="@configdir@/rules.d"
 
-# udev_log - set to "yes" if you want logging, else "no"
-udev_log="yes"
+# The syslog(3) priority: "err", "info", or the numerical value.
+udev_log="err"
 .fi
 .P
 The rules for device naming are read from the files located in the
@@ -92,11 +95,11 @@ 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:
+Every rule consists of a list of comma separated key value fields:
 .sp
-.IR "key " ,[ "key " ,...] " name " [, " symlink" ]
-.sp
-where fields are:
+.IR "key " ,[ "key " ,...]
+.P
+The following key names can be used to match against device properties:
 .TP
 .B BUS
 Match the bus type of the device.
@@ -108,57 +111,49 @@ Match the kernel device name.
 .B SUBSYSTEM
 Match the kernel subsystem name.
 .TP
+.B ACTION
+Match the kernel action name.
+.TP
 .B DRIVER
 Match the kernel driver 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.
+Match sysfs device attribute like vendor and product id's, USB serial number
+or the SCSI disk model number. 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
+.BI ENV{ variable }
+Match an environment variable. Up to 5 different environment variables can be
+checked, with all of the values being required to match the rule.
+.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.
+are also available to the program.
 .br
 The string returned by the program may be additionally matched with the
 .B RESULT
-key.
+key in the same or any later rule.
 .TP
 .B RESULT
 Match the returned string of the last
 .B PROGRAM
-call. This key may be used in any following rule after a
+call. This key can be used in the same or in any later rule after a
 .B PROGRAM
 call.
+.P
+The following keys can get values assigned:
 .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 }
-.B udev
-will create device nodes for all 15 partitions of a blockdevice.
-This may be useful for removable media devices.
-.br
-If given with the attribute
-.BR NAME{ ignore_remove }
-.B udev
-will ignore any later remove event for this device.
-This may be useful as a workaround for broken device drivers.
-.sp
-Multiple attributes may be separated by comma.
 .TP
 .B SYMLINK
 The name of a symlink targeting the node. Multiple symlinks may be
@@ -176,7 +171,28 @@ distribution provided rules file.
 .TP
 .B OWNER, GROUP, MODE
 The permissions for the device node. Every specified value overwrites the
-default value specified in the config file.
+compiled-in default value.
+.TP
+.B RUN
+Add a program to the list of programs to be executed for a specific device.
+.TP
+.B OPTIONS
+.B last_rule
+will be the last rule applied. No later rules will have any effect.
+.sp
+.B ignore_device
+will ignore this device. No node will be created.
+.sp
+.B ignore_remove
+will ignore any later remove event for this device.
+This may be useful as a workaround for broken device drivers.
+.sp
+.B all_partitions
+will create device nodes for all available partitions of a blockdevice.
+This may be useful for removable media devices which do not detect a media
+change.
+.sp
+Multiple attributes may be separated by comma.
 .P
 .RB "The " NAME ", " SYMLINK ", " PROGRAM ", " OWNER " and " GROUP
 fields support simple printf-like string substitutions:
@@ -188,6 +204,9 @@ For example, 'sda3' has a "kernel number" of '3'.
 .B %k
 The "kernel name" for the device.
 .TP
+.B %p
+The devpath for the device.
+.TP
 .B %M
 The kernel major number for the device.
 .TP
@@ -211,15 +230,33 @@ If the number is followed by the + char this part plus
 all remaining parts of the result string are substituted:
 .BI %c{ N+ }
 .TP
+.B %N
+The name of a created temporary device node to provide access to the
+device from a external program.
+.TP
+.B %P
+The node name of the parent device.
+.TP
 .BI %s{ filename }
 The content of a sysfs attribute.
 .TP
+.B %r
+The udev_root value.
+.TP
 .B %e
 If a device node already exists with the name, the smallest positive
 decimal integer N is substituted such that the resulting name doesn't
 match an existing device node. Otherwise nothing is substituted. This
 can be used to create compatibility symlinks and enumerate devices of
 the same type originating from different kernel subsystems.
+.sp
+Note: The use of the enumeration facility is unreliable outside of
+udevstart where the node creation is serialized and predictable.
+The returned numbers rely on the order devices are probed on the
+system. If more than one device requests an enumeration for the same
+name at the same time, it may be possible that both requests receive the
+same name back from the database. The use of enumerations in todays setups
+where device can come and go at any time is not recomended.
 .TP
 .B %%
 The '%' character itself.
@@ -232,32 +269,25 @@ the first three characters of the sysfs attribute.
 .sp
 .nf
 # if /sbin/scsi_id returns "OEM 0815", the device will be called disk1
-BUS="scsi", PROGRAM="/sbin/scsi_id", RESULT="OEM 0815", NAME="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"
+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"
+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"
+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"
+BUS=="usb", ID=="2.3", NAME="mouse1"
 
 # ttyUSB1 should always be called pda with two additional symlinks
-KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld"
+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"
-
-# grouping of optical drives from multiple kernel subsystems
-KERNEL="sr*", NAME="%k", SYMLINK="cdrom%e"
-KERNEL="scd*", NAME="%k", SYMLINK="cdrom%e"
-KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%e"
-KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom",
-  NAME="%k", SYMLINK="cdrom%e"
+BUS=="usb", SYSFS{model}=="XV3", NAME=="video%n", SYMLINK="webcam%n"
 .fi
 .P
 A number of different fields in the above configuration files support a simple
@@ -286,8 +316,9 @@ to be recognized.
 .br
 In addition to the hotplug environment variables,
 .B UDEV_LOG
-is set if udev is configured to use the syslog facility. Executed programs may
-want to follow that setting.
+is set and contains the numerical priority value, if udev is configured to use
+.BR syslog (3).
+Executed programs may want to follow that setting.
 .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
@@ -319,6 +350,12 @@ Overrides the default location of the
 .B udev
 config file.
 .TP
+.B UDEV_LOG
+Overrides the log priority specified in the config file.
+.TP
+.B UDEV_RUN
+If set to "0", it disables the execution of programs added by rules.
+.TP
 .B UDEV_NO_DEVD
 The default behavior of
 .B udev
@@ -331,7 +368,6 @@ will skip this step.
 .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
 .SH "SEE ALSO"
@@ -341,8 +377,8 @@ will skip this step.
 .PP
 .B Web resources:
 .nf
-.I http://linux\-hotplug.sourceforge.net/
 .I http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+.I http://linux\-hotplug.sourceforge.net/
 .fi
 .SH AUTHORS
 .B udev