2011-12-08 28 views
5

Tôi muốn sử dụng libudev để xem cho một số thiết bị nhất định. Cụ thể, tôi muốn theo dõi lưu trữ di động: Ổ đĩa cứng USB, USB Keys, thẻ SD, v.v. libudev API cho phép bạn tìm thiết bị nếu bạn biết 'hệ thống con' của thiết bị và 'devtype'. Tôi đã thử các thiết bị trên máy tính của mình và sử dụng udevadm để thấy rằng tất cả các loại lưu trữ đều có hệ thống con của thiết bị 'block' -> 'scsi', nhưng tôi không biết thiết bị này có những gì. Có một danh sách các devtypes và hệ thống con tôi có thể sử dụng như một tài liệu tham khảo một nơi nào đó, hoặc một phương pháp tốt hơn để tìm kiếm devtype?Cách xác định thiết bị với udev

+0

Bạn đã tìm thấy một tài liệu tham khảo toàn cầu cho devtypes và hệ thống con? –

Trả lời

5

Bạn có thể nhận danh sách các hệ thống con với ls /sys/class/ Tôi không chắc chắn về các loại thiết bị. Tôi đoán bạn có thể có được điều này bằng:

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 

Bạn có thể thử các file khác trong thư mục thiết bị.

Thật sự tôi nghĩ rằng bạn cần:

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

Không có tham khảo toàn cầu nào? Thông tin bạn đưa ra thực sự hữu ích nhưng chỉ cho scsi của nó. Đầu đọc thẻ của tôi là loại khối-> mmc ... vv Tôi tìm thấy liên kết này, nhưng đã hy vọng có một cái gì đó phổ quát hơn: http://wiki.xfce.org/dev/thunar-volman-udev – Prismatic

+0

Theo như tôi biết không có đặt tên nhất quán. Mỗi hệ thống con được xử lý khác nhau. Tuy nhiên có một số chương trình trợ giúp trong/lib/udev/mà bạn có thể muốn xem xét. –

Các vấn đề liên quan