From 96fe7e83d4ef7b1f3df997c90413792bcc263649 Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Fri, 31 Oct 2014 20:12:39 -0400 Subject: [PATCH] man: ship pre-build man pages This addresses https://github.com/gentoo/eudev/issues/98 Signed-off-by: Anthony G. Basile --- .gitignore | 4 - autogen.sh | 3 + man/Makefile.am | 27 +-- man/make.sh | 18 ++ man/udev.7 | 573 ++++++++++++++++++++++++++++++++++++++++++++++++ man/udev.conf.5 | 60 +++++ man/udevadm.8 | 399 +++++++++++++++++++++++++++++++++ man/udevd.8 | 124 +++++++++++ 8 files changed, 1178 insertions(+), 30 deletions(-) create mode 100755 man/make.sh create mode 100644 man/udev.7 create mode 100644 man/udev.conf.5 create mode 100644 man/udevadm.8 create mode 100644 man/udevd.8 diff --git a/.gitignore b/.gitignore index 031b36aa4..d64c40a1d 100644 --- a/.gitignore +++ b/.gitignore @@ -48,10 +48,6 @@ docs/libudev/libudev.prerequisites docs/libudev/libudev.signals docs/libudev/html/ docs/libudev/xml/ -man/udev.7 -man/udev.conf.5 -man/udevd.8 -man/udevadm.8 rule_generator/write_cd_rules rule_generator/write_net_rules diff --git a/autogen.sh b/autogen.sh index 6d65bb2a0..98fec1624 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,3 +1,6 @@ #!/bin/sh autoreconf -f -i + +cd man +./make.sh diff --git a/man/Makefile.am b/man/Makefile.am index ea8d98237..4d7b45f19 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -18,30 +18,5 @@ MANPAGES = \ udevd.8 \ udevadm.8 -man_MANS = \ +dist_man_MANS = \ $(MANPAGES) - -CLEANFILES = \ - $(MANPAGES) - -XSLTPROC_FLAGS += \ - --stringparam man.output.quietly 1 \ - --stringparam funcsynopsis.style ansi \ - --stringparam man.th.extra1.suppress 1 \ - --stringparam man.authors.section.enabled 0 \ - --stringparam man.copyright.section.enabled 0 - -XSLTPROC_PROCESS_MAN = \ - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< - -udev.7: udev.xml - $(XSLTPROC_PROCESS_MAN) - -udev.conf.5: udev.conf.xml - $(XSLTPROC_PROCESS_MAN) - -udevd.8: udevd.xml - $(XSLTPROC_PROCESS_MAN) - -udevadm.8: udevadm.xml - $(XSLTPROC_PROCESS_MAN) diff --git a/man/make.sh b/man/make.sh new file mode 100755 index 000000000..4e2299e33 --- /dev/null +++ b/man/make.sh @@ -0,0 +1,18 @@ +#/bin/sh + +XSLTPROC="/usr/bin/xsltproc" + +XSLTPROC_FLAGS="--stringparam man.output.quietly 1 \ +--stringparam funcsynopsis.style ansi \ +--stringparam man.th.extra1.suppress 1 \ +--stringparam man.authors.section.enabled 0 \ +--stringparam man.copyright.section.enabled 0" + +xslt_proc() { + $XSLTPROC -o $1.$2 $XSLTPROC_FLAGS http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $1.xml +} + +xslt_proc udev 7 +xslt_proc udev.conf 5 +xslt_proc udevd 8 +xslt_proc udevadm 8 diff --git a/man/udev.7 b/man/udev.7 new file mode 100644 index 000000000..8b6e90208 --- /dev/null +++ b/man/udev.7 @@ -0,0 +1,573 @@ +'\" t +.\" Title: udev +.\" Author: Greg Kroah-Hartmann +.\" Generator: DocBook XSL Stylesheets v1.78.0 +.\" Date: 10/31/2014 +.\" Manual: udev +.\" Source: udev +.\" Language: English +.\" +.TH "UDEV" "7" "" "udev" "udev" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +udev \- Dynamic device management +.SH "DESCRIPTION" +.PP +udev supplies the system software with device events, manages permissions of device nodes and may create additional symlinks in the +/dev +directory, or renames network interfaces\&. The kernel usually just assigns unpredictable device names based on the order of discovery\&. Meaningful symlinks or network device names provide a way to reliably identify devices based on their properties or current configuration\&. +.PP +The udev daemon, +\fBudevd\fR(8), receives device uevents directly from the kernel whenever a device is added or removed from the system, or it changes its state\&. When udev receives a device event, it matches its configured set of rules against various device attributes to identify the device\&. Rules that match may provide additional device information to be stored in the udev database or to be used to create meaningful symlink names\&. +.PP +All device information udev processes is stored in the udev database and sent out to possible event subscribers\&. Access to all stored data and the event sources is provided by the library libudev\&. +.SH "RULES FILES" +.PP +The udev rules are read from the files located in the system rules directory +/lib/udev/rules\&.d, the volatile runtime directory +/run/udev/rules\&.d +and the local administration directory +/etc/udev/rules\&.d\&. All rules files are collectively sorted and processed in lexical order, regardless of the directories in which they live\&. However, files with identical filenames replace each other\&. Files in +/etc +have the highest priority, files in +/run +take precedence over files with the same name in +/lib\&. This can be used to override a system\-supplied rules file with a local file if needed; a symlink in +/etc +with the same name as a rules file in +/lib, pointing to +/dev/null, disables the rules file entirely\&. Rule files must have the extension +\&.rules; other extensions are ignored\&. +.PP +Every line in the rules file contains at least one key\-value pair\&. Except for empty lines or lines beginning with +#, which are ignored\&. There are two kinds of keys: match and assignment\&. If all match keys match against their values, the rule gets applied and the assignment keys get the specified values assigned\&. +.PP +A matching rule may rename a network interface, add symlinks pointing to the device node, or run a specified program as part of the event handling\&. +.PP +A rule consists of a comma\-separated list of one or more key\-value pairs\&. Each key has a distinct operation, depending on the used operator\&. Valid operators are: +.PP +== +.RS 4 +Compare for equality\&. +.RE +.PP +!= +.RS 4 +Compare for inequality\&. +.RE +.PP += +.RS 4 +Assign a value to a key\&. Keys that represent a list are reset and only this single value is assigned\&. +.RE +.PP ++= +.RS 4 +Add the value to a key that holds a list of entries\&. +.RE +.PP +\-= +.RS 4 +Remove the value from a key that holds a list of entries\&. +.RE +.PP +:= +.RS 4 +Assign a value to a key finally; disallow any later changes\&. +.RE +.PP +The following key names can be used to match against device properties\&. Some of the keys also match against properties of the parent devices in sysfs, not only the device that has generated the event\&. If multiple keys that match a parent device are specified in a single rule, all these keys must match at one and the same parent device\&. +.PP +\fIACTION\fR +.RS 4 +Match the name of the event action\&. +.RE +.PP +\fIDEVPATH\fR +.RS 4 +Match the devpath of the event device\&. +.RE +.PP +\fIKERNEL\fR +.RS 4 +Match the name of the event device\&. +.RE +.PP +\fINAME\fR +.RS 4 +Match the name of a network interface\&. It can be used once the NAME key has been set in one of the preceding rules\&. +.RE +.PP +\fISYMLINK\fR +.RS 4 +Match the name of a symlink targeting the node\&. It can be used once a SYMLINK key has been set in one of the preceding rules\&. There may be multiple symlinks; only one needs to match\&. +.RE +.PP +\fISUBSYSTEM\fR +.RS 4 +Match the subsystem of the event device\&. +.RE +.PP +\fIDRIVER\fR +.RS 4 +Match the driver name of the event device\&. Only set this key for devices which are bound to a driver at the time the event is generated\&. +.RE +.PP +\fIATTR{\fR\fI\fIfilename\fR\fR\fI}\fR +.RS 4 +Match sysfs attribute values of the event device\&. Trailing whitespace in the attribute values is ignored unless the specified match value itself contains trailing whitespace\&. +.RE +.PP +\fIKERNELS\fR +.RS 4 +Search the devpath upwards for a matching device name\&. +.RE +.PP +\fISUBSYSTEMS\fR +.RS 4 +Search the devpath upwards for a matching device subsystem name\&. +.RE +.PP +\fIDRIVERS\fR +.RS 4 +Search the devpath upwards for a matching device driver name\&. +.RE +.PP +\fIATTRS{\fR\fI\fIfilename\fR\fR\fI}\fR +.RS 4 +Search the devpath upwards for a device with matching sysfs attribute values\&. If multiple +\fIATTRS\fR +matches are specified, all of them must match on the same device\&. Trailing whitespace in the attribute values is ignored unless the specified match value itself contains trailing whitespace\&. +.RE +.PP +\fITAGS\fR +.RS 4 +Search the devpath upwards for a device with matching tag\&. +.RE +.PP +\fIENV{\fR\fI\fIkey\fR\fR\fI}\fR +.RS 4 +Match against a device property value\&. +.RE +.PP +\fITAG\fR +.RS 4 +Match against a device tag\&. +.RE +.PP +\fITEST{\fR\fI\fIoctal mode mask\fR\fR\fI}\fR +.RS 4 +Test the existence of a file\&. An octal mode mask can be specified if needed\&. +.RE +.PP +\fIPROGRAM\fR +.RS 4 +Execute a program to determine whether there is a match; the key is true if the program returns successfully\&. The device properties are made available to the executed program in the environment\&. The program\*(Aqs standard output is available in the +\fIRESULT\fR +key\&. +.sp +This can only be used for very short\-running foreground tasks\&. For details, see +\fIRUN\fR\&. +.RE +.PP +\fIRESULT\fR +.RS 4 +Match the returned string of the last +\fIPROGRAM\fR +call\&. This key can be used in the same or in any later rule after a +\fIPROGRAM\fR +call\&. +.RE +.PP +Most of the fields support shell glob pattern matching and alternate patterns\&. The following special characters are supported: +.PP +* +.RS 4 +Matches zero or more characters\&. +.RE +.PP +? +.RS 4 +Matches any single character\&. +.RE +.PP +[] +.RS 4 +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 via the +\- +character\&. For example, to match on the range of all digits, the pattern +[0\-9] +could be used\&. If the first character following the +[ +is a +!, any characters not enclosed are matched\&. +.RE +.PP +| +.RS 4 +Separates alternative patterns\&. For example, the pattern string +abc|x* +would match either +abc +or +x*\&. +.RE +.PP +The following keys can get values assigned: +.PP +\fINAME\fR +.RS 4 +The name to use for a network interface\&. The name of a device node cannot be changed by udev, only additional symlinks can be created\&. +.RE +.PP +\fISYMLINK\fR +.RS 4 +The name of a symlink targeting the node\&. Every matching rule adds this value to the list of symlinks to be created\&. +.sp +The set of characters to name a symlink is limited\&. Allowed characters are +0\-9A\-Za\-z#+\-\&.:=@_/, valid UTF\-8 character sequences, and +\ex00 +hex encoding\&. All other characters are replaced by a +_ +character\&. +.sp +Multiple symlinks may be specified by separating the names by the space character\&. In case multiple devices claim the same name, the link always points to the device with the highest link_priority\&. If the current device goes away, the links are re\-evaluated and the device with the next highest link_priority becomes the owner of the link\&. If no link_priority is specified, the order of the devices (and which one of them owns the link) is undefined\&. +.sp +Symlink names must never conflict with the kernel\*(Aqs default device node names, as that would result in unpredictable behavior\&. +.RE +.PP +\fIOWNER\fR, \fIGROUP\fR, \fIMODE\fR +.RS 4 +The permissions for the device node\&. Every specified value overrides the compiled\-in default value\&. +.RE +.PP +\fISECLABEL{\fR\fI\fImodule\fR\fR\fI}\fR +.RS 4 +Applies the specified Linux Security Module label to the device node\&. +.RE +.PP +\fIATTR{\fR\fI\fIkey\fR\fR\fI}\fR +.RS 4 +The value that should be written to a sysfs attribute of the event device\&. +.RE +.PP +\fIENV{\fR\fI\fIkey\fR\fR\fI}\fR +.RS 4 +Set a device property value\&. Property names with a leading +\&. +are neither stored in the database nor exported to events or external tools (run by, for example, the +\fIPROGRAM\fR +match key)\&. +.RE +.PP +\fITAG\fR +.RS 4 +Attach a tag to a device\&. This is used to filter events for users of libudev\*(Aqs monitor functionality, or to enumerate a group of tagged devices\&. The implementation can only work efficiently if only a few tags are attached to a device\&. It is only meant to be used in contexts with specific device filter requirements, and not as a general\-purpose flag\&. Excessive use might result in inefficient event handling\&. +.RE +.PP +\fIRUN{\fR\fI\fItype\fR\fR\fI}\fR +.RS 4 +Add a program to the list of programs to be executed after processing all the rules for a specific event, depending on +type: +.PP +program +.RS 4 +Execute an external program specified as the assigned value\&. If no absolute path is given, the program is expected to live in +/lib/udev, otherwise, the absolute path must be specified\&. +.sp +This is the default if no +\fItype\fR +is specified\&. +.RE +.PP +builtin +.RS 4 +As +\fIprogram\fR, but use one of the built\-in programs rather than an external one\&. +.RE +.sp +The program name and following arguments are separated by spaces\&. Single quotes can be used to specify arguments with spaces\&. +.sp +This can only be used for very short\-running foreground tasks\&. Running an event process for a long period of time may block all further events for this or a dependent device\&. +.sp +Starting daemons or other long\-running processes is not appropriate for udev; the forked processes, detached or not, will be unconditionally killed after the event handling has finished\&. +.RE +.PP +\fILABEL\fR +.RS 4 +A named label to which a +\fIGOTO\fR +may jump\&. +.RE +.PP +\fIGOTO\fR +.RS 4 +Jumps to the next +\fILABEL\fR +with a matching name\&. +.RE +.PP +\fIIMPORT{\fR\fI\fItype\fR\fR\fI}\fR +.RS 4 +Import a set of variables as device properties, depending on +type: +.PP +program +.RS 4 +Execute an external program specified as the assigned value and import its output, which must be in environment key format\&. Path specification, command/argument separation, and quoting work like in +\fIRUN\fR\&. +.RE +.PP +builtin +.RS 4 +Similar to +program, but use one of the built\-in programs rather than an external one\&. +.RE +.PP +file +.RS 4 +Import a text file specified as the assigned value, the content of which must be in environment key format\&. +.RE +.PP +db +.RS 4 +Import a single property specified as the assigned value from the current device database\&. This works only if the database is already populated by an earlier event\&. +.RE +.PP +cmdline +.RS 4 +Import a single property from the kernel command line\&. For simple flags the value of the property is set to +1\&. +.RE +.PP +parent +.RS 4 +Import the stored keys from the parent device by reading the database entry of the parent device\&. The value assigned to +\fBIMPORT{parent}\fR +is used as a filter of key names to import (with the same shell glob pattern matching used for comparisons)\&. +.RE +.sp +This can only be used for very short\-running foreground tasks\&. For details see +\fBRUN\fR\&. +.RE +.PP +\fIWAIT_FOR\fR +.RS 4 +Wait for a file to become available or until a timeout of 10 seconds expires\&. The path is relative to the sysfs device; if no path is specified, this waits for an attribute to appear\&. +.RE +.PP +\fIOPTIONS\fR +.RS 4 +Rule and device options: +.PP +\fBlink_priority=\fR\fB\fIvalue\fR\fR +.RS 4 +Specify the priority of the created symlinks\&. Devices with higher priorities overwrite existing symlinks of other devices\&. The default is 0\&. +.RE +.PP +\fBstring_escape=\fR\fB\fInone|replace\fR\fR +.RS 4 +Usually control and other possibly unsafe characters are replaced in strings used for device naming\&. The mode of replacement can be specified with this option\&. +.RE +.PP +\fBstatic_node=\fR +.RS 4 +Apply the permissions specified in this rule to the static device node with the specified name\&. Static device node creation can be requested by kernel modules\&. These nodes might not have a corresponding kernel device at the time udevd is started; they can trigger automatic kernel module loading\&. +.RE +.PP +\fBwatch\fR +.RS 4 +Watch the device node with inotify; when the node is closed after being opened for writing, a change uevent is synthesized\&. +.RE +.PP +\fBnowatch\fR +.RS 4 +Disable the watching of a device node with inotify\&. +.RE +.RE +.PP +The +\fINAME\fR, +\fISYMLINK\fR, +\fIPROGRAM\fR, +\fIOWNER\fR, +\fIGROUP\fR, +\fIMODE\fR, and +\fIRUN\fR +fields support simple string substitutions\&. The +\fIRUN\fR +substitutions are performed after all rules have been processed, right before the program is executed, allowing for the use of device properties set by earlier matching rules\&. For all other fields, substitutions are performed while the individual rule is being processed\&. The available substitutions are: +.PP +\fB$kernel\fR, \fB%k\fR +.RS 4 +The kernel name for this device\&. +.RE +.PP +\fB$number\fR, \fB%n\fR +.RS 4 +The kernel number for this device\&. For example, +sda3 +has kernel number +3\&. +.RE +.PP +\fB$devpath\fR, \fB%p\fR +.RS 4 +The devpath of the device\&. +.RE +.PP +\fB$id\fR, \fB%b\fR +.RS 4 +The name of the device matched while searching the devpath upwards for +\fBSUBSYSTEMS\fR, +\fBKERNELS\fR, +\fBDRIVERS\fR, and +\fBATTRS\fR\&. +.RE +.PP +\fB$driver\fR +.RS 4 +The driver name of the device matched while searching the devpath upwards for +\fBSUBSYSTEMS\fR, +\fBKERNELS\fR, +\fBDRIVERS\fR, and +\fBATTRS\fR\&. +.RE +.PP +\fB$attr{\fR\fB\fIfile\fR\fR\fB}\fR, \fB%s{\fR\fB\fIfile\fR\fR\fB}\fR +.RS 4 +The value of a sysfs attribute found at the device where all keys of the rule have matched\&. If the matching device does not have such an attribute, and a previous +\fBKERNELS\fR, +\fBSUBSYSTEMS\fR, +\fBDRIVERS\fR, or +\fBATTRS\fR +test selected a parent device, then the attribute from that parent device is used\&. +.sp +If the attribute is a symlink, the last element of the symlink target is returned as the value\&. +.RE +.PP +\fB$env{\fR\fB\fIkey\fR\fR\fB}\fR, \fB%E{\fR\fB\fIkey\fR\fR\fB}\fR +.RS 4 +A device property value\&. +.RE +.PP +\fB$major\fR, \fB%M\fR +.RS 4 +The kernel major number for the device\&. +.RE +.PP +\fB$minor\fR, \fB%m\fR +.RS 4 +The kernel minor number for the device\&. +.RE +.PP +\fB$result\fR, \fB%c\fR +.RS 4 +The string returned by the external program requested with +\fIPROGRAM\fR\&. A single part of the string, separated by a space character, may be selected by specifying the part number as an attribute: +%c{N}\&. If the number is followed by the ++ +character, this part plus all remaining parts of the result string are substituted: +%c{N+}\&. +.RE +.PP +\fB$parent\fR, \fB%P\fR +.RS 4 +The node name of the parent device\&. +.RE +.PP +\fB$name\fR +.RS 4 +The current name of the device\&. If not changed by a rule, it is the name of the kernel device\&. +.RE +.PP +\fB$links\fR +.RS 4 +A space\-separated list of the current symlinks\&. The value is only set during a remove event or if an earlier rule assigned a value\&. +.RE +.PP +\fB$root\fR, \fB%r\fR +.RS 4 +The udev_root value\&. +.RE +.PP +\fB$sys\fR, \fB%S\fR +.RS 4 +The sysfs mount point\&. +.RE +.PP +\fB$devnode\fR, \fB%N\fR +.RS 4 +The name of the device node\&. +.RE +.PP +\fB%%\fR +.RS 4 +The +% +character itself\&. +.RE +.PP +\fB$$\fR +.RS 4 +The +$ +character itself\&. +.RE +.SH "HARDWARE DATABASE FILES" +.PP +The hwdb files are read from the files located in the system hwdb directory +/lib/udev/hwdb\&.d, the volatile runtime directory +/run/udev/hwdb\&.d +and the local administration directory +/etc/udev/hwdb\&.d\&. All hwdb files are collectively sorted and processed in lexical order, regardless of the directories in which they live\&. However, files with identical filenames replace each other\&. Files in +/etc +have the highest priority, files in +/run +take precedence over files with the same name in +/lib\&. This can be used to override an hwdb file with a local file if needed; a symlink in +/etc +with the same name as a hwdb file in +/lib, pointing to +/dev/null, disables the hwdb file entirely\&. hwdb files must have the extension +\&.hwdb; other extensions are ignored\&. +.PP +The hwdb file contains data records consisting of matches and associated key\-value pairs\&. Every record in the hwdb starts with one or more match string, specifying a shell glob to compare the database lookup string against\&. Multiple match lines are specified in additional consecutive lines\&. Every match line is compared indivdually, they are combined by OR\&. Every match line must start at the first character of the line\&. +.PP +The match lines are followed by one or more key\-value pair lines, which are recognized by a leading space character\&. The key name and value are separated by +=\&. An empty line signifies the end of a record\&. Lines beginning with +# +are ignored\&. +.PP +The content of all hwdb files is read by +\fBudevadm\fR(8) +and compiled to a binary database located at +/etc/udev/hwdb\&.bin\&. During runtime only the binary database is used\&. +.SH "SEE ALSO" +.PP + +\fBudevd\fR(8), +\fBudevadm\fR(8) diff --git a/man/udev.conf.5 b/man/udev.conf.5 new file mode 100644 index 000000000..76d2499da --- /dev/null +++ b/man/udev.conf.5 @@ -0,0 +1,60 @@ +'\" t +.\" Title: udev.conf +.\" Author: Kay Sievers +.\" Generator: DocBook XSL Stylesheets v1.78.0 +.\" Date: 10/31/2014 +.\" Manual: udev.conf +.\" Source: systemd +.\" Language: English +.\" +.TH "UDEV\&.CONF" "5" "" "systemd" "udev.conf" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +udev.conf \- Configuration for device event managing daemon +.SH "SYNOPSIS" +.PP +/etc/udev/udev\&.conf +.SH "DESCRIPTION" +.PP + +\fBsystemd-udevd\fR(8) +expects its main configuration file at +/etc/udev/udev\&.conf\&. It consists of a set of variables allowing the user to override default udev values\&. All empty lines or lines beginning with \*(Aq#\*(Aq are ignored\&. The following variables can be set: +.PP +\fIudev_log\fR +.RS 4 +The logging priority\&. Valid values are the numerical syslog priorities or their textual representations: +\fBerr\fR, +\fBinfo\fR +and +\fBdebug\fR\&. +.RE +.PP +In addition, +systemd\-udevd +can be configured by command\-line options and the kernel commandline (see +\fBsystemd-udevd\fR(8))\&. +.SH "SEE ALSO" +.PP + +\fBsystemd-udevd\fR(8), +\fBudev\fR(7), +\fBudevadm\fR(8) diff --git a/man/udevadm.8 b/man/udevadm.8 new file mode 100644 index 000000000..637098b25 --- /dev/null +++ b/man/udevadm.8 @@ -0,0 +1,399 @@ +'\" t +.\" Title: udevadm +.\" Author: Kay Sievers +.\" Generator: DocBook XSL Stylesheets v1.78.0 +.\" Date: 10/31/2014 +.\" Manual: udevadm +.\" Source: systemd +.\" Language: English +.\" +.TH "UDEVADM" "8" "" "systemd" "udevadm" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +udevadm \- udev management tool +.SH "SYNOPSIS" +.HP \w'\fBudevadm\fR\ 'u +\fBudevadm\fR [\fB\-\-debug\fR] [\fB\-\-version\fR] [\fB\-\-help\fR] +.HP \w'\fBudevadm\ info\ \fR\fB\fIoptions\fR\fR\ 'u +\fBudevadm info \fR\fB\fIoptions\fR\fR +.HP \w'\fBudevadm\ trigger\ \fR\fB[options]\fR\ 'u +\fBudevadm trigger \fR\fB[options]\fR +.HP \w'\fBudevadm\ settle\ \fR\fB[options]\fR\ 'u +\fBudevadm settle \fR\fB[options]\fR +.HP \w'\fBudevadm\ control\ \fR\fB\fIcommand\fR\fR\ 'u +\fBudevadm control \fR\fB\fIcommand\fR\fR +.HP \w'\fBudevadm\ monitor\ \fR\fB[options]\fR\ 'u +\fBudevadm monitor \fR\fB[options]\fR +.HP \w'\fBudevadm\ hwdb\ \fR\fB[options]\fR\ 'u +\fBudevadm hwdb \fR\fB[options]\fR +.HP \w'\fBudevadm\ test\ \fR\fB[options]\fR\fB\ \fR\fB\fIdevpath\fR\fR\ 'u +\fBudevadm test \fR\fB[options]\fR\fB \fR\fB\fIdevpath\fR\fR +.HP \w'\fBudevadm\ test\-builtin\ \fR\fB[options]\fR\fB\ \fR\fB\fIcommand\fR\fR\fB\ \fR\fB\fIdevpath\fR\fR\ 'u +\fBudevadm test\-builtin \fR\fB[options]\fR\fB \fR\fB\fIcommand\fR\fR\fB \fR\fB\fIdevpath\fR\fR +.SH "DESCRIPTION" +.PP +\fBudevadm\fR +expects a command and command specific options\&. It controls the runtime behavior of +\fBudev\fR, requests kernel events, manages the event queue, and provides simple debugging mechanisms\&. +.SH "OPTIONS" +.PP +\fB\-\-debug\fR +.RS 4 +Print debug messages to standard error\&. +.RE +.PP +\fB\-\-version\fR +.RS 4 +Print version number\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm info [\fIOPTIONS\fR] [\fIDEVPATH\fR|\fIFILE\fR]" +.PP +Queries the udev database for device information stored in the udev database\&. It can also query the properties of a device from its sysfs representation to help creating udev rules that match this device\&. +.PP +\fB\-q\fR, \fB\-\-query=\fR\fB\fITYPE\fR\fR +.RS 4 +Query the database for the specified type of device data\&. It needs the +\fB\-\-path\fR +or +\fB\-\-name\fR +to identify the specified device\&. Valid +\fITYPE\fRs are: +\fBname\fR, +\fBsymlink\fR, +\fBpath\fR, +\fBproperty\fR, +\fBall\fR\&. +.RE +.PP +\fB\-p\fR, \fB\-\-path=\fR\fB\fIDEVPATH\fR\fR +.RS 4 +The +/sys +path of the device to query, e\&.g\&. +[/sys]/class/block/sda\&. Note that this option usually is not very useful, since +\fBudev\fR +can guess the type of the argument, so +\fBudevadm \-\-devpath=/class/block/sda\fR +is equivalent to +\fBudevadm /sys/class/block/sda\fR\&. +.RE +.PP +\fB\-n\fR, \fB\-\-name=\fR\fB\fIFILE\fR\fR +.RS 4 +The name of the device node or a symlink to query, e\&.g\&. +[/dev]/sda\&. Note that this option usually is not very useful, since +\fBudev\fR +can guess the type of the argument, so +\fBudevadm \-\-name=sda\fR +is equivalent to +\fBudevadm /dev/sda\fR\&. +.RE +.PP +\fB\-r\fR, \fB\-\-root\fR +.RS 4 +Print absolute paths in +\fBname\fR +or +\fBsymlink\fR +query\&. +.RE +.PP +\fB\-a\fR, \fB\-\-attribute\-walk\fR +.RS 4 +Print all sysfs properties of the specified device that can be used in udev rules to match the specified device\&. It prints all devices along the chain, up to the root of sysfs that can be used in udev rules\&. +.RE +.PP +\fB\-x\fR, \fB\-\-export\fR +.RS 4 +Print output as key/value pairs\&. Values are enclosed in single quotes\&. +.RE +.PP +\fB\-P\fR, \fB\-\-export\-prefix=\fR\fB\fINAME\fR\fR +.RS 4 +Add a prefix to the key name of exported values\&. +.RE +.PP +\fB\-d\fR, \fB\-\-device\-id\-of\-file=\fR\fB\fIFILE\fR\fR +.RS 4 +Print major/minor numbers of the underlying device, where the file lives on\&. +.RE +.PP +\fB\-e\fR, \fB\-\-export\-db\fR +.RS 4 +Export the content of the udev database\&. +.RE +.PP +\fB\-c\fR, \fB\-\-cleanup\-db\fR +.RS 4 +Cleanup the udev database\&. +.RE +.PP +\fB\-\-version\fR +.RS 4 +Print version\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm trigger [options]" +.PP +Request device events from the kernel\&. Primarily used to replay events at system coldplug time\&. +.PP +\fB\-v\fR, \fB\-\-verbose\fR +.RS 4 +Print the list of devices which will be triggered\&. +.RE +.PP +\fB\-n\fR, \fB\-\-dry\-run\fR +.RS 4 +Do not actually trigger the event\&. +.RE +.PP +\fB\-t\fR, \fB\-\-type=\fR\fB\fITYPE\fR\fR +.RS 4 +Trigger a specific type of devices\&. Valid types are: +\fBdevices\fR, +\fBsubsystems\fR\&. The default value is +\fBdevices\fR\&. +.RE +.PP +\fB\-c\fR, \fB\-\-action=\fR\fB\fIACTION\fR\fR +.RS 4 +Type of event to be triggered\&. The default value is +\fBchange\fR\&. +.RE +.PP +\fB\-s\fR, \fB\-\-subsystem\-match=\fR\fB\fISUBSYSTEM\fR\fR +.RS 4 +Trigger events for devices which belong to a matching subsystem\&. This option can be specified multiple times and supports shell style pattern matching\&. +.RE +.PP +\fB\-S\fR, \fB\-\-subsystem\-nomatch=\fR\fB\fISUBSYSTEM\fR\fR +.RS 4 +Do not trigger events for devices which belong to a matching subsystem\&. This option can be specified multiple times and supports shell style pattern matching\&. +.RE +.PP +\fB\-a\fR, \fB\-\-attr\-match=\fR\fB\fIATTRIBUTE\fR\fR\fB=\fR\fB\fIVALUE\fR\fR +.RS 4 +Trigger events for devices with a matching sysfs attribute\&. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\&. If no value is specified, the existence of the sysfs attribute is checked\&. This option can be specified multiple times\&. +.RE +.PP +\fB\-A\fR, \fB\-\-attr\-nomatch=\fR\fB\fIATTRIBUTE\fR\fR\fB=\fR\fB\fIVALUE\fR\fR +.RS 4 +Do not trigger events for devices with a matching sysfs attribute\&. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\&. If no value is specified, the existence of the sysfs attribute is checked\&. This option can be specified multiple times\&. +.RE +.PP +\fB\-p\fR, \fB\-\-property\-match=\fR\fB\fIPROPERTY\fR\fR\fB=\fR\fB\fIVALUE\fR\fR +.RS 4 +Trigger events for devices with a matching property value\&. This option can be specified multiple times and supports shell style pattern matching\&. +.RE +.PP +\fB\-g\fR, \fB\-\-tag\-match=\fR\fB\fIPROPERTY\fR\fR +.RS 4 +Trigger events for devices with a matching tag\&. This option can be specified multiple times\&. +.RE +.PP +\fB\-y\fR, \fB\-\-sysname\-match=\fR\fB\fINAME\fR\fR +.RS 4 +Trigger events for devices with a matching sys device name\&. This option can be specified multiple times and supports shell style pattern matching\&. +.RE +.PP +\fB\-b\fR, \fB\-\-parent\-match=\fR\fB\fISYSPATH\fR\fR +.RS 4 +Trigger events for all children of a given device\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm settle [options]" +.PP +Watches the udev event queue, and exits if all current events are handled\&. +.PP +\fB\-t\fR, \fB\-\-timeout=\fR\fB\fISECONDS\fR\fR +.RS 4 +Maximum number of seconds to wait for the event queue to become empty\&. The default value is 120 seconds\&. A value of 0 will check if the queue is empty and always return immediately\&. +.RE +.PP +\fB\-E\fR, \fB\-\-exit\-if\-exists=\fR\fB\fIFILE\fR\fR +.RS 4 +Stop waiting if file exists\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm control \fIcommand\fR" +.PP +Modify the internal state of the running udev daemon\&. +.PP +\fB\-x\fR, \fB\-\-exit\fR +.RS 4 +Signal and wait for udevd to exit\&. +.RE +.PP +\fB\-l\fR, \fB\-\-log\-priority=\fR\fB\fIvalue\fR\fR +.RS 4 +Set the internal log level of udevd\&. Valid values are the numerical syslog priorities or their textual representations: +\fBerr\fR, +\fBinfo\fR +and +\fBdebug\fR\&. +.RE +.PP +\fB\-s\fR, \fB\-\-stop\-exec\-queue\fR +.RS 4 +Signal udevd to stop executing new events\&. Incoming events will be queued\&. +.RE +.PP +\fB\-S\fR, \fB\-\-start\-exec\-queue\fR +.RS 4 +Signal udevd to enable the execution of events\&. +.RE +.PP +\fB\-R\fR, \fB\-\-reload\fR +.RS 4 +Signal udevd to reload the rules files and other databases like the kernel module index\&. Reloading rules and databases does not apply any changes to already existing devices; the new configuration will only be applied to new events\&. +.RE +.PP +\fB\-p\fR, \fB\-\-property=\fR\fB\fIKEY\fR\fR\fB=\fR\fB\fIvalue\fR\fR +.RS 4 +Set a global property for all events\&. +.RE +.PP +\fB\-m\fR, \fB\-\-children\-max=\fR\fIvalue\fR +.RS 4 +Set the maximum number of events, udevd will handle at the same time\&. +.RE +.PP +\fB\-\-timeout=\fR\fIseconds\fR +.RS 4 +The maximum number of seconds to wait for a reply from udevd\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm monitor [options]" +.PP +Listens to the kernel uevents and events sent out by a udev rule and prints the devpath of the event to the console\&. It can be used to analyze the event timing, by comparing the timestamps of the kernel uevent and the udev event\&. +.PP +\fB\-k\fR, \fB\-\-kernel\fR +.RS 4 +Print the kernel uevents\&. +.RE +.PP +\fB\-u\fR, \fB\-\-udev\fR +.RS 4 +Print the udev event after the rule processing\&. +.RE +.PP +\fB\-p\fR, \fB\-\-property\fR +.RS 4 +Also print the properties of the event\&. +.RE +.PP +\fB\-s\fR, \fB\-\-subsystem\-match=\fR\fB\fIstring[/string]\fR\fR +.RS 4 +Filter events by subsystem[/devtype]\&. Only udev events with a matching subsystem value will pass\&. +.RE +.PP +\fB\-t\fR, \fB\-\-tag\-match=\fR\fB\fIstring\fR\fR +.RS 4 +Filter events by property\&. Only udev events with a given tag attached will pass\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm hwdb [options]" +.PP +Maintain the hardware database index in +/etc/udev/hwdb\&.bin\&. +.PP +\fB\-u\fR, \fB\-\-update\fR +.RS 4 +Compile the hardware database information located in /usr/lib/udev/hwdb\&.d/, /etc/udev/hwdb\&.d/ and store it in +/etc/udev/hwdb\&.bin\&. This should be done after any update to the source files; it will not be called automatically\&. The running udev daemon will detect a new database on its own and does not need to be notified about it\&. +.RE +.PP +\fB\-t\fR, \fB\-\-test=\fR\fB\fIstring\fR\fR +.RS 4 +Query the database with a modalias string, and print the retrieved properties\&. +.RE +.PP +\fB\-r\fR, \fB\-\-root=\fR\fB\fIstring\fR\fR +.RS 4 +Alternative root path in the file system for reading and writing files\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm test [options] \fIdevpath\fR" +.PP +Simulate a udev event run for the given device, and print debug output\&. +.PP +\fB\-a\fR, \fB\-\-action=\fR\fB\fIstring\fR\fR +.RS 4 +The action string\&. +.RE +.PP +\fB\-N\fR, \fB\-\-resolve\-names=\fR\fB\fBearly\fR\fR\fB|\fR\fB\fBlate\fR\fR\fB|\fR\fB\fBnever\fR\fR +.RS 4 +Specify when udevadm should resolve names of users and groups\&. When set to +\fBearly\fR +(the default), names will be resolved when the rules are parsed\&. When set to +\fBlate\fR, names will be resolved for every event\&. When set to +\fBnever\fR, names will never be resolved and all devices will be owned by root\&. +.RE +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SS "udevadm test\-builtin [options] \fICOMMAND\fR \fIDEVPATH\fR" +.PP +Run a built\-in command +\fICOMMAND\fR +for device +\fIDEVPATH\fR, and print debug output\&. +.PP +\fB\-h\fR, \fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SH "SEE ALSO" +.PP +\fBudev\fR(7), +\fBudevd.service\fR(8) diff --git a/man/udevd.8 b/man/udevd.8 new file mode 100644 index 000000000..c6251de4d --- /dev/null +++ b/man/udevd.8 @@ -0,0 +1,124 @@ +'\" t +.\" Title: udevd +.\" Author: Kay Sievers +.\" Generator: DocBook XSL Stylesheets v1.78.0 +.\" Date: 10/31/2014 +.\" Manual: udevd +.\" Source: udev +.\" Language: English +.\" +.TH "UDEVD" "8" "" "udev" "udevd" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +udevd \- Device event managing daemon +.SH "SYNOPSIS" +.PP +udevd +.HP \w'\fB/sbin/udevd\fR\ 'u +\fB/sbin/udevd\fR [\fB\-\-daemon\fR] [\fB\-\-debug\fR] [\fB\-\-children\-max=\fR] [\fB\-\-exec\-delay=\fR] [\fB\-\-resolve\-names=early|late|never\fR] [\fB\-\-version\fR] [\fB\-\-help\fR] +.SH "DESCRIPTION" +.PP +\fBudevd\fR +listens to kernel uevents\&. For every event, udevd executes matching instructions specified in udev rules\&. See +\fBudev\fR(7)\&. +.PP +The behavior of the running daemon can be changed dynamically with +\fBudevadm control\fR, or configured using +\fBudev.conf\fR(5)\&. +.SH "OPTIONS" +.PP +\fB\-\-daemon\fR +.RS 4 +Detach and run in the background\&. +.RE +.PP +\fB\-\-debug\fR +.RS 4 +Print debug messages to stderr\&. +.RE +.PP +\fB\-\-children\-max=\fR +.RS 4 +Limit the number of events executed in parallel\&. +.RE +.PP +\fB\-\-exec\-delay=\fR +.RS 4 +Delay the execution of RUN instruction by the given number of seconds\&. This option might be useful when debugging system crashes during coldplug caused by loading non\-working kernel modules\&. +.RE +.PP +\fB\-\-resolve\-names=\fR +.RS 4 +Specify when udevd should resolve names of users and groups\&. When set to +\fBearly\fR +(the default) names will be resolved when the rules are parsed\&. When set to +\fBlate\fR +names will be resolved for every event\&. When set to +\fBnever\fR +names will never be resolved and all devices will be owned by root\&. +.RE +.PP +\fB\-\-version\fR +.RS 4 +Print version number\&. +.RE +.PP +\fB\-\-help\fR +.RS 4 +Print help text\&. +.RE +.SH "ENVIRONMENT" +.PP +\fI$UDEV_LOG=\fR +.RS 4 +Set the logging priority\&. +.RE +.SH "KERNEL COMMAND LINE" +.PP +Parameters starting with "rd\&." will be read when +\fBudevd\fR +is used in an initrd\&. +.PP +\fIudev\&.log\-priority=\fR, \fIrd\&.udev\&.log\-priority=\fR +.RS 4 +Set the logging priority\&. +.RE +.PP +\fIudev\&.children\-max=\fR, \fIrd\&.udev\&.children\-max=\fR +.RS 4 +Limit the number of events executed in parallel\&. +.RE +.PP +\fIudev\&.exec\-delay=\fR, \fIrd\&.udev\&.exec\-delay=\fR +.RS 4 +Delay the execution of RUN instruction by the given number of seconds\&. This option might be useful when debugging system crashes during coldplug caused by loading non\-working kernel modules\&. +.RE +.PP +\fInet\&.ifnames=\fR +.RS 4 +Network interfaces are renamed to give them predictable names when possible\&. It is enabled by default, specifying 0 disables it\&. +.RE +.SH "SEE ALSO" +.PP + +\fBudev.conf\fR(5), +\fBudev\fR(7), +\fBudevadm\fR(8)