Activation Codes and Methods, Hardware Details, Sniffing
Post Reply
bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 23 Dec 2015, 09:56

Hello,
I cannot get my zte 3g modem work and decided to ask here.

Code: Select all

root@bayer:~# lsusb -vvv -d 19d2:1403

Bus 001 Device 002: ID 19d2:1403 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          0x1403 
  bcdDevice           f0.02
  iManufacturer           3 ZTE,Incorporated
  iProduct                2 ZTE WCDMA Technologies MSM
  iSerial                 4 P680A1ZTED010000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           98
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          1 ZTE Configuration
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass        224 Wireless
      bFunctionSubClass       1 Radio Frequency
      bFunctionProtocol       3 RNDIS
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      3 RNDIS
      iInterface              0 
      ** UNRECOGNIZED:  05 24 00 10 01
      ** UNRECOGNIZED:  04 24 02 02
      ** UNRECOGNIZED:  05 24 01 03 01
      ** UNRECOGNIZED:  05 24 06 00 01
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      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     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        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              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
      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               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)

Code: Select all

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1403 Rev=f0.02
S:  Manufacturer=ZTE,Incorporated
S:  Product=ZTE WCDMA Technologies MSM
S:  SerialNumber=P680A1ZTED010000
C:  #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

Some how it gets bad CDC error message (most probably from cdc_ether module)

Code: Select all

[ 2153.391253] usb 1-1: USB disconnect, device number 2
[ 2160.924415] usb 1-1: new high-speed USB device number 4 using ehci-pci
[ 2161.292534] usb 1-1: New USB device found, idVendor=19d2, idProduct=1225
[ 2161.292574] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 2161.292610] usb 1-1: Product: ZTE WCDMA Technologies MSM
[ 2161.292643] usb 1-1: Manufacturer: ZTE,Incorporated
[ 2161.292673] usb 1-1: SerialNumber: P680A1ZTED000000
[ 2161.335930] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 2161.338699] scsi4 : usb-storage 1-1:1.0
[ 2162.352624] scsi 4:0:0:0: CD-ROM            CWID     USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2
[ 2162.357503] scsi 4:0:0:1: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[ 2162.375170] sr1: scsi-1 drive
[ 2162.377882] sr 4:0:0:0: Attached scsi CD-ROM sr1
[ 2162.379286] sr 4:0:0:0: Attached scsi generic sg2 type 5
[ 2162.380668] sd 4:0:0:1: Attached scsi generic sg3 type 0
[ 2162.402670] sd 4:0:0:1: [sdb] Attached SCSI removable disk
[ 2162.498921] systemd-udevd[5340]: Failed to apply ACL on /dev/sr1: No such file or directory
[ 2162.499004] systemd-udevd[5340]: Failed to apply ACL on /dev/sr1: No such file or directory
[ 2163.832629] usb 1-1: USB disconnect, device number 4
[ 2164.334953] usb 1-1: new high-speed USB device number 5 using ehci-pci
[ 2164.709162] usb 1-1: New USB device found, idVendor=19d2, idProduct=1403
[ 2164.709176] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 2164.709184] usb 1-1: Product: ZTE WCDMA Technologies MSM
[ 2164.709190] usb 1-1: Manufacturer: ZTE,Incorporated
[ 2164.709194] usb 1-1: SerialNumber: P680A1ZTED010000
[ 2164.747362] usb 1-1: bad CDC descriptors
[ 2164.748071] usb-storage 1-1:1.2: USB Mass Storage device detected
[ 2164.748391] scsi5 : usb-storage 1-1:1.2
[ 2165.758721] scsi 5:0:0:0: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[ 2165.764443] sd 5:0:0:0: Attached scsi generic sg2 type 0
[ 2165.781727] sd 5:0:0:0: [sdb] Attached SCSI removable disk

I am really stuck and I have no idea what needs to be done. I just tired to switch it but no success. A help will be really appreciated.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by Josh » 23 Dec 2015, 20:16

The modem is already in the switched mode. You can't switch it again.

What happens if you disable mode-switching in /etc/usb_modeswitch.conf ?

bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 23 Dec 2015, 20:24

Hello,
I don't have 14.04 installed system with me.
An interesting fact that I can get it work in Ubuntu 12.04. I have done zero configuration but somehow it has been detected as 19d2:1405

here is the output of lsusb

Code: Select all


