<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="udevadm"
          xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>udevadm</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>udevadm</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>udevadm</refname><refpurpose>udev management tool</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>udevadm</command>
        <arg><option>--debug</option></arg>
        <arg><option>--version</option></arg>
        <arg><option>--help</option></arg>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm info <optional>options</optional> <optional>devpath</optional></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm trigger <optional>options</optional> <optional>devpath</optional></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm settle <optional>options</optional></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm control <replaceable>option</replaceable></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm monitor <optional>options</optional></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></command>
    </cmdsynopsis>
    <cmdsynopsis>
      <command>udevadm test-builtin <optional>options</optional> <replaceable>command</replaceable> <replaceable>devpath</replaceable></command>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1><title>Description</title>
    <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>
    <variablelist>
      <varlistentry>
        <term><option>-d</option></term>
        <term><option>--debug</option></term>
        <listitem>
          <para>Print debug messages to standard error. This option is implied in <command>udevadm test</command> and
          <command>udevadm test-builtin</command> commands.</para>
        </listitem>
      </varlistentry>

      <xi:include href="standard-options.xml" xpointer="help" />
    </variablelist>

    <refsect2><title>udevadm info
      <arg choice="opt"><replaceable>options</replaceable></arg>
      <arg choice="opt" rep="repeat"><replaceable>devpath</replaceable>|<replaceable>file</replaceable>|<replaceable>unit</replaceable></arg>
    </title>

      <para>Query the udev database for device information.</para>

      <para>Positional arguments should be used to specify one or more devices. Each one may be a device name
      (in which case it must start with <filename>/dev/</filename>), a sys path (in which case it must start
      with <filename>/sys/</filename>), or a systemd device unit name (in which case it must end with
      <literal>.device</literal>, see
      <citerefentry><refentrytitle>systemd.device</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
      </para>

      <variablelist>
        <varlistentry>
          <term><option>-q</option></term>
          <term><option>--query=<replaceable>TYPE</replaceable></option></term>
          <listitem>
            <para>Query the database for the specified type of device data.
            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>-p</option></term>
          <term><option>--path=<replaceable>DEVPATH</replaceable></option></term>
          <listitem>
            <para>The <filename>/sys/</filename> path of the device to query, e.g.
            <filename><optional>/sys/</optional>/class/block/sda</filename>. This option is an alternative to
            the positional argument with a <filename>/sys/</filename> prefix. <command>udevadm info
            --path=/class/block/sda</command> is equivalent to <command>udevadm info
            /sys/class/block/sda</command>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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,
            e.g. <filename><optional>/dev/</optional>/sda</filename>. This option is an alternative to the
            positional argument with a <filename>/dev/</filename> prefix. <command>udevadm info
            --name=sda</command> is equivalent to <command>udevadm info /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>
            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
            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.</para>
          </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.
            This takes effects only when <option>--query=property</option> or
            <option>--device-id-of-file=<replaceable>FILE</replaceable></option> is specified.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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.
            This implies <option>--export</option>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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.
            If this is specified, all positional arguments are ignored.</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>-w<optional>SECONDS</optional></option></term>
          <term><option>--wait-for-initialization<optional>=SECONDS</optional></option></term>
          <listitem>
            <para>Wait for device to be initialized. If argument <replaceable>SECONDS</replaceable>
            is not specified, the default is to wait forever.</para>
          </listitem>
        </varlistentry>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>

      <para>The generated output shows the current device database entry in a terse format. Each line shown
      is prefixed with one of the following characters:</para>

      <table>
        <title><command>udevadm info</command> output prefixes</title>
        <tgroup cols='2' align='left' colsep='1' rowsep='1'>
          <colspec colname="prefix" />
          <colspec colname="meaning" />
          <thead>
            <row>
              <entry>Prefix</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry><literal>P:</literal></entry>
              <entry>Device path in <filename>/sys/</filename></entry>
            </row>
            <row>
              <entry><literal>N:</literal></entry>
              <entry>Kernel device node name</entry>
            </row>
            <row>
              <entry><literal>L:</literal></entry>
              <entry>Device node symlink priority</entry>
            </row>
            <row>
              <entry><literal>S:</literal></entry>
              <entry>Device node symlink</entry>
            </row>
            <row>
              <entry><literal>E:</literal></entry>
              <entry>Device property</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </refsect2>

    <refsect2><title>udevadm trigger
      <arg choice="opt"><replaceable>options</replaceable></arg>
      <arg choice="opt"><replaceable>devpath</replaceable>|<replaceable>file</replaceable>|<replaceable>unit</replaceable></arg>
      </title>
      <para>Request device events from the kernel. Primarily used to replay events at system coldplug time.</para>

      <para>Takes device specifications as positional arguments. See the description of <command>info</command>
      above.</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>-q</option></term>
          <term><option>--quiet</option></term>
          <listitem>
            <para>Suppress error logging in triggering events.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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>.
            The default value is <command>devices</command>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-c</option></term>
          <term><option>--action=<replaceable>ACTION</replaceable></option></term>
          <listitem>
            <para>Type of event to be triggered. Possible actions are <literal>add</literal>,
            <literal>remove</literal>, <literal>change</literal>, <literal>move</literal>,
            <literal>online</literal>, <literal>offline</literal>, <literal>bind</literal>,
            and <literal>unbind</literal>. Also, the special value <literal>help</literal> can be used
            to list the possible actions. The default value is <literal>change</literal>.
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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 supports shell style pattern matching.
            When this option is specified more than once, then each matching result is ORed, that is,
            all the devices in each subsystem are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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
            supports shell style pattern matching. When this option is specified more than once,
            then each matching result is ANDed, that is, devices which do not match all specified
            subsystems are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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. When this option is specified multiple times, then each matching result is ANDed,
            that is, only devices which have all specified attributes are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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. When this option is specified multiple times, then each matching result is ANDed,
            that is, only devices which have none of the specified attributes are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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 supports shell style
            pattern matching. When this option is specified more than once, then each matching result is ORed,
            that is, devices which have one of the specified properties are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-g</option></term>
          <term><option>--tag-match=<replaceable>TAG</replaceable></option></term>
          <listitem>
            <para>Trigger events for devices with a matching tag. When this option is specified multiple times,
            then each matching result is ANDed, that is, devices which have all specified tags are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-y</option></term>
          <term><option>--sysname-match=<replaceable>NAME</replaceable></option></term>
          <listitem>
            <para>Trigger events for devices for which the last component (i.e. the filename) of the
            <filename>/sys/</filename> path matches the specified <replaceable>PATH</replaceable>. This option
            supports shell style pattern matching. When this option is specified more than once, then each
            matching result is ORed, that is, all devices which have any of the specified
            <replaceable>NAME</replaceable> are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--name-match=<replaceable>NAME</replaceable></option></term>
          <listitem>
            <para>Trigger events for devices with a matching device path. When this option is specified more than once,
            then each matching result is ORed, that is, all specified devices are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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. When this option is specified more than once,
            then each matching result is ORed, that is, all children of each specified device are triggered.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-w</option></term>
          <term><option>--settle</option></term>
          <listitem>
            <para>Apart from triggering events, also waits for those events to
            finish. Note that this is different from calling <command>udevadm
            settle</command>. <command>udevadm settle</command> waits for all
            events to finish. This option only waits for events triggered by
            the same command to finish.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--uuid</option></term>
          <listitem>
            <para>Trigger the synthetic device events, and associate a randomized UUID with each. These UUIDs
            are printed to standard output, one line for each event. These UUIDs are included in the uevent
            environment block (in the <literal>SYNTH_UUID=</literal> property) and may be used to track
            delivery of the generated events.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--wait-daemon[=<replaceable>SECONDS</replaceable>]</option></term>
          <listitem>
            <para>Before triggering uevents, wait for systemd-udevd daemon to be initialized.
            Optionally takes timeout value. Default timeout is 5 seconds. This is equivalent to invoke
            invoking <command>udevadm control --ping</command> before <command>udevadm trigger</command>.</para>
          </listitem>
        </varlistentry>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>

      <para>In addition, optional positional arguments can be used
      to specify device names or sys paths. They must start with
      <filename>/dev/</filename> or <filename>/sys/</filename>
      respectively.</para>
    </refsect2>

    <refsect2><title>udevadm settle
      <arg choice="opt"><replaceable>options</replaceable></arg>
    </title>
      <para>Watches the udev event queue, and exits if all current events are handled.</para>
      <variablelist>
        <varlistentry>
          <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. A non-zero value will return an exit
            code of 0 if queue became empty before timeout was reached,
            non-zero otherwise.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <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>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>

      <para>See
      <citerefentry><refentrytitle>systemd-udev-settle.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
      for more information.</para>
    </refsect2>

    <refsect2><title>udevadm control <replaceable>option</replaceable></title>
      <para>Modify the internal state of the running udev daemon.</para>
      <variablelist>
        <varlistentry>
          <term><option>-e</option></term>
          <term><option>--exit</option></term>
          <listitem>
            <para>Signal and wait for systemd-udevd to exit. No option except for
            <option>--timeout</option> can be specified after this option.
            Note that <filename>systemd-udevd.service</filename> contains
            <option>Restart=always</option> and so as a result, this option restarts systemd-udevd.
            If you want to stop <filename>systemd-udevd.service</filename>, please use the following:
            <programlisting>systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service</programlisting>
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-l</option></term>
          <term><option>--log-level=<replaceable>value</replaceable></option></term>
          <listitem>
            <para>Set the internal log level of
            <filename>systemd-udevd</filename>. Valid values are the
            numerical syslog priorities or their textual
            representations: <option>emerg</option>,
            <option>alert</option>, <option>crit</option>,
            <option>err</option>, <option>warning</option>,
            <option>notice</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 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 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 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, systemd-udevd will handle at the
            same time.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--ping</option></term>
          <listitem>
            <para>Send a ping message to systemd-udevd and wait for the reply. This may be useful to check that
            systemd-udevd daemon is running.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-t</option></term>
          <term><option>--timeout=</option><replaceable>seconds</replaceable></term>
          <listitem>
            <para>The maximum number of seconds to wait for a reply from systemd-udevd.</para>
          </listitem>
        </varlistentry>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>
    </refsect2>

    <refsect2><title>udevadm monitor
      <arg choice="opt"><replaceable>options</replaceable></arg>
    </title>
      <para>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.
      </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 kernel uevents and udev events by subsystem[/devtype]. Only events with a matching subsystem value will pass.
            When this option is specified more than once, then each matching result is ORed, that is, all devices in the specified
            subsystems are monitored.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-t</option></term>
          <term><option>--tag-match=<replaceable>string</replaceable></option></term>
          <listitem>
            <para>Filter udev events by tag. Only udev events with a given tag attached will pass.
            When this option is specified more than once, then each matching result is ORed, that is, devices which have one of the
            specified tags are monitored.</para>
          </listitem>
        </varlistentry>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>
    </refsect2>

    <refsect2><title>udevadm test
      <arg choice="opt"><replaceable>options</replaceable></arg>
      <arg><replaceable>devpath</replaceable></arg>
    </title>
      <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>ACTION</replaceable></option></term>
          <listitem>
            <para>Type of event to be simulated. Possible actions are <literal>add</literal>,
            <literal>remove</literal>, <literal>change</literal>, <literal>move</literal>,
            <literal>online</literal>, <literal>offline</literal>, <literal>bind</literal>,
            and <literal>unbind</literal>. Also, the special value <literal>help</literal> can be used
            to list the possible actions. The default value is <literal>add</literal>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>-N</option></term>
          <term><option>--resolve-names=<constant>early</constant>|<constant>late</constant>|<constant>never</constant></option></term>
          <listitem>
            <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>

        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>
    </refsect2>

    <refsect2><title>udevadm test-builtin
      <arg choice="opt"><replaceable>options</replaceable></arg>
      <arg><replaceable>command</replaceable></arg>
      <arg><replaceable>devpath</replaceable></arg>
    </title>
      <para>Run a built-in command <replaceable>COMMAND</replaceable>
      for device <replaceable>DEVPATH</replaceable>, and print debug
      output.</para>
      <variablelist>
        <xi:include href="standard-options.xml" xpointer="help" />
      </variablelist>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para><citerefentry>
        <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
    </citerefentry>,
    <citerefentry>
        <refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum>
    </citerefentry></para>
  </refsect1>
</refentry>
