chiark / gitweb /
udev hwdb: Support shipping pre-compiled database in system images
[elogind.git] / man / udevadm.xml
index 455ce80ca9c69840bd073fcbe5963856d5cf2581..b85d9a9249733aa7e6b709b8ac99de0836396097 100644 (file)
@@ -6,13 +6,20 @@
 <refentry id="udevadm">
   <refentryinfo>
     <title>udevadm</title>
-    <productname>udev</productname>
+    <productname>systemd</productname>
+    <authorgroup>
+      <author>
+        <contrib>Developer</contrib>
+        <firstname>Kay</firstname>
+        <surname>Sievers</surname>
+        <email>kay@vrfy.org</email>
+      </author>
+    </authorgroup>
   </refentryinfo>
 
   <refmeta>
     <refentrytitle>udevadm</refentrytitle>
     <manvolnum>8</manvolnum>
-    <refmiscinfo class="version"></refmiscinfo>
   </refmeta>
 
   <refnamediv>
@@ -41,6 +48,9 @@
     <cmdsynopsis>
       <command>udevadm monitor <optional>options</optional></command>
     </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm hwdb <optional>options</optional></command>
+    </cmdsynopsis>
     <cmdsynopsis>
       <command>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></command>
     </cmdsynopsis>
   </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>systemd-udevd</command>, requests kernel events, manages
+    the event queue, and provides simple debugging mechanisms.</para>
   </refsect1>
 
   <refsect1><title>OPTIONS</title>
@@ -60,7 +71,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>
@@ -70,6 +81,7 @@
         </listitem>
       </varlistentry>
       <varlistentry>
+        <term><option>-h</option></term>
         <term><option>--help</option></term>
         <listitem>
           <para>Print help text.</para>
       </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>The udev root directory: <filename>/dev</filename>. If used in conjunction
-            with a <command>name</command> or <command>symlink</command> query, the
-            query returns the absolute path including the root directory.</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term><option>--run</option></term>
-          <listitem>
-            <para>The udev runtime directory: <filename>/run/udev</filename>.</para>
+            <para>Print absolute paths in <command>name</command> or <command>symlink</command>
+            query.</para>
           </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
           </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>
           </listitem>
         </varlistentry>
         <varlistentry>
+          <term><option>-h</option></term>
           <term><option>--help</option></term>
           <listitem>
             <para>Print help text.</para>
       <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>.
           </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>
       <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>
       <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>
+            <para>Signal and wait for systemd-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
+            <para>Set the internal log level of systemd-udevd. Valid values are the numerical
             syslog priorities or their textual representations: <option>err</option>,
             <option>info</option> and <option>debug</option>.</para>
           </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
+            <para>Signal systemd-udevd to stop executing new events. Incoming events
             will be queued.</para>
           </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>
+            <para>Signal systemd-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
+            <para>Signal systemd-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.</para>
           </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
+            <para>Set the maximum number of events, systemd-udevd will handle at the
             same time.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
           <term><option>--timeout=</option><replaceable>seconds</replaceable></term>
           <listitem>
-            <para>The maximum number seconds to wait for a reply from udevd.</para>
+            <para>The maximum number of seconds to wait for a reply from systemd-udevd.</para>
           </listitem>
         </varlistentry>
         <varlistentry>
+          <term><option>-h</option></term>
           <term><option>--help</option></term>
           <listitem>
             <para>Print help text.</para>
       </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>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+
+    <refsect2><title>udevadm hwdb <optional>options</optional></title>
+      <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/,
+            /etc/udev/hwdb.d/ and store it in <filename>/etc/udev/hwdb.bin</filename>. 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.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--usr</option></term>
+          <listitem>
+            <para>Put the compiled database into <filename>/usr/lib/udev/hwdb.bin</filename> instead.
+            Use this if you want to ship a pre-compiled database in immutable system images, or
+            don't use <filename>/etc/udev/hwdb.d</filename> and want to avoid large binary files in
+            <filename>/etc</filename>.</para>
+          </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
+            retrieved properties.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>-r</option></term>
+          <term><option>--root=<replaceable>string</replaceable></option></term>
+          <listitem>
+            <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>
       <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>
       </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>
     </refsect2>
   </refsect1>
 
-  <refsect1><title>Author</title>
-    <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-  </refsect1>
-
   <refsect1>
     <title>See Also</title>
     <para><citerefentry>
         <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-    </citerefentry>
+    </citerefentry>,
     <citerefentry>
-        <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
+        <refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum>
     </citerefentry></para>
   </refsect1>
 </refentry>