Translation(s): English - Italiano

Hardware Support

The following cards/phones works 100% with next scripts/configs:

Installation with PPP and /etc/network/interfaces

This works with Debian Wheezy 7.

Install the packages netbase, ifupdown, and ppp if you don't have them already:

apt-get install netbase ifupdown ppp

Create a file /etc/ppp/peers/gprs with this content:

connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T YOUR_APN"
#lcp-echo-interval 30
#lcp-echo-failure 4
#mtu 1492
#maxfail 0
#holdoff 20
#Optional, make it always appear as ppp2:
#unit 2

Then edit /etc/ppp/chap-secrets and add at the end:


Similarly, edit /etc/ppp/pap-secrets and add at the end:


Then edit /etc/network/interfaces and add the following:

auto gprs
iface gprs inet ppp
provider gprs

Thats all you need most of the time. The connection will be brought up at boot, you can start it with ifup gprs or stop it with ifdown gprs.

Advanced Installation with WVDial

You need to download the new wvdial.conf for the HSDPA stuff to work !!!

This was originally written for Gentoo Linux which compiles everything from source. As a result of things might be a bit different, but we can work around it. Firstly, we need to get Linux to detect your card, start your PCMCIA services - normally this can be done using (most distros do this for you):

Before you insert your card, open a console/switch to an open console and as root run the following :

invoke-rc.d pcmciautils start

This will allow you to "see" what Linux is doing :

tail -f /var/log/messages

Right, now insert your card and you should see some stuff happening. I have included log traces of what the two cards "look" like under /var/log/messages in the attachment section.

If you see only the option_insert_nousb.txt messages using an option card run the following command:

modprobe usbserial vendor=0x0af0 product=0x5000

If you had to run the above command, you will need to save the vmc_g file attached into /etc/modules.d.

Now we need to find out where your card is - you will see in the messages where the card is - /dev/ttyS* for Novatel or /dev/ttyUSB* for Option:

find /dev/ | grep ttyS

Should show /dev/ttyS0 or /dev/ttyS1 for a Novatel Card.

find /dev/ | grep ttyUSB

Should show /dev/ttyUSB0 and USB1 and USB2 for an Option Card. (or /dev/tts/ttyUSB0-2 for udev)

Once we found that, we need to change /etc/wvdial.conf to match your settings, attached is my working wvdial.conf (this one is tested on GSM network Play in Poland, with e169 modem, but uses no specific options so should be very portable). The file is:

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 3600000
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Phone = *99#
Username = ppp
Password = ppp
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Idle Seconds = 0
ISDN = 0
Auto DNS = 1 

It is possible to set the PIN that is sent to modem to unlock SIM card, how ever this example does not use this option (you should search for it). Some SIM cards do not need the PIN to work as modems.

Now we can start dialing up.

For Novatel

wvdial novatel internet 3gonly 384k

For Option

wvdial option internet 3gonly 384k

If you need to send your PIN, add "pin" infront of all the commands, e.g.

wvdial pin novatel internet 3gonly 384k

Once your connection is up - surf away Now you can setup things like KPPP and Gnome's Modem Lights to do your dialing for you.

Extra Steps for the HSDPA card

Download the kernel module from the link below. Extract it to a directory somewhere safe.

Compile the driver using the following commands:

make clean && make

Once this is done, run the following command to insert the module into the kernel

insmod nozomi.ko

Once you have done that, use the following command to setup the connection:

wvdial hsdpa

Extra steps for the Novatel U740 Card

Until I get time to update the files etc. our Novatel Linux Users out there can just type this command before using the normal dialing command:

modprobe usbserial vendor=0x1410 product=0x1400


modprobe usbserial vendor=0x1410 product=0x1410

Using lsusb will show you the Vendor and Product ID's or cat /proc/bus/usb/devices will do the same.I will still add them into the FAQ but at least this should help for now

This will add the USB's like the 3G Option did - am I seeing a swap here ? - so just dial /dev/ttyUSB0 or so - check the logs

Extra Steps for the Huawei Cards

None really - just make sure usbserial is loaded and the card will come up on /dev/ttyUSB0 - check the logs again to confirm

If the card doesn't come up, unload usbserial and reload with the following command:

rmmod usbserial
modprobe usbserial vendor=0x12d1 product=0x1001

I am still trying to work on the USB only card, so at the moment, I don't know if it will work under Linux.

Huawei E169

Tested by rfree on Debian Wheezy with Polish operator Play. All works well:

rmmod usb_storage
modprobe usbserial vendor=0x0af0 product=0x5000 # (or adjust vendor and product 
number to the ones you see in dmesg or lsusb when you look for your modem)

