2012-04-03 12 views
9

¿cómo se determina qué tipo de medio se ha unido al sistema?¿Cómo puedo determinar si un dispositivo USB conectado es una unidad flash USB?

Tengo Ubuntu, y cuando inserté una tarjeta SD, nota que en realidad es una tarjeta SD. Lo mismo cuenta para memorias USB.

Pero, ¿cómo puedo determinar el nivel bajo cuando se inserta un nuevo dispositivo, qué tipo de tipo es?

Parece que no hay información disponible sobre esto en absoluto.

editar: para ser más completo: dije que es un entorno Linux, pero en realidad es Android en un entorno incrustado. Lo etiqueté Linux porque de hecho estoy tratando de verificarlo desde la línea de comando.

El comando udevadm no está disponible, y lsusb -vv espectáculos:

Bus 001 Device 001: ID 1d6b:0002 
Bus 001 Device 002: ID 0424:2640 
Bus 001 Device 003: ID 0424:4040 
Bus 002 Device 001: ID 1d6b:0001 

que es muy poca información.

+0

¿Qué quiere decir con "qué tipo" exactamente? ¿qué tipo de medios? (es decir, CD, DVD, disco duro, etc.) – Hasturkun

+0

esto pertenece a Serverfault o Superuser – KurzedMetal

+0

sí, con tipo I significa exactamente CD, DVD, disco duro, etc. Necesito saber si el usuario insertó una memoria USB. – Boy

Respuesta

9

El comando lsusb enumera los dispositivos USB registrados en el sistema. Pruebe lsusb -vv para obtener información más detallada. Puede usar la bandera -s para dirigirse a un dispositivo específico.

ACTUALIZACIÓN: Depende de los permisos de su cuenta, algunos detalles requieren mayores privilegios. Por ejemplo, aquí está la salida para el ratón:

Bus 003 Device 003: ID 04f3:0230 Elan Microelectronics Corp. 
Device Descriptor: 
    bLength    18 
    bDescriptorType   1 
    bcdUSB    1.10 
    bDeviceClass   0 (Defined at Interface level) 
    bDeviceSubClass   0 
    bDeviceProtocol   0 
    bMaxPacketSize0   8 
    idVendor   0x04f3 Elan Microelectronics Corp. 
    idProduct   0x0230 
    bcdDevice   24.58 
    iManufacturer   0 
    iProduct    2 USB+PS/2 Optical Mouse 
    iSerial     0 
    bNumConfigurations  1 
    Configuration Descriptor: 
    bLength     9 
    bDescriptorType   2 
    wTotalLength   34 
    bNumInterfaces   1 
    bConfigurationValue  1 
    iConfiguration   0 
    bmAttributes   0xa0 
     (Bus Powered) 
     Remote Wakeup 
    MaxPower    100mA 
    Interface Descriptor: 
     bLength     9 
     bDescriptorType   4 
     bInterfaceNumber  0 
     bAlternateSetting  0 
     bNumEndpoints   1 
     bInterfaceClass   3 Human Interface Device 
     bInterfaceSubClass  1 Boot Interface Subclass 
     bInterfaceProtocol  2 Mouse 
     iInterface    0 
     HID Device Descriptor: 
      bLength     9 
      bDescriptorType  33 
      bcdHID    1.11 
      bCountryCode   0 Not supported 
      bNumDescriptors   1 
      bDescriptorType  34 Report 
      wDescriptorLength  52 
     Report Descriptors: 
      ** UNAVAILABLE ** 
     Endpoint Descriptor: 
     bLength     7 
     bDescriptorType   5 
     bEndpointAddress  0x81 EP 1 IN 
     bmAttributes   3 
      Transfer Type   Interrupt 
      Synch Type    None 
      Usage Type    Data 
     wMaxPacketSize  0x0004 1x 4 bytes 
     bInterval    10 
Device Status:  0x0000 
4

Puede ser útil para ejecutar un comando como:

$ udevadm info -a -p $(udevadm info -q path -n /dev/sdX) 

La salida se ve como sigue:

[...] 
    looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.5': 
    KERNELS=="1-1.5" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{configuration}=="" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bmAttributes}=="80" 
    ATTRS{bMaxPower}=="200mA" 
    ATTRS{urbnum}=="6519" 
    ATTRS{idVendor}=="13fe" 
    ATTRS{idProduct}=="1d00" 
    ATTRS{bcdDevice}=="0100" 
    ATTRS{bDeviceClass}=="00" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{speed}=="480" 
    ATTRS{busnum}=="1" 
    ATTRS{devnum}=="3" 
    ATTRS{devpath}=="1.5" 
    ATTRS{version}==" 2.00" 
    ATTRS{maxchild}=="0" 
    ATTRS{quirks}=="0x0" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{authorized}=="1" 
    ATTRS{manufacturer}=="Kingston" 
    ATTRS{product}=="DataTraveler 2.0" 
    ATTRS{serial}=="5B7A08A1010F" 
[...] 

se puede ver algunos ATTRS que describe el dispositivo.

+1

Pero, ¿cómo sabes que esto es una memoria USB y no una tarjeta SD? – Boy

-2

cómo determinar si el dispositivo USB es un dispositivo USB

SCNR. Los dispositivos USB generalmente no anuncian su forma. Piense:

  • dispositivos de CD-ROM basado en palo por ahí - por lo general en forma de un dispositivo de conexión móvil para enviar sus propios controladores de Windows
  • palos para teclado inalámbrico/ratones/HID/etc, o para los conectores de audio
  • ese reproductor de MP3 de grasa que bloquea todos los otros puertos USB cercanos
+3

claramente están buscando una unidad flash (que a menudo se conoce como palos) y no la carcasa externa física. –

Cuestiones relacionadas