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