Skip to contentSkip to conversation

option driver, ZTE MF_330 matches linux usb 2.0 root hub

DISCUSSION Michael Tokarev 4 participants 12 messages May 26, 2011 – Jun 8, 2011 5 messages not in the archive

lore
Share & tools
lore
#0 lore raw

I noticed that recently, all my systems started
loading option.ko driver even if I've no single
GSM modem anywhere around.

After some investigation I found this in option.c:

/* ZTE PRODUCTS -- alternate vendor ID */
#define ZTE_VENDOR_ID2 0x1d6b
#define ZTE_PRODUCT_MF_330 0x0002
...

        { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) },

But this matches... "Linux Foundation 2.0 root hub", which has this module alias:

usb:v1D6Bp0002d0206dc09dsc00dp00ic09isc00ip00

What are options to fix this option now? :)

Thanks!

[Cc'ing linux-kernel due to interesting USB ID clash]

/mjt

#1 lore raw
Quoted 10 lines · Michael Tokarev

I noticed that recently, all my systems started
loading option.ko driver even if I've no single
GSM modem anywhere around.

After some investigation I found this in option.c:

/* ZTE PRODUCTS -- alternate vendor ID */
#define ZTE_VENDOR_ID2 0x1d6b
#define ZTE_PRODUCT_MF_330 0x0002
...

Quoted 7 lines
        { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) },

But this matches... "Linux Foundation 2.0 root hub", which has this module alias:

usb:v1D6Bp0002d0206dc09dsc00dp00ic09isc00ip00

Forgot to mention, and to add proper Cc. The commit is this one:

commit a559d2c8c1bf652ea2d0ecd6ab4a250fcdb37db8
Author: Dominik Brodowski <[email protected]>
Date: Wed Apr 14 21:36:42 2010 +0200

USB: option: add ID for ZTE MF 330

Based on the information provided for by Paweł Drobek, add a second vendor ID and the correct product ID for ZTE MF 330.

Signed-off: Dominik Brodowski <[email protected]>

Are the IDs really correct? Maybe it's just a typo after all...

It is interesting that no one noticed this so far. Or it's just because it's difficult to search for - "option" is really a bad search term ;)

Quoted 5 lines

What are options to fix this option now? :)

Thanks!

