Sebagai contoh, saya punya perangkat / dev / sdb. Bagaimana cara mengetahui itu subsistem udev?
19
$ 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 -a -n /dev/sdb
?udevadm info -q all
, bukan dariudevadm 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:
Saat Anda menulis aturan udev, perintah yang paling berguna adalah
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
maka Anda dapat mencocokkan perangkat ini dengan
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
atau denganSUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
tetapi tidak denganSUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.Cara lain untuk mendapatkan informasi untuk digunakan dalam aturan adalah dengan
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(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).sumber
sumber
/sys
untuk/dev/sdb
. Pendekatan lain menunjukkan seluruh hierarki pohon dari simpul daun bersama dengan cabang.