Réponses:
$ 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 -q all
, pas de udevadm 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:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
Lorsque vous écrivez des règles udev, la commande la plus utile est
udevadm info -a -n /dev/sdb
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
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"
alors vous pouvez faire correspondre cet appareil avec SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
ou avec SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
mais pas avec SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
Une autre façon d'obtenir des informations à utiliser dans les règles est de
udevadm info -q property -n /dev/sdb --export
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
udevadm info -a -p /sys/block/sdb
(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).
udevadm info -a -n /dev/sdb
?