summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2014-10-31 20:12:39 -0400
committerAnthony G. Basile <blueness@gentoo.org>2014-10-31 20:12:39 -0400
commit96fe7e83d4ef7b1f3df997c90413792bcc263649 (patch)
tree945bdd7de17eae920a07293be9eae64d0c12c6e8
parent8b1eb9c754b9e9aa6d1aa892be08fb2fdf374e29 (diff)
man: ship pre-build man pages
This addresses https://github.com/gentoo/eudev/issues/98 Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-rw-r--r--.gitignore4
-rwxr-xr-xautogen.sh3
-rw-r--r--man/Makefile.am27
-rwxr-xr-xman/make.sh18
-rw-r--r--man/udev.7573
-rw-r--r--man/udev.conf.560
-rw-r--r--man/udevadm.8399
-rw-r--r--man/udevd.8124
8 files changed, 1178 insertions, 30 deletions
diff --git a/.gitignore b/.gitignore
index 031b36aa4f..d64c40a1dc 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 6d65bb2a02..98fec16244 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 ea8d982378..4d7b45f19e 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 0000000000..4e2299e33f
--- /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 0000000000..8b6e90208b
--- /dev/null
+++ b/man/udev.7
@@ -0,0 +1,573 @@
+'\" t
+.\" Title: udev
+.\" Author: Greg Kroah-Hartmann <greg@kroah.com>
+.\" Generator: DocBook XSL Stylesheets v1.78.0 <http://docbook.sf.net/>
+.\" 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 0000000000..76d2499daf
--- /dev/null
+++ b/man/udev.conf.5
@@ -0,0 +1,60 @@
+'\" t
+.\" Title: udev.conf
+.\" Author: Kay Sievers <kay@vrfy.org>
+.\" Generator: DocBook XSL Stylesheets v1.78.0 <http://docbook.sf.net/>
+.\" 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 0000000000..637098b250
--- /dev/null
+++ b/man/udevadm.8
@@ -0,0 +1,399 @@
+'\" t
+.\" Title: udevadm
+.\" Author: Kay Sievers <kay@vrfy.org>
+.\" Generator: DocBook XSL Stylesheets v1.78.0 <http://docbook.sf.net/>
+.\" 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 0000000000..c6251de4d1
--- /dev/null
+++ b/man/udevd.8
@@ -0,0 +1,124 @@
+'\" t
+.\" Title: udevd
+.\" Author: Kay Sievers <kay@vrfy.org>
+.\" Generator: DocBook XSL Stylesheets v1.78.0 <http://docbook.sf.net/>
+.\" 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)