Huawei E220

I have found that this modem will only work with the short cable supplied...not the long one with two plugs...*shrug*

Same as the E620, except use the following modprobe command:

rmmod usb-storage
modprobe usbserial vendor=0x12d1 product=0x1003

(Some have reported an ID of 0x1001 - use lsusb to confirm) After that, you will notice only one USB serial coming up, then, remove the device and re-attach it, you shouldn't need to re-insert usbserial.


I have only seen 3G speeds on this device, but I think it is because of my RF conditions and location. More on this to follow...

How to connect using a Franklin U210 USB wireless/WAN/mobile broadband modem

Though this section needs work, it documents how one Debian user connects to the Internet over NTelos' cellular network in the United States using a Franklin CDMA EV-DO U210 USB modem. NTelos uses Sprint's network, and moreover it would appear that Franklin's U210 is the base model of Franklin's U-series (U210, U600, U601, U602, U770, U772), so there is a reasonably good chance that you can use this information even if your situation differs somewhat from the writer's -- but, as they say, your mileage may vary.

This advice is targeted to the beginning-to-intermediate user. Advanced users are challenged to edit the wiki to improve the advice.

Your Franklin USB modem presents itself to the wireless network as though it were a cell phone. It has a phone number. To connect, it calls another phone number. On NTelos' (and presumably also on Sprint's) network in the United States, the phone number your USB modem must call is "#777". You need not, but probably can, discover your USB modem's own phone number by logging into your account on your cellular provider's website. The only number you need today however is the "#777".

As root or via sudo(1), install the Debian package "wvdial", for instance by

$ sudo apt-get install wvdial

If desired, save the original state of /etc/wvdial.conf using RCS's ci(1) or the like (you can ignore this advice re RCS if you neither know nor care what it is about). Edit /etc/wvdial.conf to look something like this:

[Dialer Defaults]
Stupid Mode = true
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
Phone = #777
Password = <Your Password>
Username = <Your Login Name>

The important lines are the "Stupid Mode = true" and the "Phone = #777". You need not fill in a password or username.

Edit "/etc/group" [again after using ci(1) first if you wish] to change




typing your username in place of "foo".

At this point, you may need to log out and log back in to get the system (which part of the system? not sure) to recognize that you now belong to the "dialout" group. If unsure, check with the groups(1) command.

Plug in your USB modem if you have not already done so. Not as root but as yourself, give the command "wvdial" at the terminal's command line. If all goes well, this should connect you to the Internet over your cellular network. Later, press <Ctrl-C> to disconnect.

One is given to understand that the "usb-modeswitch" package may be necessary if your USB modem has not been used before. The writer has neither met nor tested the circumstance in question.

To state the obvious: the procedure should be expected to work only if you have paid a subscription to the cellular network.

It is not asserted that the procedure were the smoothest possible, but the procedure does have the virtue of being relatively obvious in its operation. Refinements may occur to the interested user.


How do I enable "Internet Connection Sharing" ?

A) Since the 2.6 kernel is main stream etc. I will only cover IPTables and Kernel 2.6. I am also assuming that ppp0 is your dialup and eth0 is your lan.
Firstly - we need to add some rules to iptables - run the following commands:

#This will CLEAR ALL RULES !!!
iptables -F
#Enable NAT (through the ppp0 interface)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

#then we need to enable routing:
echo "1" > /proc/sys/net/ipv4/ip_forward
That should do it - from here you can add rules to block incomming connections etc.
My card is broken/replies "ERROR" to all the commands
A) You didn't send your PIN to the card - either add the "pin" command or disable the PIN on the SIM
My Novatel card is very slow - +-800 bytes per second

A) Try running "setserial -a /dev/ttyS1 low_latency spd_warp" - replace /dev/ttyS1 with your port
Once you have your setserial command, insert it into /etc/ppp/ip-up.local - this will cause the command to be ran everytime a connection is made.

What does all the wvdial sections do/mean ?
  • Defaults - What to do if nothing is selected (Always included)
  • pin - send your pin to the card
  • novatel - select the novatel card
  • option - select the option card
  • hsdpa - Option HSDPA card
  • e1000 - select the E1000 via USB
  • onboard - select the onboard modem of my notebook
  • internet - select the internet APN
  • internetvpn - select the internetvpn APN
  • myapn - select your apn
  • 384k,144k,64k - select the speed of your 3G connection
  • 2gonly - select GPRS only
  • 3gonly - select 3G only
  • How do I see the usage under Linux ?

    ToDo Linux Usage



    External Links

    Hardware | Modem