Why Network Manager Can't Detect My ZTE USB 3G Modem!

I am using ubuntu 12.10. I use a ZTE USB 3G Modem to connect to internet. I connect that modem through a driver software which was provided with the modem. This modem works fine. I can browse , use apt-get through terminal. But the problem is network-manager cant detect my modem. It shows nothing in the top bar. Because of this I -

  1. Can't use Ubuntu Software Center
  2. Can't use VPN services
  3. Can't create wifi hotspot

First of all i am telling what i have noticed about this modem:

  1. When I connect this modem first time that driver software can't detect it. This time ' lsusb ' command give this lsusb(before) . After unplugging and plugging for 2-3 times that software can detect modem and output of lsusb changed to lsusb(new). And ths time ubuntu also find a cd-rom by which driver software is delivered. But if i connect modem before starting Ubuntu that driver software can detect modem at first time!!
  2. I have tried to connect this modem through ' Mobile Broadband ' option but unfortunately this option can't detect my modem under ' create a connection for this mobile broadband device ' option.
  3. I think that driver software use wvdial to connect to the internet as I have to install wvdial before installing that software. I have tried to connect to internet using wvdial from terminal. wvdial works fine. And I can use internet. But can't solve network-manager problem.
  4. Also used sakis3g. sakis3g can connect my modem but this also can't solve the network-manager problem.

Now I am telling what I have done till now to solve that network-manager problem:

I have tried this code with root privilege:

echo vendor productID > /sys/bus/usb-serial/drivers/option1/new_id

It didn't work.

One more thing its confusing what will be my productID for this code 0154(which lsusb finds before modem gets detected by driver software)? or 2003(which lsusb finds after modem gets detected by driver software and find a cd-rom)?

I think usb_modeswitch can help me solving this problem but i don't know how to use usb_modeswitch or create configuration file with it.

Thats all. Now my question is whats wrong? Is there any solution to get my modem detected by network-manager?


Solution 1:

[Answering My Own Question]

[First of all Apology! I am not an expert here. But I think may be I can share what I have learned through experience]

My first problem was when I was connecting the modem through driver software provided with the modem I was unable to use some network services like VPN, Ubuntu Software Centre etc. It was happening because though I was connected to the internet Network Manager couldn't detect it.

Problem: Network Manager can't detect internet connection.

Reason: The driver provided with the modem was using WvDial to connect to the internet. But because of this bug in wvdial package, Network Manager couldn't detect network connection.

Solution: If your driver software use wvdial don't use it. Connect the modem as a mobile broadband connection instead.


Now I have mentioned in my question that I had also tried to connect my modem through mobile broadband connection. But failed as I couldn't find my modem in the mobile broadband option.

Problem: Mobile Broadband can't detect my modem

Reason: First of all lets take a look how these modems work. When these modems are plugged for the first time, operating system detect them as a storage medium / CD-ROM rather than a modem. So that the driver software provided with the modem can be delivered. After installing the driver, driver sends a special message to the modem. After getting that message modem switches to modem mode. And now its ready to use. This feature of these modems is called ZeroCD(TM) feature. This mechanism is used so that drivers can be delivered with the modem without the need of any additional CD/DVD.

In my question I have mentioned that when I would plug my modem my driver software couldn't detect it and I would get a set of vendor and product id(in my case 19d2 and 0154) in lsusb command. After some sequence of plugging & unplugging product id would switch to 2003 and now the driver could detect the modem. This was happening because of this ZeroCD feature of the modem. First the modem is detected as a storage medium and the product id becomes 0154. Then the modem switches to modem mode and product id becomes 2003. This mechanism is called modem switching.

For the same reason mobile broadband couldn't detect my modem. So to solve this problem I have to switch the modem to modem mode somehow. And to switch I need some configuration information like that special message I have mentioned earlier, vendor id, product id etc.

Actually there is a nice software package named usb_modeswitch which handle this switching thing automatically. And Ubuntu by default comes with this software package. Now how usb_modeswitch does this is, it reads a file(called data file) named configPack.tar.gz located in /usr/share/usb_modeswitch directory which contains configuration information needed to switch this kind of modems. If your modem's configuration information is present in that file your modem should switch automatically by usb_modeswitch without any problem. But if not you are in trouble.

Solution: Download usb_modeswitch(If its not already installed in your system) and latest data file from this site. Now it may happen that your modem's data file is not present in the latest data file. In that case you can wait until someone includes it there for you or you can find those information by yourself and inform the developers of usb_modeswitch. May be they will include your modem's configuration information in their later release. After all someone has to do it! You will find information regarding this in the above site.