Jawaban:
$ udevadm info -q all -a /dev/sdb
CATATAN: pertanyaan di atas menanyakan basis data UDEV untuk informasi perangkat info
,, kami meminta semua informasi -q all
,, dan kami sedang menjalankan semua atribut yang /sys
berkaitan dengan label perangkat ini.
kutipan
--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.
Ini /dev/sda
perangkat saya .
$ 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':
Jawaban @ sepero menunjukkan informasi yang hanya berkaitan dengan perangkat UDEV di node leaf.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Jawaban saya menunjukkan atribut saat berjalan di seluruh /sys
hierarki rantai perangkat.
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Anda dapat melihat perbedaan antara keduanya.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
CATATAN: Saya menjalankan Fedora 19, menggunakan versi 204 dari udevadm
:
$ udevadm --version
204
udevadm info -q all
, bukan dari udevadm info -a
. Saya pikir -a
ini jalan pintas untuk -q all --attribute-walk
. Atau ini berbeda pada versi Anda? Saya tidak ingat perubahan ini, tapi saya sudah bertahun-tahun tidak menggunakan Fedora (tapi mengapa distribusi akan memperbaiki ini?).
udevadm info
memberikan informasi semacam ini.
Jika Anda secara khusus menginginkan subsistem:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
Saat Anda menulis aturan udev, perintah yang paling berguna adalah
udevadm info -a -n /dev/sdb
Ini mencetak aturan yang bisa Anda gunakan untuk mencocokkan perangkat dengan aturan udev. Blok pertama adalah tentang perangkat itu sendiri, dan blok berikutnya adalah tentang leluhurnya di pohon perangkat. Satu-satunya peringatan adalah bahwa Anda tidak dapat mencampur kunci yang sesuai dengan leluhur yang berbeda. Misalnya, diberikan kutipan ini
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"
maka Anda dapat mencocokkan perangkat ini dengan SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
atau dengan SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
tetapi tidak dengan SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
Cara lain untuk mendapatkan informasi untuk digunakan dalam aturan adalah dengan
udevadm info -q property -n /dev/sdb --export
Ini mencetak nilai properti perangkat dari formulir yang dapat Anda gunakan seperti dalam aturan udev.KEY=VALUE
ENV{KEY}=="VALUE"
Jika perangkat Anda tidak memiliki /dev
entri, Anda dapat merujuknya dengan jalur di bawahnya /sys
, misalnya
udevadm info -a -p /sys/block/sdb
(bukan contoh yang berguna dalam kasus ini - ini berguna untuk perangkat yang kategorinya belum umum dan belum memiliki entri di bawah /dev
).
Saat Anda mengubah aturan udev, aturan itu dibaca secara otomatis; namun, mereka hanya diterapkan pada perangkat yang selanjutnya dicolokkan ke sistem. Untuk menerapkan aturan baru ke perangkat yang sudah terhubung, gunakan udevadm trigger
(dengan opsi untuk membatasi aplikasi ke perangkat tertentu).
udevadm info -a -n /dev/sdb
?