जवाबों:
$ udevadm info -q all -a /dev/sdb
नोट: उपरोक्त जानकारी डिवाइस की जानकारी के लिए UDEV डेटाबेस info
, हम सभी जानकारी के लिए क्वेरी कर रहे हैं -q all
, और हम /sys
इस डिवाइस लेबल से संबंधित सभी विशेषताओं को चला रहे हैं ।
अंश
--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.
यहाँ मेरा /dev/sda
उपकरण है।
$ 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':
@ सेपरो का उत्तर केवल यूडीवी डिवाइस से संबंधित जानकारी को नोड नोड पर दिखा रहा है।
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
मेरे उत्तर में विशेषताओं को दिखाया गया है क्योंकि यह /sys
उपकरणों की पूरी श्रृंखला पदानुक्रम को चलाता है।
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
आप इन दोनों में अंतर देख सकते हैं।
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
नोट: मैं फेडोरा 19 पर चल रहा हूं, संस्करण 204 का उपयोग कर रहा हूं udevadm
:
$ udevadm --version
204
udevadm info -q all
, से नहीं udevadm info -a
। मुझे लगता -a
है कि यह एक शॉर्टकट है -q all --attribute-walk
। या यह आपके संस्करण पर अलग है? मुझे यह बदलना याद नहीं है, लेकिन फिर मैंने वर्षों में फेडोरा का उपयोग नहीं किया है (लेकिन वितरण पैच क्यों होगा?)।
udevadm info
इस तरह की जानकारी प्रदान करता है।
यदि आप विशेष रूप से सबसिस्टम चाहते हैं:
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
जब आप udv नियम लिख रहे हैं, तो सबसे उपयोगी कमांड है
udevadm info -a -n /dev/sdb
यह उन नियमों को प्रिंट करता है जिनका उपयोग आप डिवाइस को udv नियमों से मिलान करने के लिए कर सकते हैं। पहला ब्लॉक डिवाइस के बारे में ही है, और बाद के ब्लॉक डिवाइस ट्री में इसके पूर्वजों के बारे में हैं। एकमात्र चेतावनी यह है कि आप विभिन्न पूर्वजों के अनुरूप कुंजियों को नहीं मिला सकते हैं। उदाहरण के लिए, यह अंश दिया गया है
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"
तब आप इस उपकरण के साथ SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
या साथ मेल कर सकते हैं SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
लेकिन साथ नहीं SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
।
नियमों में उपयोग के लिए जानकारी प्राप्त करने का दूसरा तरीका है
udevadm info -q property -n /dev/sdb --export
यह उस डिवाइस के गुण मान को प्रिंट करता है जिसे आप udv नियमों के रूप में उपयोग कर सकते हैं ।KEY=VALUE
ENV{KEY}=="VALUE"
यदि आपके डिवाइस में कोई /dev
प्रविष्टि नहीं है , तो आप /sys
इसके बजाय एक पथ के साथ इसका उल्लेख कर सकते हैं , जैसे
udevadm info -a -p /sys/block/sdb
(इस मामले में उपयोगी उदाहरण नहीं है - यह उन उपकरणों के लिए उपयोगी है जिनकी श्रेणी सामान्य नहीं है और /dev
अभी तक कोई प्रविष्टि नहीं है)।
जब आप udev नियम बदलते हैं, तो वे स्वचालित रूप से पढ़े जाते हैं; हालाँकि, वे केवल उन उपकरणों पर लागू होते हैं जो बाद में सिस्टम में प्लग किए जाते हैं। पहले से जुड़े डिवाइस पर नए नियमों को लागू करने के लिए, udevadm trigger
(कुछ उपकरणों के लिए एप्लिकेशन को प्रतिबंधित करने के विकल्प के साथ) का उपयोग करें।
udevadm info -a -n /dev/sdb
?