Par exemple, j'ai le périphérique / dev / sdb. Comment savoir si c'est le sous-système udev?
19
$ udevadm info -q all -a /dev/sdb
REMARQUE: ce qui précède interroge la base de données UDEV pour obtenir des informations sur le périphérique info
, nous recherchons toutes les informations -q all
et parcourons tous les attributs sous /sys
relatifs à cette étiquette de périphérique.
extrait
--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.
Voici mon /dev/sda
appareil.
$ 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':
La réponse de @ sepero montre des informations concernant uniquement le périphérique UDEV au nœud feuille.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Ma réponse montre les attributs alors qu'elle parcourt toute la /sys
hiérarchie de la chaîne des appareils.
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Vous pouvez voir la différence entre ces deux.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
REMARQUE: je fonctionne sur Fedora 19, en utilisant la version 204 de udevadm
:
$ udevadm --version
204
udevadm info -a -n /dev/sdb
?udevadm info -q all
, pas deudevadm info -a
. Je pense que-a
c'est un raccourci pour-q all --attribute-walk
. Ou est-ce différent sur votre version? Je ne me souviens pas de ce changement, mais je n'ai pas utilisé Fedora depuis des années (mais pourquoi une distribution corrigerait-elle cela?).udevadm info
fournit ce type d'informations.Si vous souhaitez spécifiquement le sous-système:
Lorsque vous écrivez des règles udev, la commande la plus utile est
Cela imprime les règles que vous pouvez utiliser pour faire correspondre le périphérique aux règles udev. Le premier bloc concerne le périphérique lui-même, et les blocs suivants concernent ses ancêtres dans l'arborescence des périphériques. La seule mise en garde est que vous ne pouvez pas mélanger des clés qui correspondent à différents ancêtres. Par exemple, étant donné cet extrait
alors vous pouvez faire correspondre cet appareil avec
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
ou avecSUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
mais pas avecSUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.Une autre façon d'obtenir des informations à utiliser dans les règles est de
Cela imprime les valeurs de propriété de périphérique du formulaire que vous pouvez utiliser comme dans les règles udev.
KEY=VALUE
ENV{KEY}=="VALUE"
Si votre appareil n'a pas d'
/dev
entrée, vous pouvez vous y référer avec un chemin sous/sys
, par exemple(pas un exemple utile dans ce cas - c'est utile pour les appareils dont la catégorie n'est pas commune et qui n'ont pas encore d'entrée sous
/dev
).Lorsque vous modifiez des règles udev, elles sont lues automatiquement; cependant, ils ne sont appliqués qu'aux périphériques qui sont ensuite connectés au système. Pour appliquer les nouvelles règles à un appareil déjà connecté, utilisez
udevadm trigger
(avec des options pour restreindre l'application à certains appareils).la source
la source
/sys
pour/dev/sdb
. L'autre approche montre la hiérarchie arborescente entière du nœud feuille avec les branches.