Yanıtlar:
$ udevadm info -q all -a /dev/sdb
NOT: yukarıdaki UDEV veritabanını cihaz bilgileri için sorgular, infotüm bilgileri sorgularız ve bu cihaz etiketi ile ilgili -q alltü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/sdacihazı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, /syscihazları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 -abir 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=VALUEENV{KEY}=="VALUE"
Cihazınızın bir /devgirişi yoksa, /sysbunun 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 /devhenü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 triggeruygulamak için (uygulamayı belirli cihazlarla kısıtlama seçenekleriyle) kullanın.
udevadm info -a -n /dev/sdb?