Respuestas:
$ udevadm info -q all -a /dev/sdb
NOTA: lo anterior consulta la base de datos de UDEV para obtener información del dispositivo, info
consultamos toda la información -q all
y analizamos todos los atributos /sys
correspondientes a la etiqueta de este dispositivo.
extracto
--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.
Aquí está mi /dev/sda
dispositivo.
$ 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 respuesta de @ sepero es mostrar información relacionada con el dispositivo UDEV en el nodo hoja.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Mi respuesta muestra los atributos a medida que recorre toda la /sys
jerarquía de dispositivos de la cadena.
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Puedes ver la diferencia entre estos dos.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
NOTA: Estoy corriendo en Fedora 19, usando la versión 204 de udevadm
:
$ udevadm --version
204
udevadm info -q all
, no de udevadm info -a
. Creo que -a
es un atajo para -q all --attribute-walk
. ¿O es diferente en tu versión? No recuerdo este cambio, pero entonces no he usado Fedora en años (¿pero por qué una distribución parchearía esto?).
udevadm info
proporciona este tipo de información.
Si desea específicamente el subsistema:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
Cuando escribe reglas de udev, el comando más útil es
udevadm info -a -n /dev/sdb
Esto imprime las reglas que puede usar para hacer coincidir el dispositivo en las reglas de udev. El primer bloque es sobre el dispositivo en sí, y los bloques siguientes son sobre sus antepasados en el árbol de dispositivos. La única advertencia es que no puede mezclar claves que correspondan a antepasados diferentes. Por ejemplo, dado este extracto
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"
entonces puede hacer coincidir este dispositivo con SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
o con SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
pero no conSUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
Otra forma de obtener información para usar en reglas es con
udevadm info -q property -n /dev/sdb --export
Esto imprime los valores de propiedad del dispositivo del formulario que puede usar comoKEY=VALUE
ENV{KEY}=="VALUE"
en las reglas de udev.
Si su dispositivo no tiene una /dev
entrada, puede referirse a él con una ruta debajo /sys
, por ej.
udevadm info -a -p /sys/block/sdb
(no es un ejemplo útil en este caso; esto es útil para dispositivos cuya categoría no es común y no tiene una entrada debajo de /dev
).
Cuando cambia las reglas de udev, se leen automáticamente; sin embargo, solo se aplican a dispositivos que posteriormente se conectan al sistema. Para aplicar las nuevas reglas a un dispositivo ya conectado, use udevadm trigger
(con opciones para restringir la aplicación a ciertos dispositivos).
udevadm info -a -n /dev/sdb
?