Internet Connectivity using Mobile Technologies (3G, GPRS, CDMA)
These different technologies use the infrastructure of mobile telephone networks. Recently there has been a boom in the development of these technologies as exemplified by the following facts:
- Tanzania: The deployment of the 3G network by Vodacom, deployment of CDMA 800 networks by TTCL and Zantel, deployment of CDMA 450 network by BOL. Excerpted from 
- India: This is the only option for users in rural areas where no other means of broadband Internet are available. GPRS Enabled Cell Phone costs around $10 p.m., Some vendors charge about $0.025 per megabyte. Excerpted from 
- Beijing: 6-month plan costs RMB650 and an annual plan that includes a high-end GPRS modem costs RMB2400, which can work anywhere in China. Excerpted from 
- Finland: GPRS will be suitable option in the rural areas for offering the Internet connectivity in the near future. Excerpted from 
 XO Internet Connectivity using Franklin CDU-680DOrA Mobile Broadband USB Modem
The following steps are needed to have this modem working with XO:
1. Insert the modem into any USB slot on XO. The device will be shown as a removable storage.
2. Copy  to /home/olpc/ folder on XO using
cp -r cdmamodem.zip /home/olpc
Please See: If you are copying these files in different path (other than /home/olpc ), you need to change DPATH variable in modemXO script.
3. Unzip it using
4. Run modemXO script using
bash modemXO or ./modemXO or bash /home/olpc/cdmamodem/modemXO
Please Note: Necessary Packages will be installed by the script modemXO automatically
- Wvdial : wvdial-1.54.0-18.104.22.168.i386.rpm
- PPP: ppp-2.4.4-2.i386.rpm
- Libwvstreams: libwvstreams-4.2.2-3.fc7.i386.rpm
5. Using command
You can test that ppp0 is added as an interface. If it is there, you can start using Internet on XO!
 XO Internet Connectivity using AT&T USBConnect 881 Sierra Wireless USB Modem
This modem does not work with 2.6.22 (and earlier) Kernel release versions. You can check your kernel version by typing
uname --r at the console.
If you are running 2.6.22 or earlier versions, you have to go through following steps to update your kernel:
1. Download the kernel rpm from 
2. Install the rpm using following command
rpm -ivh kernel-2.6.25-20080619.1.olpc.0.i586.rpm cp -a /boot/* /versions/boot/current/boot/
3. Reboot your XO which will automatically install the new kernel.
sierra module using
modprobe usbserial modprobe sierra
5. Now copy this  configuration file for the modem on your XO and run following command:
wvdial --config sierraconfig.txt
 XO Internet Connectivity using Sprint Novatel Wireless Ovation U727 USB Modem
1. Plug in the device into the USB port. It automatically mounts as a CDROM0.
2. Use following commands
modprobe –r usbserial modprobe usbserial vendor=0x1410 product=0x4100 eject /dev/sr0
3. You can run
sudo dmesg|grep –i ttyUSB to confirm the driver is loaded
4. Now copy this  configuration file for this modem on your XO and run following command:
wvdial --config sprintconfig.txt
For more information about USB modems from Sprint, refer 
 XO Internet Connectivity using Motorola T-mobile Razor V3
1. You will need a standard USB Cable whose one end is plugged into USB port of XO, and the other end will fit in the data port on your phone.
2. Your phone will be detected as a Modem. It can be verified by looking into /dev/ where a node named ttyACM0 will be created.
3. Now copy this  configuration file for this modem on your XO and run following command:
wvdial --config motorolaconfig.txt
 XO Internet Connectivity using Dialup modem
(These instructions are from K.Karthick Annamalai and Paul Fontelo, National Library of Medicine.)
- Power up your dial-up modem and connect it to the OLPC. (You need a serial to USB adapter as the OLPC doesn’t have a serial port)
- Now check whether the USB port is detected by the OLPC. You can do this by typing the following commands in the terminal as ‘su’:
#dmesg #dmesg | grep USB or #dmesg |grep tty cd /dev ls-l
- Once your modem is detected type the following commands in the terminal
This will scan for the attached modem and display a message as
“Found a modem on /dev/ttyUSB0 Modem configuration written to /etc/wvdial.conf”
- In the wvdial.conf file change the following:
Phone = 123456789 [dialup number] Username = youraccount Password = yourpassword
- Now run the wvdial
Once this is done it will connect to the internet. (You can hear sounds from the modem and the CD line will be lit up)
- Sometimes you may not be able to access webpages. This is because of the DNS problem. To fix this, in the resolv.conf file add a nameserver
Nameserver 22.214.171.1240 [your DNS server] or some DNS server]
 XO Internet Connectivity using GSM phone
(These instructions are from K.Karthick Annamalai and Paul Fontelo in the National Library of Medicine.)
Follow the procedures for the dial-up connection. Everything is the same except that you should connect a 3G enabled GSM phone to the OLPC instead of a dial-up modem and edit the wvdial.conf file as follows:
Phone = *99# Username = username [actually use “username”] Password = password [actually use “password”]
 XO Internet Connectivity using Vodafone service in India
wvdial works well (sudo wvdial) with Vodaphone service in India. I used Nokia 6133 via USB but it should work with any phone over USB. I had to get GPRS activated for an extra fee. The settings for /etc/wvdial.conf that worked for me:
[Dialer Defaults] Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem Phone = *99# ISDN = 0 Username = username Init1 = ATZ Password = password Modem = /dev/ttyACM0 Baud = 460800 Init3 = AT+CGDCONT=1, "IP", "www"
One hitch, that can be a showstopper, is that after pppd connects it will spit out the DNS server addresses, but these do not show up in /etc/resolv.conf I had to add "nameserver 10.11.230.2" (or whatever your DNS may be) in /etc/resolv.conf This is the DNS server address that wvdial will spit out on the console once ppp connects succewssfully.
- In case you receive output
Cannot open /dev/ttyUSB0: Device or resource busy, you should run
kill -9 -1on XO to kill all services utilizing modem.
- In case you were initially connected to other network, you might need to add the DNS address manually to
nameserver <DNS address>to connect to internet. Here are the steps you will need to follow in this case:
From the output of
wvdial --config <Configuration file> command , Note down the Primary DNS Address and add it manually to /etc/resolv.conf file:
The contents of /etc/resolv.conf file should look like:
# generated by NetworkManager, do not edit! search media.mit.edu nameserver <DNS Address as noted from wvdial output>
- You need to have wvdial installed on XO. As its not provided by default, you have to download and install it using
yum -y install wvdial
 How to share internet among other XOs
If one XO is setup as Mesh Portal Point (MPP), other XOs can access internet with its help.
Following steps are needed to make XO with a modem work as MPP. (Run these commands on the XO connected to modem to be setup as MPP)
1. Follow either of the above mentioned steps so that XO with modem is able to connect to Internet.
2. Type these commands at the terminal.
ifconfig msh0 up
3. Copy  this file to your XO and run this command:
sudo python mpp.py msh0 meshready ppp0
4. Check the channel to which this XO is connected using either the command
or looking in the Sugar UI for Mesh Network #Channel_Number
The following commands need to be run on the XO that should access the internet through MPP setup above:
1. Connect to the above channel using Neighborhood view on XO.
2. Start using internet!
Please See: You can check by running command olpc-netstatus and checking the DNS server which will be the same as IP address of the XO with modem.
- Michail Bletsas - (My advisor) providing invaluable guidance, support and encouragement.
- Thanks to Yanni for his valuable inputs during the development.
Contact Ankur Verma through -
Email : ankur at laptop org
IRC : ankur on #olpc #sugar