Me gustaría usar libudev para ver ciertos dispositivos. Específicamente, deseo monitorear el almacenamiento extraíble: Discos duros USB, llaves USB, tarjetas SD, etc. La API de libudev le permite encontrar un dispositivo si conoce el 'subsistema' y 'devtype' de dicho dispositivo. Probé los dispositivos en mi computadora y usé udevadm para encontrar que todos los tipos de almacenamiento tenían un subsistema de dispositivo de 'bloque' -> 'scsi', pero no tengo idea de qué tipo de dispositivos tienen estos dispositivos. ¿Hay una lista de devtypes y subsistemas que pueda usar como referencia en alguna parte, o un mejor método para buscar devtype?Cómo identificar dispositivos con udev
Respuesta
Puede obtener la lista de subsistemas con ls /sys/class/
Aunque no estoy seguro acerca de los tipos de dispositivos. Supongo que puede obtener esto usando:
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
Puede probar otros archivos en el directorio del dispositivo.
De hecho, creo que necesita:
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
¿No hay una referencia global por ahí? La información que proporcionaste es realmente útil, pero solo para SCSI. Mi lector de tarjetas es tipo block-> mmc ... etc. Encontré este enlace, pero esperaba que hubiera algo más universal: http://wiki.xfce.org/dev/thunar-volman-udev – Prismatic
Por lo que yo Sé que no hay nombres consistentes. Cada subsistema se maneja de manera diferente. Sin embargo, hay algunos programas de ayuda en/lib/udev/que es posible que desee ver. –
- 1. Dispositivos USB UDev y D-BUS
- 2. Cómo identificar al mismo usuario en diferentes dispositivos iOS
- 3. ¿Cómo identificar al usuario en todos los dispositivos en iOS?
- 4. Cómo identificar múltiples adaptadores de serie USB en Ubuntu 10.1
- 5. udev: dispositivo conectado en el momento del arranque
- 6. udev monitor es lento sin sondeo
- 7. ¿Cómo registrar esta tableta en la lista udev de Ubuntu?
- 8. ¿Cómo compilar JavaScriptCore para dispositivos con iOS?
- 9. adb no detecta dispositivos Android
- 10. Cómo identificar un dispositivo USB dado su VID y PID
- 11. Identificar profile-icc con Image Magick
- 12. ¿Cómo distinguir/identificar usuarios con OpenID sin solicitar campos SReg?
- 13. Trabajar con dispositivos USB en .NET
- 14. Identificar token de autenticación
- 15. Symfony2, cómo cargar dispositivos con la opción --fixtures?
- 16. Cómo conectar dispositivos Android con adb bajo ubuntu
- 17. ¿Cómo conectar de forma programada 2 dispositivos Android con bluetooth?
- 18. En ASP.NET cómo identificar/procesar excepciones 404?
- 19. Cómo identificar el documento en SharePoint
- 20. Identificar mi versión dotnet
- 21. Cómo identificar la página solicitada en PHP
- 22. Dispositivos Android con Environment.getExternalStorageDirectory()! =/Mnt/sdcard /?
- 23. Entity Framework de prueba con dispositivos
- 24. Conexión automática Bluetooth con dispositivos vinculados
- 25. Dispositivos Android con sensor de presión
- 26. Compatibilidad con iframes en dispositivos móviles
- 27. Trabajando con dispositivos USB en Mono
- 28. ¿Cómo puedo admitir varios dispositivos con compras en la aplicación que no se renuevan?
- 29. ¿Cómo identificar cuándo cambió SIM en iPhone?
- 30. Cómo identificar métodos anónimos en System.Reflection
¿Ha encontrado una referencia global para devtypes y subsistemas? –