[Cc'ing linux-kernel due to interesting USB ID clash]

/mjt

#2 lore raw
Quoted 31 lines · Michael Tokarev
Quoted 10 lines · Michael Tokarev

I noticed that recently, all my systems started
loading option.ko driver even if I've no single
GSM modem anywhere around.

After some investigation I found this in option.c:

/* ZTE PRODUCTS -- alternate vendor ID */
#define ZTE_VENDOR_ID2 0x1d6b
#define ZTE_PRODUCT_MF_330 0x0002
...

Quoted 7 lines
        { USB_DEVICE(ZTE_VENDOR_ID2, ZTE_PRODUCT_MF_330) },

But this matches... "Linux Foundation 2.0 root hub", which has this module alias:

usb:v1D6Bp0002d0206dc09dsc00dp00ic09isc00ip00

Forgot to mention, and to add proper Cc. The commit is this one:

commit a559d2c8c1bf652ea2d0ecd6ab4a250fcdb37db8
Author: Dominik Brodowski <[email protected]>
Date: Wed Apr 14 21:36:42 2010 +0200

USB: option: add ID for ZTE MF 330

Based on the information provided for by Paweł Drobek, add a second vendor ID and the correct product ID for ZTE MF 330.

Quoted 6 lines

Signed-off: Dominik Brodowski <[email protected]>

Are the IDs really correct? Maybe it's just a typo after all...

I don't know, Paweł, can you provide the output of 'lsusb -v' for your system where you saw this being a option device instead of a hub?

thanks,

greg k-h

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw
Quoted 4 lines · Paweł Drobek

I have got device with this ID's and you are right ID2 is usb2 hub id but when you put my device into computer with this settings my device report it self as gsm modem based on option.ko module. as far i know there are no other solution to get working zte 330 on linux.

Can you please provide the information Greg asked?

Quoted 2 lines

I don't know, Paweł, can you provide the output of 'lsusb -v' for your system where you saw this being a option device instead of a hub?

Namely, `lsusb -v' output from the system when this modem is inserted.

At least, maybe this device ID should be restricted to the particular class of devices. Alternatively, if number of such devices on the marked is small (google wasn't able to find any other references), it should be easy to control it using a custom udev rule that loads `option' driver and forcibly binds it to this device. That is, by the way, an alternative solution to make it work.

But it is curious that ZTE used "wrong" vendor class for its product.

Thanks!

/mjt

A message that is not in the archive (sent off-list or not yet received): [email protected]

#6 lore raw

27.05.2011 11:41, Paweł Drobek пишет:

Quoted 2 lines

ok, but i have to find pcmcia pci card then put it on pc because i sold my notebook some time ago.

Which PCMCIA card? The device at question is USB, not PCMCIA, that's why we requested lsusb.

Has anyone else seen this device? For some reason I doubt it has the indicated USB ID...

Thanks,

/mjt

A message that is not in the archive (sent off-list or not yet received): [email protected]

#8 lore raw
Quoted 2 lines · Paweł Drobek

dunno, zte mf330 is pcmcia card identified itself as usb device which need to get working pcmcia options from kernel.

Yes, older devices put a whole USB host controller device on the PCMCIA card in order to talk to it properly without having to change their hardware design of the modem chip.

Crazy but true.

greg k-h

#9 lore raw
Quoted 7 lines · Greg KH
Quoted 2 lines · Paweł Drobek

dunno, zte mf330 is pcmcia card identified itself as usb device which need to get working pcmcia options from kernel.

Yes, older devices put a whole USB host controller device on the PCMCIA card in order to talk to it properly without having to change their hardware design of the modem chip.

So, what's our course of actions now?

I'd suggest to revert this change and deal with this device again (specifying the device IDs more precisely, like, including the device class or what it is called in USB world) when someone will have it for real.

Thanks,

/mjt

A message that is not in the archive (sent off-list or not yet received): [email protected]

#11 lore raw
Quoted 2 lines · Paweł Drobek

On weekend i could give you all data which you need to do more precisely action. Just write all command should i give.

The output of:
lsusb -v
is all that we need.

thanks,

greg k-h

#12 lore raw
In reply to a message not in the archive
Quoted 2 lines · Paweł Drobek

On weekend i could give you all data which you need to do more precisely action. Just write all command should i give.

Paweł, are there any news on this?

Thanks,

/mjt

Quoted 35 lines

2011/5/27 Michael Tokarev <[email protected] <mailto:[email protected]>>

27.05.2011 14:02, Greg KH wrote:
> On Fri, May 27, 2011 at 11:06:37AM +0200, Paweł Drobek wrote:
>> dunno, zte mf330 is pcmcia card identified itself as usb device which need to
>> get working pcmcia options from kernel.
>
> Yes, older devices put a whole USB host controller device on the PCMCIA
> card in order to talk to it properly without having to change their > hardware design of the modem chip.

So, what's our course of actions now?

I'd suggest to revert this change and deal with this device again (specifying the device IDs more precisely, like, including the device class or what it is called in USB world) when someone will have it for real.

Thanks,

/mjt

Signature · 6 lines
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d+ s:+ a- C++ UL++++ P L+++ !E W+++ N++ o+ K- w++
!O M V- PS+ PE+ Y PGP++ !t !5 X++++ R+ tv- b++ DI++ D++
G++ e+++ h+ r-- y
------END GEEK CODE BLOCK------

A message that is not in the archive (sent off-list or not yet received): [email protected]

#14 lore raw

Dnia 2011-06-06, pon o godzinie 15:36 +0200, Paweł Drobek pisze:

Quoted 52 lines

Nope sorry, i got very busy week. Mayby tomorrow i could check id

sorry

W dniu 6 czerwca 2011 15:21 użytkownik Michael Tokarev <[email protected]> napisał:

        27.05.2011 17:24, Paweł Drobek wrote:
        > On weekend i could give you all data which you need to do
        more precisely
        > action. Just write all command should i give.
        
        
        Paweł, are there any news on this?
        
        Thanks,
        
        /mjt
        
        > 2011/5/27 Michael Tokarev <[email protected]
        <mailto:[email protected]>>
        
        >
        >     27.05.2011 14:02, Greg KH wrote:
        >     > On Fri, May 27, 2011 at 11:06:37AM +0200, Paweł Drobek
        wrote:
        >     >> dunno, zte mf330 is pcmcia card identified itself as
        usb device
        >     which need to
        >     >> get working pcmcia options from kernel.
        >     >
        >     > Yes, older devices put a whole USB host controller
        device on the
        >     PCMCIA
        >     > card in order to talk to it properly without having to
        change their
        >     > hardware design of the modem chip.
        >
        >     So, what's our course of actions now?
        >
        >     I'd suggest to revert this change and deal with this
        device
        >     again (specifying the device IDs more precisely, like,
        >     including the device class or what it is called in USB
        >     world) when someone will have it for real.
        >
        >     Thanks,
        >
        >     /mjt
        >
        >
        >
        >
Quoted 21 lines
        > --
        > -----BEGIN GEEK CODE BLOCK-----
        > Version: 3.12
        > GCS d+ s:+ a- C++ UL++++ P L+++ !E W+++ N++ o+ K- w++
        > !O M V- PS+ PE+ Y PGP++ !t !5 X++++ R+ tv- b++ DI++ D++
        > G++ e+++ h+ r-- y
        > ------END GEEK CODE BLOCK------
        >
Signature · 6 lines
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d+ s:+ a- C++ UL++++ P L+++ !E W+++ N++ o+ K- w++ 
!O M V- PS+ PE+ Y PGP++ !t !5 X++++ R+ tv- b++ DI++ D++ 
G++ e+++ h+ r-- y 
------END GEEK CODE BLOCK------

Hi guys

In attachment is a file with "lsusb -v" output, please check it. if you need something more feel free to tell me about it

Best regards Pawel

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00

  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.36-tuxonice-r3-amd64 ehci_hcd
  iProduct                2 EHCI Host Controller
  iSerial                 1 0000:00:02.1
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
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 12
Hub Descriptor:

  bLength              11
  bDescriptorType      41
  nNbrPorts            10

wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00 0x00
PortPwrCtrlMask 0xff 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0100 power
Port 4: 0000.0100 power
Port 5: 0000.0100 power
Port 6: 0000.0503 highspeed power enable connect Port 7: 0000.0100 power
Port 8: 0000.0100 power
Port 9: 0000.0100 power
Port 10: 0000.0100 power
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.36-tuxonice-r3-amd64 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:00:02.0
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:

  bLength              11
  bDescriptorType      41
  nNbrPorts            10

wHubCharacteristic 0x0012
No power switching (usb 1.0)
No overcurrent protection
bPwrOn2PwrGood 1 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00 0x00
PortPwrCtrlMask 0xff 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Port 3: 0000.0103 power enable connect Port 4: 0000.0303 lowspeed power enable connect Port 5: 0000.0100 power
Port 6: 0000.0100 power
Port 7: 0000.0100 power
Port 8: 0000.0100 power
Port 9: 0000.0100 power
Port 10: 0000.0100 power
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled

Bus 001 Device 004: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x058f Alcor Micro Corp.
  idProduct          0x6362 Flash Card Reader/Writer
  bcdDevice            1.00
  iManufacturer           1 Generic
  iProduct                2 Mass Storage Device
  iSerial                 3 058F312D81B
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 250mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 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
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
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 

bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

Bus 002 Device 002: ID 0b05:1715 ASUSTek Computer, Inc. 2045 Bluetooth 2.0 Device with trace filter Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0b05 ASUSTek Computer, Inc.
idProduct 0x1715 2045 Bluetooth 2.0 Device with trace filter
bcdDevice 1.00

  iManufacturer           1 Broadcom Corp
  iProduct                2 Bluetooth 2.0 USB Device
  iSerial                 0 
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 216
bNumInterfaces 4
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 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
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 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 0
iInterface 0
Device Firmware Upgrade Interface Descriptor:
bLength 7
bDescriptorType 33
bmAttributes 5
Will Not Detach
Manifestation Tolerant
Upload Unsupported
Download Supported
wDetachTimeout 5000 milliseconds
wTransferSize 64 bytes
Device Status: 0x0000
(Bus Powered)

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.36-tuxonice-r3-amd64 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:02:00.0
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0002 1x 2 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x0002
No power switching (usb 1.0)
Ganged overcurrent protection
bPwrOn2PwrGood 255 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0103 power enable connect
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled

Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00

  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.36-tuxonice-r3-amd64 ehci_hcd
  iProduct                2 EHCI Host Controller
  iSerial                 1 0000:02:00.2
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
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 12
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 2
wHubCharacteristic 0x0009
Per-port power switching
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
DeviceRemovable 0x00
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0100 power
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled

Bus 002 Device 003: ID 045e:071f Microsoft Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x045e Microsoft Corp.
  idProduct          0x071f 
  bcdDevice            2.50
  iManufacturer           1 Microsoft
  iProduct                2 Microsoft� 2.4GHz Transceiver V2.0
  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 274
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 0x0006 1x 6 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)

