Antworten:
$ udevadm info -q all -a /dev/sdb
ANMERKUNG: Das oben Gesagte fragt die UDEV-Datenbank nach Geräteinformationen ab, fragt info
alle Informationen ab -q all
und führt alle Attribute auf, die /sys
sich auf dieses Geräteetikett beziehen.
Auszug
--attribute-walk|-a
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.
Hier ist mein /dev/sda
Gerät.
$ udevadm info -q all -a /dev/sda | grep parent
walks up the chain of parent devices. It prints for every device
and the attributes from one single parent device.
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
looking at parent device '/devices/pci0000:00/0000:00:1f.2':
looking at parent device '/devices/pci0000:00':
Die Antwort von @sepero zeigt Informationen an, die sich nur auf das UDEV-Gerät am Blattknoten beziehen.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Meine Antwort zeigt die Attribute, wie es die gesamte /sys
Kettenhierarchie von Geräten durchläuft.
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Sie können den Unterschied zwischen diesen beiden sehen.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
HINWEIS: Ich verwende Fedora 19 mit Version 204 von udevadm
:
$ udevadm --version
204
udevadm info -q all
, nicht von udevadm info -a
. Ich denke -a
ist eine Abkürzung für -q all --attribute-walk
. Oder ist das bei deiner Version anders? Ich erinnere mich nicht an diese Änderung, aber dann habe ich Fedora seit Jahren nicht mehr benutzt (aber warum sollte eine Distribution dies patchen?).
udevadm info
bietet diese Art von Informationen.
Wenn Sie das Subsystem speziell möchten:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
Wenn Sie udev-Regeln schreiben, ist der nützlichste Befehl
udevadm info -a -n /dev/sdb
Hiermit werden Regeln ausgedruckt, mit denen Sie das Gerät in udev-Regeln abgleichen können. Der erste Block befasst sich mit dem Gerät selbst, und die nachfolgenden Blöcke befassen sich mit seinen Vorfahren in der Gerätestruktur. Der einzige Nachteil ist, dass Sie keine Schlüssel mischen können, die unterschiedlichen Vorfahren entsprechen. Zum Beispiel diesen Auszug gegeben
KERNEL=="sdb"
SUBSYSTEM=="block"
…
KERNELS=="5:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{model}=="Yoyodyne Diskinator"
…
KERNELS=="0000:00:1f.2"
SUBSYSTEMS=="pci"
DRIVERS=="ahci"
dann können Sie dieses Gerät mit SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
oder mit, SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
aber nicht mit abstimmen SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
Eine andere Möglichkeit, Informationen zur Verwendung in Regeln abzurufen, ist mit
udevadm info -q property -n /dev/sdb --export
Hiermit werden Geräteeigenschaftswerte in der Form gedruckt, die Sie wie in udev-Regeln verwenden können.KEY=VALUE
ENV{KEY}=="VALUE"
Wenn Ihr Gerät keinen /dev
Eintrag hat, können Sie /sys
stattdessen mit einem Pfad unter darauf verweisen , z
udevadm info -a -p /sys/block/sdb
(In diesem Fall kein nützliches Beispiel. Dies ist nützlich für Geräte, deren Kategorie nicht allgemein ist und unter denen /dev
noch kein Eintrag vorhanden ist.)
Wenn Sie udev-Regeln ändern, werden diese automatisch gelesen. Sie werden jedoch nur auf Geräte angewendet, die anschließend an das System angeschlossen werden. Verwenden Sie udevadm trigger
(mit Optionen, um die Anwendung auf bestimmte Geräte zu beschränken), um die neuen Regeln auf ein bereits verbundenes Gerät anzuwenden .
udevadm info -a -n /dev/sdb
?