Bus 001 Device 040: ID 19d2:1405 ZTE WCDMA Technologies MSM 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x19d2 ZTE WCDMA Technologies MSM
  idProduct          0x1405 
  bcdDevice           f0.02
  iManufacturer           4 
  iProduct                3 
  iSerial                 5 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          103
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          2 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      6 Ethernet Networking
      bInterfaceProtocol      0 
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC Ethernet:
        iMacAddress                      1 (??)
        bmEthernetStatistics    0x00000000
        wMaxSegmentSize               8192
        wNumberMCFilters            0x0001
        bNumberPowerFilters              0
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      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     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        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              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
      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               0

Code: Select all

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 40 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(commc) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1405 Rev=f0.02
S:  Manufacturer=ZTE,Incorporated
S:  Product=ZTE WCDMA Technologies MSM
S:  SerialNumber=P680A1ZTED010000
C:  #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:  If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

Code: Select all

[307257.085015] usb 1-2: new full-speed USB device number 40 using ohci_hcd
[307257.372762] scsi4 : usb-storage 1-2:1.2
[307257.457803] cdc_ether 1-2:1.0: eth1: register 'cdc_ether' at usb-0000:00:06.0-2, CDC Ethernet Device, 00:a0:c6:00:00:00
[307257.459003] usbcore: registered new interface driver cdc_ether
[307258.395143] scsi 4:0:0:0: CD-ROM            CWID     USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2
[307258.403111] scsi 4:0:0:1: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[307258.434542] sr1: scsi-1 drive
[307258.435613] sr 4:0:0:0: Attached scsi CD-ROM sr1
[307258.436423] sr 4:0:0:0: Attached scsi generic sg2 type 5
[307258.436544] sd 4:0:0:1: Attached scsi generic sg3 type 0
[307258.473860] sd 4:0:0:1: [sdb] Attached SCSI removable disk
Interesting fact that it seems no usb mode switching occurs. No usb mode switch related configuration installed or changed on the system.
I am really confused. I don't get why it is working on an 3 years old system but not working on up2date system. I am complete noob on this matter. I might ask dump questions but still don't get how it gets different product id on different operating systems.
Also one point to mention: 14.04 is virtual machine on windows host, 12.04 is virtual machine on mac host.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by Josh » 23 Dec 2015, 23:41

bayer wrote:I am really confused. I don't get why it is working on an 3 years old system but not working on up2date system. I am complete noob on this matter. I might ask dump questions but still don't get how it gets different product id on different operating systems.
There is in fact a 'secret ingredient' here. This and probably other ZTE devices have something like an 'auto-mode-switch' built in.
On Linux, if plugged in and treated by usb_modeswitch with the standard eject sequence, they reach one mode. If they are plugged in and no action follows, they switch to annother mode after several seconds.

It's hard to say which mode is supported better on the respective system, so this is a somewhat open question.

Now you probably understand why I suggested to disable the mode switching temporarily. Let's see if you reach the mode with product ID 1405 and if it works better.

bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 24 Dec 2015, 10:32

Hi Josh,
I have disabled usb_modeswitch by changing parameter from /etc/usb_modeswitch.conf

Code: Select all

 Configuration for the usb_modeswitch package, a mode switching tool for
# USB devices providing multiple states or modes
#
# Evaluated by the wrapper script /usr/sbin/usb_modeswitch_dispatcher
#
# To enable an option, set it to "1", "yes" or "true" (case doesn't matter)
# Everything else counts as "disable"


# Disable automatic mode switching globally (e.g. to access the original
# install storage)

DisableSwitching=1


# Enable logging (results in a extensive report file in /var/log, named
# "usb_modeswitch_<interface-name>" and probably others

EnableLogging=0


# Optional increase of "delay_use" for the usb-storage driver; there are hints
# that a recent kernel default change to 1 sec. may lead to problems, particu-
# larly with USB 3.0 ports. Set this to at least 3 (seconds) in that case.
# Does nothing if the current system value is same or higher

#SetStorageDelay=4
But it seems has no effect on device behaviour.

Code: Select all