Bus 003 Device 002: ID 19d2:0001 ONDA Communication S.p.A. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x19d2 ONDA Communication S.p.A.
  idProduct          0x0001 
  bcdDevice            0.00
  iManufacturer           1 Qualcomm, Incorporated
  iProduct                2 ZTE CDMA Technologies MSM
  iSerial                 0 
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 85
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 3 Data Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 128
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 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 0x0040 1x 64 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 3 Data Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 3 Data Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)

#15 lore raw
Quoted 29 lines · Paweł Drobek

Bus 003 Device 002: ID 19d2:0001 ONDA Communication S.p.A. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x19d2 ONDA Communication S.p.A.
  idProduct          0x0001
  bcdDevice            0.00
  iManufacturer           1 Qualcomm, Incorporated
  iProduct                2 ZTE CDMA Technologies MSM
  iSerial                 0
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 85
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9

Quoted 8 lines

bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 3 Data Interface

So, as far as I can see, this is covered by

#define ZTE_VENDOR_ID 0x19d2
#define ZTE_PRODUCT_MF622 0x0001

{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */

and it should Just Work aftere reverting a559d2c8c1bf652ea2d0ecd6ab4a250fcdb37db8 "USB: option: add ID for ZTE MF 330". But I'm not sure this really is MF330, since the device ID says it's MF622.

Are we talking about the same device?

Besides, why in linux it's identified as ZTE, while lsusb lists it as "ONDA Comm." ?

Thanks,

/mjt

#16 lore raw
Quoted 45 lines · Michael Tokarev
Quoted 29 lines

Bus 003 Device 002: ID 19d2:0001 ONDA Communication S.p.A. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x19d2 ONDA Communication S.p.A.
  idProduct          0x0001
  bcdDevice            0.00
  iManufacturer           1 Qualcomm, Incorporated
  iProduct                2 ZTE CDMA Technologies MSM
  iSerial                 0
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 85
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9

Quoted 8 lines

bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 3 Data Interface

So, as far as I can see, this is covered by

#define ZTE_VENDOR_ID 0x19d2
#define ZTE_PRODUCT_MF622 0x0001

{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */

Quoted 8 lines

and it should Just Work aftere reverting a559d2c8c1bf652ea2d0ecd6ab4a250fcdb37db8 "USB: option: add ID for ZTE MF 330". But I'm not sure this really is MF330, since the device ID says it's MF622.

Are we talking about the same device?

Besides, why in linux it's identified as ZTE, while lsusb lists it as "ONDA Comm." ?

ONDA and ZTE are usually the very same chip.

Also please note that USB ID of these devices usually changes after 'usb_modeswtich' triggers in userspace (and many distros ship udev rule for this as a default nowadays), which might contribute to the overall confusion a little bit more.

Signature · 2 lines
Jiri Kosina
SUSE Labs