I am connecting a Huawei E3131B USB 3G modem to my Beaglebone Black running Angstrom. When I connect it directly, the USB acts funny. Sometimes it picks up the modem, sometimes it dissapears from lsusb after a while (and loses power), and sometimes it does not pick it up at all. I need to make sure that it will have a stable connection with my board every time I start up.

How do I go about doing this? The problem occurs even if I don't hotplug.

One way I have got it to work is connecting it through a USB hub. When connected through the hub, it seems to work fine, but I cannot always have the hub present...


Given the USB is likely powered I'd be a little suspicious of the power situation of this device when it's connected directly. You can begin to probe at these values using sudo lsusb -vvv.


$ sudo lsusb -vvv -s "002:004" | less
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           93
    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           3
      bInterfaceClass        11 Chip/SmartCard
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ChipCard Interface Descriptor:
        bLength                54
        bDescriptorType        33
        bcdCCID              1.00
        nMaxSlotIndex           0
        bVoltageSupport         7  5.0V 3.0V 1.8V 
        dwProtocols             3  T=0 T=1
        dwDefaultClock       4000
        dwMaxiumumClock      4000
        bNumClockSupported      0
        dwDataRate          10752 bps
        dwMaxDataRate      500000 bps
        bNumDataRatesSupp.      0
        dwMaxIFSD             254
        dwSyncProtocols  00000000 
        dwMechanical     00000000 
        dwFeatures       00010230

Change the bus & device numbers (-s "002:004") for your situation. Also consult the lsusb man page for more on how to select pieces of the output.

Also I'd take a look at the output of dmesg when this issue occurs for futhre insight.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.