Huawei E3276 problem

Fred Lefévère-Laoide fred at lefevere-laoide.net
Fri Feb 15 02:50:05 PST 2013


Le 14/02/2013 17:13, Bjørn Mork a écrit :
> Fred Lefévère-Laoide <fred at lefevere-laoide.net> writes:
>
>> here it is before switching (disabled in usb_modeswitch.conf)
> [..]
>>    idVendor           0x12d1 Huawei Technologies Co., Ltd.
>>    idProduct          0x1446 E1552/E1800/E173 (HSPA modem)
> Did you use the default usb_modeswitch config to switch out of this
> mode, or a message snooped from Windows or something else?
>
> FWIW, I believe the Linux default is
>
>    55534243123456780000000000000011062000000100000000000000000000
>
> while Windows might be using
>
>    55534243000000000000000000000011060000000100000000000000000000
I tried this one (adding  1401 to the TargetProductList)
and it switched :-)
here is what lsusb -v outputs for it

Bus 001 Device 011: ID 12d1:1401 Huawei Technologies Co., Ltd.
Device Descriptor:
   bLength                18
   bDescriptorType         1
   bcdUSB               2.00
   bDeviceClass            0 (Defined at Interface level)
   bDeviceSubClass         0
   bDeviceProtocol         0
   bMaxPacketSize0        64
   idVendor           0x12d1 Huawei Technologies Co., Ltd.
   idProduct          0x1401
   bcdDevice            1.00
   iManufacturer           3
   iProduct                2
   iSerial                 1
   bNumConfigurations      1
   Configuration Descriptor:
     bLength                 9
     bDescriptorType         2
     wTotalLength           55
     bNumInterfaces          2
     bConfigurationValue     1
     iConfiguration          0
     bmAttributes         0x80
       (Bus Powered)
     MaxPower              500mA
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        0
       bAlternateSetting       0
       bNumEndpoints           2
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass    255 Vendor Specific Subclass
       bInterfaceProtocol    255 Vendor Specific Protocol
       iInterface              0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x81  EP 1 IN
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x01  EP 1 OUT
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        1
       bAlternateSetting       0
       bNumEndpoints           2
       bInterfaceClass         8 Mass Storage
       bInterfaceSubClass      6 SCSI
       bInterfaceProtocol     80 Bulk-Only
       iInterface              0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x82  EP 2 IN
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x02  EP 2 OUT
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0

option is loaded
But I still get nothing out of ttyUSB0

Anything else I could do ?

>
>> Bus 001 Device 017: ID 12d1:142d Huawei Technologies Co., Ltd.
>> Device Descriptor:
>>    bLength                18
>>    bDescriptorType         1
>>    bcdUSB               2.00
>>    bDeviceClass            0 (Defined at Interface level)
>>    bDeviceSubClass         0
>>    bDeviceProtocol         0
>>    bMaxPacketSize0        64
>>    idVendor           0x12d1 Huawei Technologies Co., Ltd.
>>    idProduct          0x142d
>>    bcdDevice            1.00
>>    iManufacturer           3
>>    iProduct                2
>>    iSerial                 1
>>    bNumConfigurations      1
>>    Configuration Descriptor:
>>      bLength                 9
>>      bDescriptorType         2
>>      wTotalLength           55
>>      bNumInterfaces          2
>>      bConfigurationValue     1
>>      iConfiguration          0
>>      bmAttributes         0x80
>>        (Bus Powered)
>>      MaxPower              500mA
>>      Interface Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        0
>>        bAlternateSetting       0
>>        bNumEndpoints           2
>>        bInterfaceClass       255 Vendor Specific Class
>>        bInterfaceSubClass    255 Vendor Specific Subclass
>>        bInterfaceProtocol    255 Vendor Specific Protocol
>>        iInterface              0
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x81  EP 1 IN
>>          bmAttributes            2
>>            Transfer Type            Bulk
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0200  1x 512 bytes
>>          bInterval               0
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x01  EP 1 OUT
>>          bmAttributes            2
>>            Transfer Type            Bulk
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0200  1x 512 bytes
>>          bInterval               0
>>      Interface Descriptor:
>>        bLength                 9
>>        bDescriptorType         4
>>        bInterfaceNumber        1
>>        bAlternateSetting       0
>>        bNumEndpoints           2
>>        bInterfaceClass         8 Mass Storage
>>        bInterfaceSubClass      6 SCSI
>>        bInterfaceProtocol     80 Bulk-Only
>>        iInterface              0
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x82  EP 2 IN
>>          bmAttributes            2
>>            Transfer Type            Bulk
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0200  1x 512 bytes
>>          bInterval               0
>>        Endpoint Descriptor:
>>          bLength                 7
>>          bDescriptorType         5
>>          bEndpointAddress     0x02  EP 2 OUT
>>          bmAttributes            2
>>            Transfer Type            Bulk
>>            Synch Type               None
>>            Usage Type               Data
>>          wMaxPacketSize     0x0200  1x 512 bytes
>>          bInterval               0
> This does not look like any usable mode at all.  Only two interfaces,
> where one is mass storage and the other only has two endpoints.  That is
> most certainly not cdc_ncm.  It is likely a serial function, but not
> necessarily something usable as a modem.
>
> I find it surprising if this is the default mode.  Do you have access to
> a Windows system you can test this with?  What devices and product IDs
> show up there?
>
> What about the other device mode you mentioned (12d1:1401)?  Is that
> also as limited as this one?
>
>>> for each of these modes?
>>>
>>>> lsmod tells me that option and usbwwan are loaded
>>>> ttyUSB0 is created but I didn't manage to talk to it (tried minicom
>>>> and cat/echo)
>>>>
>>>> Could you share your cdc_ncm driver for the rPi ?
>>> The cdc_ncm changes are in Linux v3.8.
>> Raspberry is still in 3.6 ...
> No problem.  The necessary patch is backported to 3.6 stable:
>
> bjorn at nemi:/usr/local/src/git/linux$ git log v3.6..stable/linux-3.6.y -- drivers/net/usb/cdc_ncm.c
> commit be59563528b8b8668ab3c6cf5ec5091937bf9f2a
> Author: Bjørn Mork <bjorn at mork.no>
> Date:   Tue Nov 13 03:19:43 2012 +0000
>
>      net: cdc_ncm: add Huawei devices
>      
>      [ Upstream commit bbc8d9228ea8e37ce29fa96150d10b85a2c7be60 ]
>      
>      A number of Huawei 3G and LTE modems implement a CDC NCM function,
>      including the necessary functional descriptors, but using a non
>      standard interface layout and class/subclass/protocol codes.
>      
>      These devices can be handled by this driver with only a minor
>      change to the probing logic, allowing a single combined control
>      and data interface.  This works because the devices
>      - include a CDC Union descriptor labelling the combined
>        interface as both master and slave, and
>      - have an alternate setting #1 for the bulk endpoints on the
>        combined interface.
>      
>      The 3G/LTE network connection is managed by vendor specific AT
>      commands on a serial function in the same composite device.
>      Handling the managment function is out of the scope of this
>      driver.  It will be handled by an appropriate USB serial
>      driver.
>      
>      Reported-and-Tested-by: Olof Ermis <olof.ermis at gmail.com>
>      Reported-and-Tested-by: Tommy Cheng <tommy7765 at yahoo.com>
>      Signed-off-by: Bjørn Mork <bjorn at mork.no>
>      Signed-off-by: David S. Miller <davem at davemloft.net>
>      Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
>
>
> But this will not work with the device config above.  You need 3
> endpoints and some CDC functional descriptors for that.
>
>
> Bjørn



More information about the libqmi-devel mailing list