I've got the same problem with ZTE MF636 - modem manager uses ttyUSB2, while it should be ttyUSB3.
I think I found a little simpler solution to this problem, just added one line to /lib/udev/rules.d/77-mm-zte-port-types.rules:
ATTRS{idProduct}=="0033", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1"
ATTRS{idProduct}=="0033", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1"
# this is what I added
ATTRS{idProduct}=="0033", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="0"
Now modem manager uses proper ttyUSB3 and everything works as expected.
There is one difference I've noticed using lsusb between ttyUSB2 and ttyUSB3 - the last has
Transfer Type Interrupt
and the others have
Transfer Type Bulk
maybe it can be utilized to help modem manager to find right device.
below I send full output of 'lsusb -d 19d2:0033 -v' :
Bus 001 Device 068: ID 19d2:0033 ZTE WCDMA Technologies MSM
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x19d2 ZTE WCDMA Technologies MSM
idProduct 0x0033
bcdDevice 0.00
iManufacturer 3 ZTE,Incorporated
iProduct 2 ZTE CDMA Technologies MSM
iSerial 4 1234567890ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 131
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 1 ZTE Configuration
bmAttributes 0xe0
Self Powered
Remote Wakeup
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 32
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 32
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 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 32
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 32
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 0x83 EP 3 IN bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 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 0x84 EP 4 IN 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 4
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
Endpoint Descriptor:
bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes
bInterval 32
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)
I've got the same problem with ZTE MF636 - modem manager uses ttyUSB2, while it should be ttyUSB3. rules.d/ 77-mm-zte- port-types. rules:
I think I found a little simpler solution to this problem, just added one line to /lib/udev/
ATTRS{idProduct }=="0033" , ENV{.MM_ USBIFNUM} =="04", ENV{ID_ MM_ZTE_ PORT_TYPE_ MODEM}= "1" }=="0033" , ENV{.MM_ USBIFNUM} =="01", ENV{ID_ MM_ZTE_ PORT_TYPE_ AUX}="1" }=="0033" , ENV{.MM_ USBIFNUM} =="02", ENV{ID_ MM_ZTE_ PORT_TYPE_ MODEM}= "0"
ATTRS{idProduct
# this is what I added
ATTRS{idProduct
Now modem manager uses proper ttyUSB3 and everything works as expected.
There is one difference I've noticed using lsusb between ttyUSB2 and ttyUSB3 - the last has
Transfer Type Interrupt
and the others have
Transfer Type Bulk
maybe it can be utilized to help modem manager to find right device.
below I send full output of 'lsusb -d 19d2:0033 -v' :
Bus 001 Device 068: ID 19d2:0033 ZTE WCDMA Technologies MSM tions 1 ionValue 1 orType 4 eNumber 0 eSetting 0 eClass 255 Vendor Specific Class eSubClass 255 Vendor Specific Subclass eProtocol 255 Vendor Specific Protocol
bDescriptorTyp e 5
bEndpointAddre ss 0x81 EP 1 IN
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x01 EP 1 OUT
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes orType 4 eNumber 1 eSetting 0 eClass 255 Vendor Specific Class eSubClass 255 Vendor Specific Subclass eProtocol 255 Vendor Specific Protocol
bDescriptorTyp e 5
bEndpointAddre ss 0x82 EP 2 IN
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x02 EP 2 OUT
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes orType 4 eNumber 2 eSetting 0 eClass 255 Vendor Specific Class eSubClass 255 Vendor Specific Subclass eProtocol 255 Vendor Specific Protocol
bDescriptorTyp e 5
bEndpointAddre ss 0x83 EP 3 IN
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x03 EP 3 OUT
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes orType 4 eNumber 3 eSetting 0 eClass 8 Mass Storage eSubClass 6 SCSI eProtocol 80 Bulk-Only
bDescriptorTyp e 5
bEndpointAddre ss 0x04 EP 4 OUT
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x84 EP 4 IN
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes orType 4 eNumber 4 eSetting 0 eClass 255 Vendor Specific Class eSubClass 255 Vendor Specific Subclass eProtocol 255 Vendor Specific Protocol
bDescriptorTyp e 5
bEndpointAddre ss 0x85 EP 5 IN
bmAttributes 3
wMaxPacketSize 0x0040 1x 64 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x86 EP 6 IN
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes
bDescriptorTyp e 5
bEndpointAddre ss 0x05 EP 5 OUT
bmAttributes 2
wMaxPacketSize 0x0200 1x 512 bytes tions 1
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x19d2 ZTE WCDMA Technologies MSM
idProduct 0x0033
bcdDevice 0.00
iManufacturer 3 ZTE,Incorporated
iProduct 2 ZTE CDMA Technologies MSM
iSerial 4 1234567890ABCDEF
bNumConfigura
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 131
bNumInterfaces 5
bConfigurat
iConfiguration 1 ZTE Configuration
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescript
bInterfac
bAlternat
bNumEndpoints 2
bInterfac
bInterfac
bInterfac
iInterface 0
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Interface Descriptor:
bLength 9
bDescript
bInterfac
bAlternat
bNumEndpoints 2
bInterfac
bInterfac
bInterfac
iInterface 0
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Interface Descriptor:
bLength 9
bDescript
bInterfac
bAlternat
bNumEndpoints 2
bInterfac
bInterfac
bInterfac
iInterface 0
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Interface Descriptor:
bLength 9
bDescript
bInterfac
bAlternat
bNumEndpoints 2
bInterfac
bInterfac
bInterfac
iInterface 0
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 0
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 0
Interface Descriptor:
bLength 9
bDescript
bInterfac
bAlternat
bNumEndpoints 3
bInterfac
bInterfac
bInterfac
iInterface 0
Endpoint Descriptor:
bLength 7
Transfer Type Interrupt
Synch Type None
Usage Type Data
bInterval 5
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
Endpoint Descriptor:
bLength 7
Transfer Type Bulk
Synch Type None
Usage Type Data
bInterval 32
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
bNumConfigura
Device Status: 0x0000
(Bus Powered)