mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
udevadm: allow to specify device by device ID
We have already exposed device ID in the output of device ID in J fields. Also sd_device_get_device_id() and sd_device_new_from_device_id() are already public. Hence, making udevadm accept device IDs may be useful. With this change, as we save several data in /run/udev with device ID, we can call udevadm something like the following: ``` udevadm info $(ls /run/udev/tags/uaccess) ``` Then, we can show all devices that has uaccess tag.
This commit is contained in:
@@ -30,12 +30,12 @@
|
||||
<cmdsynopsis>
|
||||
<command>udevadm info</command>
|
||||
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>udevadm trigger</command>
|
||||
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
<arg choice="opt" rep="repeat"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>udevadm settle</command>
|
||||
@@ -52,13 +52,13 @@
|
||||
<cmdsynopsis>
|
||||
<command>udevadm test</command>
|
||||
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>udevadm test-builtin</command>
|
||||
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>command</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
<arg choice="plain"><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
<cmdsynopsis>
|
||||
<command>udevadm verify</command>
|
||||
@@ -115,15 +115,17 @@
|
||||
<refsect2>
|
||||
<title>udevadm info
|
||||
<optional><replaceable>options</replaceable>…</optional>
|
||||
<optional><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable>…</optional>
|
||||
<optional><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable>…</optional>
|
||||
</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
|
||||
with <filename>/sys/</filename>), a device ID (such as <literal>n1</literal>, <literal>c5:1</literal>,
|
||||
or <literal>b259:1</literal>, see
|
||||
<citerefentry><refentrytitle>sd_device_get_device_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
|
||||
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>
|
||||
|
||||
@@ -427,7 +429,7 @@
|
||||
<refsect2>
|
||||
<title>udevadm trigger
|
||||
<optional><replaceable>options</replaceable>…</optional>
|
||||
<optional><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable>…</optional>
|
||||
<optional><replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable>…</optional>
|
||||
</title>
|
||||
|
||||
<para>Request device events from the kernel. Primarily used to replay events at system coldplug time.</para>
|
||||
@@ -902,7 +904,7 @@
|
||||
<refsect2>
|
||||
<title>udevadm test
|
||||
<optional><replaceable>options</replaceable>…</optional>
|
||||
<replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>unit</replaceable>
|
||||
<replaceable>devpath</replaceable>|<replaceable>syspath</replaceable>|<replaceable>id</replaceable>|<replaceable>unit</replaceable>
|
||||
</title>
|
||||
|
||||
<para>
|
||||
|
||||
@@ -1302,10 +1302,10 @@ int info_main(int argc, char *argv[], void *userdata) {
|
||||
STRV_FOREACH(p, arg_devices) {
|
||||
_cleanup_(sd_device_unrefp) sd_device *device = NULL;
|
||||
|
||||
r = find_device(*p, NULL, &device);
|
||||
r = find_device(*p, /* prefix = */ NULL, &device);
|
||||
if (r < 0) {
|
||||
if (r == -EINVAL)
|
||||
log_error_errno(r, "Bad argument \"%s\", expected an absolute path in /dev/ or /sys/ or a unit name: %m", *p);
|
||||
log_error_errno(r, "Bad argument \"%s\", expected an absolute path in /dev/ or /sys/, device ID, or a unit name: %m", *p);
|
||||
else
|
||||
log_error_errno(r, "Unknown device \"%s\": %m", *p);
|
||||
|
||||
|
||||
@@ -75,6 +75,9 @@ int find_device(const char *id, const char *prefix, sd_device **ret) {
|
||||
assert(id);
|
||||
assert(ret);
|
||||
|
||||
if (sd_device_new_from_device_id(ret, id) >= 0)
|
||||
return 0;
|
||||
|
||||
if (sd_device_new_from_path(ret, id) >= 0)
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -82,6 +82,9 @@ udevadm control --revert
|
||||
udevadm info /dev/null
|
||||
udevadm info /sys/class/net/$netdev
|
||||
udevadm info "$(systemd-escape -p --suffix device /sys/devices/virtual/net/$netdev)"
|
||||
[[ "$(udevadm info --json=short n1 | jq -r .DEVICE_ID)" == n1 ]]
|
||||
udevadm info "$(udevadm info --json=short /dev/null | jq -r .DEVICE_ID)"
|
||||
udevadm info "$(udevadm info --json=short /sys/class/net/$netdev | jq -r .DEVICE_ID)"
|
||||
udevadm info --property DEVNAME /sys/class/net/$netdev
|
||||
udevadm info --property DEVNAME --value /sys/class/net/$netdev
|
||||
udevadm info --property HELLO /sys/class/net/$netdev
|
||||
|
||||
@@ -494,28 +494,28 @@ udev.xml ./refsect1[title="Rules Files"]/refsect2[title="Keys"]/variablelist[4]/
|
||||
udev.xml ./refsect1[title="Rules Files"]/refsect2[title="Keys"]/variablelist[4]/varlistentry[term="$$"]
|
||||
udevadm.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="-d"]
|
||||
udevadm.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="-V"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-q"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-p"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-n"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-r"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-a"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-x"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-P"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-d"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-e"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-c"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-v"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-n"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-t"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-c"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-s"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-S"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-a"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-A"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-p"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-g"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-y"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|unit…\n "]/variablelist/varlistentry[term="-b"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-q"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-p"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-n"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-r"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-a"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-x"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-P"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-d"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-e"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm info\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-c"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-v"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-n"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-t"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-c"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-s"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-S"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-a"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-A"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-p"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-g"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-y"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm trigger\n options…\n devpath|syspath|id|unit…\n "]/variablelist/varlistentry[term="-b"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm settle\n options…\n "]/variablelist/varlistentry[term="-t"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm settle\n options…\n "]/variablelist/varlistentry[term="-E"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm control options…"]/variablelist/varlistentry[term="-e"]
|
||||
@@ -531,7 +531,7 @@ udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm monitor\n o
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm monitor\n options…\n "]/variablelist/varlistentry[term="-p"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm monitor\n options…\n "]/variablelist/varlistentry[term="-s"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm monitor\n options…\n "]/variablelist/varlistentry[term="-t"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm test\n options…\n devpath|syspath|unit\n "]/variablelist/varlistentry[term="-a"]
|
||||
udevadm.xml ./refsect1[title="Options"]/refsect2[title="udevadm test\n options…\n devpath|syspath|id|unit\n "]/variablelist/varlistentry[term="-a"]
|
||||
vconsole.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="KEYMAP="]
|
||||
vconsole.conf.xml ./refsect1[title="Options"]/variablelist/varlistentry[term="FONT="]
|
||||
file-hierarchy.xml ./refsect1[title="General Structure"]/variablelist/varlistentry[term="/"]
|
||||
|
||||
Reference in New Issue
Block a user