summaryrefslogtreecommitdiff
path: root/man/udevadm.xml
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2014-04-24 15:40:08 -0400
committerAnthony G. Basile <blueness@gentoo.org>2014-04-24 15:40:08 -0400
commit2500dbc810d8898c1359c6579715586fffa08a27 (patch)
treee24445a5829c7c4f4da6bf7652ece1acaf008b6c /man/udevadm.xml
parentdbc5e32faeca842ec5a4a07702080b3195e21d66 (diff)
udev: remove seqnum API and all assumptions about seqnums
The way the kernel namespaces have been implemented breaks assumptions udev made regarding uevent sequence numbers. Creating devices in a namespace "steals" uevents and its sequence numbers from the host. It confuses the "udevadmin settle" logic, which might block until util a timeout is reached, even when no uevent is pending. Remove any assumptions about sequence numbers and deprecate libudev's API exposing these numbers; none of that can reliably be used anymore when namespaces are involved. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'man/udevadm.xml')
-rw-r--r--man/udevadm.xml227
1 files changed, 153 insertions, 74 deletions
diff --git a/man/udevadm.xml b/man/udevadm.xml
index 51370cc4e7..1b349c6b4e 100644
--- a/man/udevadm.xml
+++ b/man/udevadm.xml
@@ -61,9 +61,10 @@
</refsynopsisdiv>
<refsect1><title>Description</title>
- <para>udevadm expects a command and command specific options. It
- controls the runtime behavior of udev, requests kernel events,
- manages the event queue, and provides simple debugging mechanisms.</para>
+ <para><command>udevadm</command> expects a command and command
+ specific options. It controls the runtime behavior of
+ <command>udev</command>, requests kernel events, manages
+ the event queue, and provides simple debugging mechanisms.</para>
</refsect1>
<refsect1><title>OPTIONS</title>
@@ -71,7 +72,7 @@
<varlistentry>
<term><option>--debug</option></term>
<listitem>
- <para>Print debug messages to stderr.</para>
+ <para>Print debug messages to standard error.</para>
</listitem>
</varlistentry>
<varlistentry>
@@ -81,6 +82,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -88,35 +90,53 @@
</varlistentry>
</variablelist>
- <refsect2><title>udevadm info <replaceable>options</replaceable></title>
+ <refsect2><title>udevadm info <optional><replaceable>OPTIONS</replaceable></optional> <optional><replaceable>DEVPATH</replaceable>|<replaceable>FILE</replaceable></optional></title>
<para>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.</para>
<variablelist>
<varlistentry>
- <term><option>--query=<replaceable>type</replaceable></option></term>
+ <term><option>-q</option></term>
+ <term><option>--query=<replaceable>TYPE</replaceable></option></term>
<listitem>
- <para>Query the database for specified type of device data. It needs the
- <option>--path</option> or <option>--name</option> to identify the specified
- device. Valid queries are:
- <command>name</command>, <command>symlink</command>, <command>path</command>,
- <command>property</command>, <command>all</command>.</para>
+ <para>Query the database for the specified type of device
+ data. It needs the <option>--path</option> or
+ <option>--name</option> to identify the specified device.
+ Valid <replaceable>TYPE</replaceable>s are:
+ <constant>name</constant>, <constant>symlink</constant>,
+ <constant>path</constant>, <constant>property</constant>,
+ <constant>all</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--path=<replaceable>devpath</replaceable></option></term>
+ <term><option>-p</option></term>
+ <term><option>--path=<replaceable>DEVPATH</replaceable></option></term>
<listitem>
- <para>The devpath of the device to query.</para>
+ <para>The <filename>/sys</filename> path of the device to
+ query, e.g.
+ <filename><optional>/sys</optional>/class/block/sda</filename>.
+ Note that this option usually is not very useful, since
+ <command>udev</command> can guess the type of the
+ argument, so <command>udevadm
+ --devpath=/class/block/sda</command> is equivalent to
+ <command>udevadm /sys/class/block/sda</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--name=<replaceable>file</replaceable></option></term>
+ <term><option>-n</option></term>
+ <term><option>--name=<replaceable>FILE</replaceable></option></term>
<listitem>
- <para>The name of the device node or a symlink to query</para>
+ <para>The name of the device node or a symlink to query,
+ e.g. <filename><optional>/dev</optional>/sda</filename>.
+ Note that this option usually is not very useful, since
+ <command>udev</command> can guess the type of the
+ argument, so <command>udevadm --name=sda</command> is
+ equivalent to <command>udevadm /dev/sda</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-r</option></term>
<term><option>--root</option></term>
<listitem>
<para>Print absolute paths in <command>name</command> or <command>symlink</command>
@@ -124,6 +144,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-a</option></term>
<term><option>--attribute-walk</option></term>
<listitem>
<para>Print all sysfs properties of the specified device that can be used
@@ -132,31 +153,36 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-x</option></term>
<term><option>--export</option></term>
<listitem>
<para>Print output as key/value pairs. Values are enclosed in single quotes.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--export-prefix=<replaceable>name</replaceable></option></term>
+ <term><option>-P</option></term>
+ <term><option>--export-prefix=<replaceable>NAME</replaceable></option></term>
<listitem>
<para>Add a prefix to the key name of exported values.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--device-id-of-file=<replaceable>file</replaceable></option></term>
+ <term><option>-d</option></term>
+ <term><option>--device-id-of-file=<replaceable>FILE</replaceable></option></term>
<listitem>
<para>Print major/minor numbers of the underlying device, where the file
lives on.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-e</option></term>
<term><option>--export-db</option></term>
<listitem>
<para>Export the content of the udev database.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-c</option></term>
<term><option>--cleanup-db</option></term>
<listitem>
<para>Cleanup the udev database.</para>
@@ -169,6 +195,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -181,19 +208,22 @@
<para>Request device events from the kernel. Primarily used to replay events at system coldplug time.</para>
<variablelist>
<varlistentry>
+ <term><option>-v</option></term>
<term><option>--verbose</option></term>
<listitem>
<para>Print the list of devices which will be triggered.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-n</option></term>
<term><option>--dry-run</option></term>
<listitem>
<para>Do not actually trigger the event.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--type=<replaceable>type</replaceable></option></term>
+ <term><option>-t</option></term>
+ <term><option>--type=<replaceable>TYPE</replaceable></option></term>
<listitem>
<para>Trigger a specific type of devices. Valid types are:
<command>devices</command>, <command>subsystems</command>.
@@ -201,68 +231,95 @@
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--action=<replaceable>action</replaceable></option></term>
+ <term><option>-c</option></term>
+ <term><option>--action=<replaceable>ACTION</replaceable></option></term>
<listitem>
- <para>Type of event to be triggered. The default value is <command>change</command>.</para>
+ <para>Type of event to be triggered. The default value is
+ <command>change</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--subsystem-match=<replaceable>subsystem</replaceable></option></term>
+ <term><option>-s</option></term>
+ <term><option>--subsystem-match=<replaceable>SUBSYSTEM</replaceable></option></term>
<listitem>
- <para>Trigger events for devices which belong to a matching subsystem. This option
- can be specified multiple times and supports shell style pattern matching.</para>
+ <para>Trigger events for devices which belong to a
+ matching subsystem. This option can be specified multiple
+ times and supports shell style pattern matching.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></term>
+ <term><option>-S</option></term>
+ <term><option>--subsystem-nomatch=<replaceable>SUBSYSTEM</replaceable></option></term>
<listitem>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--attr-match=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
+ <term><option>-a</option></term>
+ <term><option>--attr-match=<replaceable>ATTRIBUTE</replaceable>=<replaceable>VALUE</replaceable></option></term>
<listitem>
- <para>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.</para>
+ <para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--attr-nomatch=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
+ <term><option>-A</option></term>
+ <term><option>--attr-nomatch=<replaceable>ATTRIBUTE</replaceable>=<replaceable>VALUE</replaceable></option></term>
<listitem>
- <para>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.</para>
+ <para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--property-match=<replaceable>property</replaceable>=<replaceable>value</replaceable></option></term>
+ <term><option>-p</option></term>
+ <term><option>--property-match=<replaceable>PROPERTY</replaceable>=<replaceable>VALUE</replaceable></option></term>
<listitem>
- <para>Trigger events for devices with a matching property value. This option can be
- specified multiple times and supports shell style pattern matching.</para>
+ <para>Trigger events for devices with a matching property
+ value. This option can be specified multiple times and
+ supports shell style pattern matching.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--tag-match=<replaceable>property</replaceable></option></term>
+ <term><option>-g</option></term>
+ <term><option>--tag-match=<replaceable>PROPERTY</replaceable></option></term>
<listitem>
- <para>Trigger events for devices with a matching tag. This option can be
- specified multiple times.</para>
+ <para>Trigger events for devices with a matching tag. This
+ option can be specified multiple times.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--sysname-match=<replaceable>name</replaceable></option></term>
+ <term><option>-y</option></term>
+ <term><option>--sysname-match=<replaceable>NAME</replaceable></option></term>
<listitem>
- <para>Trigger events for devices with a matching sys device name. This option can be
- specified multiple times and supports shell style pattern matching.</para>
+ <para>Trigger events for devices with a matching sys
+ device name. This option can be specified multiple times
+ and supports shell style pattern matching.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--parent-match=<replaceable>syspath</replaceable></option></term>
+ <term><option>-b</option></term>
+ <term><option>--parent-match=<replaceable>SYSPATH</replaceable></option></term>
<listitem>
- <para>Trigger events for all children of a given device.</para>
+ <para>Trigger events for all children of a given
+ device.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <term><option>--help</option></term>
+ <listitem>
+ <para>Print help text.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -272,38 +329,24 @@
<para>Watches the udev event queue, and exits if all current events are handled.</para>
<variablelist>
<varlistentry>
- <term><option>--timeout=<replaceable>seconds</replaceable></option></term>
+ <term><option>-t</option></term>
+ <term><option>--timeout=<replaceable>SECONDS</replaceable></option></term>
<listitem>
- <para>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.</para>
+ <para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--seq-start=<replaceable>seqnum</replaceable></option></term>
- <listitem>
- <para>Wait only for events after the given sequence number.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--seq-end=<replaceable>seqnum</replaceable></option></term>
- <listitem>
- <para>Wait only for events before the given sequence number.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><option>--exit-if-exists=<replaceable>file</replaceable></option></term>
+ <term><option>-E</option></term>
+ <term><option>--exit-if-exists=<replaceable>FILE</replaceable></option></term>
<listitem>
<para>Stop waiting if file exists.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--quiet</option></term>
- <listitem>
- <para>Do not print any output, like the remaining queue entries when reaching the timeout.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -316,12 +359,14 @@
<para>Modify the internal state of the running udev daemon.</para>
<variablelist>
<varlistentry>
+ <term><option>-x</option></term>
<term><option>--exit</option></term>
<listitem>
<para>Signal and wait for udevd to exit.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-l</option></term>
<term><option>--log-priority=<replaceable>value</replaceable></option></term>
<listitem>
<para>Set the internal log level of udevd. Valid values are the numerical
@@ -330,6 +375,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-s</option></term>
<term><option>--stop-exec-queue</option></term>
<listitem>
<para>Signal udevd to stop executing new events. Incoming events
@@ -337,12 +383,14 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-S</option></term>
<term><option>--start-exec-queue</option></term>
<listitem>
<para>Signal udevd to enable the execution of events.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-R</option></term>
<term><option>--reload</option></term>
<listitem>
<para>Signal udevd to reload the rules files and other databases like the kernel
@@ -351,12 +399,14 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-p</option></term>
<term><option>--property=<replaceable>KEY</replaceable>=<replaceable>value</replaceable></option></term>
<listitem>
<para>Set a global property for all events.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-m</option></term>
<term><option>--children-max=</option><replaceable>value</replaceable></term>
<listitem>
<para>Set the maximum number of events, udevd will handle at the
@@ -370,6 +420,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -385,36 +436,42 @@
</para>
<variablelist>
<varlistentry>
+ <term><option>-k</option></term>
<term><option>--kernel</option></term>
<listitem>
<para>Print the kernel uevents.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-u</option></term>
<term><option>--udev</option></term>
<listitem>
<para>Print the udev event after the rule processing.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-p</option></term>
<term><option>--property</option></term>
<listitem>
<para>Also print the properties of the event.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-s</option></term>
<term><option>--subsystem-match=<replaceable>string[/string]</replaceable></option></term>
<listitem>
<para>Filter events by subsystem[/devtype]. Only udev events with a matching subsystem value will pass.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-t</option></term>
<term><option>--tag-match=<replaceable>string</replaceable></option></term>
<listitem>
<para>Filter events by property. Only udev events with a given tag attached will pass.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -427,6 +484,7 @@
<para>Maintain the hardware database index in <filename>/etc/udev/hwdb.bin</filename>.</para>
<variablelist>
<varlistentry>
+ <term><option>-u</option></term>
<term><option>--update</option></term>
<listitem>
<para>Compile the hardware database information located in /usr/lib/udev/hwdb.d/,
@@ -437,6 +495,7 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-t</option></term>
<term><option>--test=<replaceable>string</replaceable></option></term>
<listitem>
<para>Query the database with a modalias string, and print the
@@ -444,9 +503,17 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-r</option></term>
<term><option>--root=<replaceable>string</replaceable></option></term>
<listitem>
- <para>Alternative root path in the filesystem for reading and writing files.</para>
+ <para>Alternative root path in the file system for reading and writing files.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-h</option></term>
+ <term><option>--help</option></term>
+ <listitem>
+ <para>Print help text.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -456,18 +523,27 @@
<para>Simulate a udev event run for the given device, and print debug output.</para>
<variablelist>
<varlistentry>
+ <term><option>-a</option></term>
<term><option>--action=<replaceable>string</replaceable></option></term>
<listitem>
<para>The action string.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><option>--subsystem=<replaceable>string</replaceable></option></term>
+ <term><option>-N</option></term>
+ <term><option>--resolve-names=<constant>early</constant>|<constant>late</constant>|<constant>never</constant></option></term>
<listitem>
- <para>The subsystem string.</para>
+ <para>Specify when udevadm should resolve names of users
+ and groups. When set to <constant>early</constant> (the
+ default), names will be resolved when the rules are
+ parsed. When set to <constant>late</constant>, names will
+ be resolved for every event. When set to
+ <constant>never</constant>, names will never be resolved
+ and all devices will be owned by root.</para>
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -476,10 +552,13 @@
</variablelist>
</refsect2>
- <refsect2><title>udevadm test-builtin <optional>options</optional> <replaceable>command</replaceable> <replaceable>devpath</replaceable></title>
- <para>Run a built-in command for the given device, and print debug output.</para>
+ <refsect2><title>udevadm test-builtin <optional>options</optional> <replaceable>COMMAND</replaceable> <replaceable>DEVPATH</replaceable></title>
+ <para>Run a built-in command <replaceable>COMMAND</replaceable>
+ for device <replaceable>DEVPATH</replaceable>, and print debug
+ output.</para>
<variablelist>
<varlistentry>
+ <term><option>-h</option></term>
<term><option>--help</option></term>
<listitem>
<para>Print help text.</para>
@@ -493,7 +572,7 @@
<title>See Also</title>
<para><citerefentry>
<refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
- </citerefentry>
+ </citerefentry>,
<citerefentry>
<refentrytitle>udevd.service</refentrytitle><manvolnum>8</manvolnum>
</citerefentry></para>