[ 1348.253157] usb 1-1: USB disconnect, device number 2
[ 1358.135651] usb 1-1: new high-speed USB device number 3 using ehci-pci
[ 1358.497762] usb 1-1: New USB device found, idVendor=19d2, idProduct=1225
[ 1358.497776] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 1358.497787] usb 1-1: Product: ZTE WCDMA Technologies MSM
[ 1358.497798] usb 1-1: Manufacturer: ZTE,Incorporated
[ 1358.497808] usb 1-1: SerialNumber: P680A1ZTED000000
[ 1358.538377] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 1358.539339] scsi4 : usb-storage 1-1:1.0
[ 1359.103554] usb 1-1: USB disconnect, device number 3
[ 1359.583094] usb 1-1: new high-speed USB device number 4 using ehci-pci
[ 1359.942288] usb 1-1: New USB device found, idVendor=19d2, idProduct=1403
[ 1359.942317] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 1359.942343] usb 1-1: Product: ZTE WCDMA Technologies MSM
[ 1359.942345] usb 1-1: Manufacturer: ZTE,Incorporated
[ 1359.942346] usb 1-1: SerialNumber: P680A1ZTED010000
[ 1359.980128] usb 1-1: bad CDC descriptors
[ 1359.980411] usb-storage 1-1:1.2: USB Mass Storage device detected
[ 1359.980576] scsi5 : usb-storage 1-1:1.2
[ 1360.987071] scsi 5:0:0:0: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[ 1360.988379] sd 5:0:0:0: Attached scsi generic sg2 type 0
[ 1361.002725] sd 5:0:0:0: [sdb] Attached SCSI removable disk

Is there any other way to force device to use 1405 as product id? If you suggest something I will be really appreciated.

LOM
Posts: 1404
Joined: 11 Jul 2012, 15:14
Location: Koh Samui, TH

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by LOM » 24 Dec 2015, 11:45

bayer wrote:Also one point to mention: 14.04 is virtual machine on windows host, 12.04 is virtual machine on mac host.
Your USB host is therefore also virtual hardware emulated in software, probing of your dongle is done by windows and that is why you end up with it in rndis mode.
I have seen a few dmesg logs of 19d2:1403 in the past but never before seen the "bad CDC descriptor" error msg, I can only assume that you get that because of the hardware virtualization.
19d2:1403 (rndis mode) has been proven to work under linux in the past.

bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 24 Dec 2015, 14:13

I does make sense. On mac I am using VirtualBox for 12.04 guest. I will try the 14.04 with VirtualBox on windows. I'm gonna share the results.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by Josh » 24 Dec 2015, 16:11

But then you are still running under Windows, and this is what the stick will notice. Windows is always first to handle it unless you are running Linux natively ...

(I did not notice at first that you are on a virtual platform.)

bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 24 Dec 2015, 23:21

As you have suggested, Virtualbox didn't change anything. I still don't get how some OS(MacOSX in that case) probes it as 1405 and other probes as 1403. I was thinking both VMWare and VirtualBox install their own USB drivers and virtual environment accesses USB device via this driver and host OS just acts like bridge between virtual environment and device itself. So I haven't installed ZTE windows drivers as a result of this thought. I looked at .inf files of ZTE windows driver which comes installed with the stick. I saw RNDIS ids of 1403 and 1404 but there is no sign related to 1405. Therefore, I don't think installing windows drivers will help. Still do I need to give it a chance? Do you have any further suggestion?

LOM
Posts: 1404
Joined: 11 Jul 2012, 15:14
Location: Koh Samui, TH

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by LOM » 25 Dec 2015, 05:39

The initial id (virtual cd-rom with windows connection manager) of your dongle is 19d2:1225 and the dongle is autoswitching, doesn't really need usb_modeswitch.
It senses how it gets probed and most likely also senses what the storage driver does to the virtual cd-rom and then decides what mode it should enter, 19d2:1403 Microsoft RNDIS or 19d2:1405 cdc_ether.
Linux and Mac will not probe it like MS Windows does so it will auto switch into 19d2:1405.
Linux has the rndis_host driver and the cdc_ether driver so any of the dongles modes will work, none is better than the other.
MS Windows native ethernet protocol is RNDIS so no driver is needed there, this is the main reason for having the RNDIS mode in the dongle.

Do boot a linux live cd instead of linux in virtualbox and you will see the cdc_ether mode of the dongle.

bayer
Posts: 6
Joined: 23 Dec 2015, 09:45

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by bayer » 25 Dec 2015, 13:31

Thanks for the replies. So it turns out that problem is related to vmware or virtual box. Actually it is not matter of this forum but if you have such experience before, I would like to hear your thoughts.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: Turkcell ZTE MF667 on Ubuntu 14.04

Post by Josh » 25 Dec 2015, 15:08

All our thoughts are in the posts above. Boot from a native Linux. There is no known method to override the auto-switch and force the Ethernet mode.

Post Reply