Zum Beispiel habe ich Gerät / dev / sdb. Wie finde ich heraus, dass es sich um ein udev-Subsystem handelt?
19
$ 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 -a -n /dev/sdb
?udevadm info -q all
, nicht vonudevadm 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:
Wenn Sie udev-Regeln schreiben, ist der nützlichste Befehl
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
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 abstimmenSUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.Eine andere Möglichkeit, Informationen zur Verwendung in Regeln abzurufen, ist mit
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(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 .quelle
quelle
/sys
für/dev/sdb
. Der andere Ansatz zeigt die gesamte Baumhierarchie des Blattknotens zusammen mit den Zweigen.