Hello boys & girls,
I’ve tried connecting a ZTE MF626 (HSDPA USB modem) to a Linux box (openSuSE 11.1) but quickly ran into problems. I’ve read countless forum threads on the subject in english, spanish, french and russian but every single one was designed on the same silly principle: this is what you should do and that is what should happen.
In short, none of these contributors had considered the possibility that things may not always happen the way they’re supposed to happen and that some explanation might help those in trouble. I’m therefore addressing those who know how to install such a modem and, more to the point, who could explain why I fail miserably to install it when following instructions found on various websites.
The others, whose input is limited to giving advice (do this, try that, install this, read that post, etc.) are kindly asked to stay out of this discussion. I wish to understand how to install this modem properly and why I’ve failed until now, not merely follow instructions which, for the most part, are without effect. Let’s hear it from the experts for a change.
That said, allow me to describe the problem at hand.
My understanding is that the ZTE MF626 is a dual-mode device, initially preset to function as a virtual storage device (USB virtual CD), that may be switched to function as a 3G modem.
The tool available in openSuSE to switch its mode of operation is usb_modeswitch and it’s necessary to correctly configure usb_modeswitch by editing /etc/usb_modeswitch.conf in order to provide a description of said modem. Here’s what I end up with, after commenting out the default (topmost) model and un-commenting the ZTE MF828+ entry (which I used as a compatible model, as advised on many forums):
########################################################
ZTE MF628+ (tested version from Telia / Sweden)
ZTE MF626
Contributor: Joakim Wennergren
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageEndpoint=0x01
MessageContent=“55534243123456782000000080000c85010101180101010101000000000000”
Good. Next I plug the modem in a USB 2.0 port and wait a few seconds for the red light to appear, meaning it’s done shaking hands with Linux. To check that everything looks as it should, I run lsusb and obtain the expected output (other irrelevant entries trimmed):
Bus 004 Device 029: ID 19d2:2000 ONDA Communication S.p.A.
According to forum lore, product id 0x2000 means the device is in storage mode, as expected. Next I run usb_modeswitch in order to switch it to modem mode. This produces the following output:
-
- usb_modeswitch: tool for controlling “flip flop” mode USB devices
- Version 0.9.5 (C) Josua Dietze 2008
- Works with libusb 0.1.12 and probably other versions
Looking for target devices
No target device found
Looking for default devices
Found default devices (1)
Prepare switching, accessing latest device
Looking for active default driver to detach it
No driver found. Device probably not initialized. Trying to continue …
Setting up communication with device
Trying to send the message
OK, message successfully sent.
→ See /proc/bus/usb/devices (or call lsusb) for changes. Bye
*
Now is when things get interesting. According to the optimistic contributers on all forums attempting to deal with this issue, the next run of lsusb should show this:
Bus 004 Device 030: ID 19d2:0031 ONDA Communication S.p.A.
Well… in my case (and I’m apparently not the only one), the output is:
Bus 004 Device 030: ID 19d2:0066 ONDA Communication S.p.A.
Finally, here are my questions to the gurus out there:
- What does product id 0x0066 mean?
- Why does the device switch to product id 0x0066 instead of 0x0031?
- What are the required steps to make it switch to product id 0x0031?
One may find a trizillion answers to question 3 in various forums, all absolutely useless as far as I’m concerned, but nobody has addressed questions 1 & 2 which, in my opinion, are key to dealing with the last one. You’ll probably want to know many details about my Linux configuration, which I haven’t provided in this post for lack of knowing what’s needed. Just ask and I shall provide it.
Many thanks in advance on behalf of all those who share the same problem.