Yanıtlar:
$ udevadm info -q all -a /dev/sdb
NOT: yukarıdaki UDEV veritabanını cihaz bilgileri için sorgular, info
tüm bilgileri sorgularız ve bu cihaz etiketi ile ilgili -q all
tüm özellikleri yürüyoruz /sys
.
alıntı
--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.
İşte /dev/sda
cihazım.
$ 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':
@ sepero'nun yanıtı, yaprak düğümdeki UDEV cihazıyla ilgili bilgileri gösteriyor.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Cevabım, /sys
cihazların tüm zincir hiyerarşisinde yürürken özellikleri gösterir .
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Bu ikisi arasındaki farkı görebilirsiniz.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
Not: 204 sürümünü kullanarak Fedora 19 üzerinde çalışıyorum udevadm
:
$ udevadm --version
204
udevadm info -q all
değil , çıktısıdır udevadm info -a
. Bence -a
bir kısayol -q all --attribute-walk
. Yoksa bu, sürümünüzde farklı mı? Bu değişikliği hatırlamıyorum, ancak yıllardır Fedora'yı kullanmadım (ama neden bir dağıtım bunu yamalı?).
udevadm info
bu tür bilgileri sağlar.
Özellikle alt sistemi istiyorsanız:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
Udev kuralları yazarken en kullanışlı komut
udevadm info -a -n /dev/sdb
Bu, cihazı udev kurallarında eşleştirmek için kullanabileceğiniz kuralları yazdırır. İlk blok cihazın kendisiyle ilgilidir ve sonraki bloklar cihaz ağacındaki ataları ile ilgilidir. Tek uyarı, farklı atalara karşılık gelen anahtarları karıştıramamanızdır. Örneğin, bu alıntı dikkate alındığında
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"
bu cihazı ile SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
veya ile eşleştirebilirsiniz SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
ancak ile eşleştiremezsiniz SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
Kurallarda kullanım için bilgi edinmenin başka bir yolu da
udevadm info -q property -n /dev/sdb --export
Bu, formun udev kurallarında olduğu gibi kullanabileceğiniz aygıt özellik değerlerini yazdırır .KEY=VALUE
ENV{KEY}=="VALUE"
Cihazınızın bir /dev
girişi yoksa, /sys
bunun yerine altında bir yolla başvurabilirsiniz , ör.
udevadm info -a -p /sys/block/sdb
(bu durumda yararlı bir örnek değildir - bu, kategorisi yaygın olmayan ve /dev
henüz bir girişi olmayan cihazlar için yararlıdır ).
Udev kurallarını değiştirdiğinizde, kurallar otomatik olarak okunur; ancak bunlar yalnızca daha sonra sisteme takılan aygıtlara uygulanır. Yeni kuralları zaten bağlı bir cihaza udevadm trigger
uygulamak için (uygulamayı belirli cihazlarla kısıtlama seçenekleriyle) kullanın.
udevadm info -a -n /dev/sdb
?