It's been a couple of days since I bought a ZTE MF667 USB 3G modem for the few days that I will be for vacation and internet access is mostly necessary. The first thing I had to do is to confirm that this modem works with Linux.
Plugging it in for the first time and network manager did nothing. The first thing to do is to search for possible solutions (using my wired connection). After a few posts, I couldn't figure out what was missing. The last post found presented the correct solution.
This 3G modem works like this: It is detected as a USB network card and you connect to it as a regular wired connection with network manager. The network interface name given to it is eth1. After setting up the connection with network manager and the modem is identified by the kernel which will throw a message like this:
cdc_ether 2-1.1:1.0 eth1: register 'cdc_ether' at usb-0000:00:1d.0-1.1, CDC Ethernet Device, 00:a0:c6:00:00:00
you click on connect. The interface is up, is given a IP address (usually 192.168.0.100) and you open the browser and go to http://192.168.0.1, where you are presented with the web interface of the modem. You enter your pin to unlock the SIM card and you click on Connect and that's it. You are connected to the internet.
For these instructions to work, the kernel must be configured to include support for Multi-purpose USB Networking Framework (Device Drivers -> Network device support -> USB Network Adapters), the module is called usbnet and CDC Ethernet support (which is under the previous key, Multi-purpose USB Networking Framework), the module is called cdc_ether. Having these compiled in or as modules, will make this 3G modem work flawlessly.
The web interface is pretty neat too. It includes statistics for your session or month traffic, has an option to warn you when reaching a certain data traffic threshold that you set and has an interface to read the SMS messages sent by your provider (Cosmote in my case).
As a conclusion, it works just fine under Linux. Feel free to ask for any help that you might need.