udev

2011-12-08 7 views
5

के साथ डिवाइसों की पहचान कैसे करें मैं कुछ उपकरणों के लिए libudev का उपयोग करना चाहता हूं। विशेष रूप से, मैं हटाने योग्य स्टोरेज के लिए निगरानी करना चाहता हूं: यूएसबी हार्ड ड्राइव, यूएसबी कुंजी, एसडी कार्ड इत्यादि। Libudev API आपको डिवाइस खोजने देता है यदि आप उस डिवाइस के माता-पिता के 'उपप्रणाली' और 'devtype' को जानते हैं। मैंने अपने कंप्यूटर पर डिवाइसों की कोशिश की और यह पता लगाने के लिए udevadm का उपयोग किया कि सभी स्टोरेज प्रकारों में 'ब्लॉक' -> 'एससीआई' का डिवाइस उपप्रणाली था, लेकिन मुझे नहीं पता कि इन उपकरणों के डिवाइटी क्या हैं। क्या devtypes और उपप्रणाली की एक सूची है जिसे मैं किसी संदर्भ के रूप में उपयोग कर सकता हूं, या devtype देखने के लिए एक बेहतर तरीका है?udev

+0

आप devtypes और उप के लिए एक वैश्विक संदर्भ मिला? –

उत्तर

5

आप ls /sys/class/ के साथ उपप्रणाली की सूची प्राप्त कर सकते हैं हालांकि मुझे डिवाइस प्रकारों के बारे में निश्चित नहीं है। मुझे लगता है कि आप इसका उपयोग कर सकते हैं:

ls -l /sys/class/scsi_disk/ 
total 0 
lrwxrwxrwx 1 root root 0 2011-12-07 21:20 0:0:0:0 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0 
cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/vendor 
ATA  
cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/model 
ST9500325AS 

आप डिवाइस निर्देशिका में अन्य फ़ाइलों को आजमा सकते हैं।

वास्तव में मुझे लगता है कि आप की जरूरत:

cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/type 
0 

cat /usr/include/scsi/scsi.h | grep TYPE_ 
#define TYPE_DISK   0x00 
#define TYPE_TAPE   0x01 
#define TYPE_PROCESSOR  0x03 /* HP scanners use this */ 
#define TYPE_WORM   0x04 /* Treated as ROM by our system */ 
#define TYPE_ROM   0x05 
#define TYPE_SCANNER  0x06 
#define TYPE_MOD   0x07 /* Magneto-optical disk - 
#define TYPE_MEDIUM_CHANGER 0x08 
#define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */ 
#define TYPE_NO_LUN   0x7f 
+0

क्या वहां कोई वैश्विक संदर्भ नहीं है? आपके द्वारा दी गई जानकारी वास्तव में सहायक है लेकिन यह केवल एससीआई के लिए है। मेरा कार्ड रीडर टाइप ब्लॉक-> एमएमसी ... आदि है। मुझे यह लिंक मिला, लेकिन उम्मीद थी कि कुछ और सार्वभौमिक था: http://wiki.xfce.org/dev/thunar-volman-udev – Prismatic

+0

जहाँ तक मैं पता है कि कोई निरंतर नामकरण नहीं है। प्रत्येक उपप्रणाली को अलग-अलग संभाला जाता है। हालांकि/lib/udev/में कुछ सहायक कार्यक्रम हैं जिन्हें आप देखना चाहते हैं। –

संबंधित मुद्दे