- Hardware Support
- Installation with PPP and /etc/network/interfaces
- Advanced Installation with WVDial
- How to connect using a Franklin U210 USB wireless/WAN/mobile broadband modem
- External Links
The following cards/phones works 100% with next scripts/configs:
- Huawei/E176 (works out of the box)
Huawei/E169 works without any problems
- Motorola E1000
- Nokia 6680 (just don't set the speed/service - no 3gonly and 384k configs)
- Novatel HSDPA Card
- Novatel Merlin U630
- Option Fusion
- Option HSDPA Card
- Option Quad
Installation with PPP and /etc/network/interfaces
This works with Debian Wheezy 7.
apt-get install netbase ifupdown ppp
Create a file /etc/ppp/peers/gprs with this content:
user "YOUR_USERNAME" connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs -T YOUR_APN" /dev/ttyUSB0 noipdefault defaultroute replacedefaultroute hide-password #lcp-echo-interval 30 #lcp-echo-failure 4 noauth persist #mtu 1492 #maxfail 0 #holdoff 20 usepeerdns #Optional, make it always appear as ppp2: #unit 2
Then edit /etc/ppp/chap-secrets and add at the end:
"YOUR_USERNAME" * "YOUR_PASSWORD"
Similarly, edit /etc/ppp/pap-secrets and add at the end:
"YOUR_USERNAME" * "YOUR_PASSWORD"
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.
wvdial novatel internet 3gonly 384k
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
Once you have done that, use the following command to setup the connection:
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.
Tested by rfree on Debian Wheezy with Polish operator Play. All works well:
make sure with stat /dev/ttyUSB0 that such device-file is (re)created when you connect the modem (and wait 10 seconds), the date of file should change.
- if device-file is not created (or if something does not work) then force the modem to work as modem only instead as card-reader/memory, using:
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)
copy the attached example file wvdial.conf-e169 to /etc/wvdial.conf
run wvdial (install wvdial if you don't have it) - and should be done
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 ?
ToDo Linux Usage
- Make the Option card call "modprobe usbserial" by itself
- Make the Novatel card register the second port under Linux
- Do some research into the signal levels reported via +CSQ
- Get the PIN to work with wvdial and Novatel
http://www.peck.org.uk/GlobeTrotterGPRShowto.html - GPRS HowTo
http://markus.wernig.net/en/it/usb-serial-handy-ppp.phtml - How to connect a cell phone via USB to a Linux laptop and dial-up an internet connection.