chiark / gitweb /
[PATCH] clarify the shortcomings of %e
[elogind.git] / udev.8.in
index 581d6f4ed5417bfa64a5037404167810f1c1d961..a246efdb45fbc0ea4d4d293a396eb5c9f95c5825 100644 (file)
--- a/udev.8.in
+++ b/udev.8.in
@@ -59,22 +59,6 @@ All rule files are read in lexical order. The default value is
 The switch to enable/disable logging of udev information
 The default value is
 .IR yes .
-.TP
-.B default_mode
-The default mode for all nodes where no explicit value is given by a rule.
-The default value is
-.IR 0600 .
-.TP
-.B default_owner
-The default owner for all nodes where no explicit value is given by a rule.
-The default value is
-.IR root .
-.TP
-.B default_group
-The default group for all nodes where no explicitly value is given by a rule.
-The default value is
-.IR root .
-.br
 .P
 .RI "A sample " udev.conf " file might look like this:
 .sp
@@ -91,18 +75,6 @@ udev_rules="/etc/udev/rules.d/"
 
 # 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
-#                permissions specified
-default_mode="0666"
-
-# default_owner - set the default owner for all nodes that have no
-#                 permissions specified
-default_owner="root"
-
-# default_group - set the default group for all nodes that have no
-#                 permissions specified
-default_group="root"
 .fi
 .P
 The rules for device naming are read from the files located in the
@@ -120,11 +92,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:
-.sp
-.IR "key " ,[ "key " ,...] " name " [, " symlink" ]
+Every rule consists of a list of comma separated key value fields:
 .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.
@@ -142,51 +114,40 @@ Match the kernel driver name.
 .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
@@ -203,10 +164,29 @@ 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 default
-value specified in the config file.
+The permissions for the device node. Every specified value overwrites the
+compiled-in default value.
+.TP
+.B OPTIONS
+.B last_rule
+will be the last rule applied. No later rules will have any effect.
+.sp
+.B OPTIONS
+.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 " and " PROGRAM
+.RB "The " NAME ", " SYMLINK ", " PROGRAM ", " OWNER " and " GROUP
 fields support simple printf-like string substitutions:
 .TP
 .B %n
@@ -216,6 +196,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
@@ -239,6 +222,13 @@ 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
@@ -248,6 +238,14 @@ 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.
@@ -260,31 +258,31 @@ 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"
+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",
+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"
 .fi
 .P