Verizon and Sprint began rolling out EVDO on their networks a few years ago. While they are still continuing to expand their 3G data services, they have been able to cover the majority of their service areas with their wireless broadband services. Verizon refers to their EVDO service as “BroadbandAccess” or “vCast”. Sprint uses the term “Power Vision” for their 3G data service.
For some, EVDO means the ability to stay connected or do business anywhere. For others, it is simply be the only broadband connection available in areas that are not serviced by cable or DSL. High speed data plans are a little more expensive than other types of broadband, but they also offer a convenience and flexibility that has never been possible before.
If you run Microsoft Windows or Apple’s MacOS X, both Verizon and Sprint offer device drivers and connection manager software for your computer. If you want to use these services with Linux, you aren’t quite so lucky. In order to use your EVDO connection under Linux, you will have to set it up manually. If you use a USB or PCMCIA based EVDO air card, the card will have to be initialized on a Windows or MacOS machine before it can be used in Linux. You may be able to talk your local Sprint or Verizon rep into initializing the card for you at the store if necessary.
The instructions in this article are based on setting up an EVDO connection in Kubuntu 7.10. The device is an AirPrime PC5220 from Verizon. The concepts will be the same, and the procedure will be very similar with other Linux distributions, aircards, and carriers.
The PC5220, like most EVDO cards and handsets, looks and operates like a serial modem. From this point forward, I will refer to these devices as EVDO modems. The majority of these EVDO modems use the usbserial driver. If your distribution does not include the usbserial driver, you may need to install or compile a custom kernel in order to add it. The Ubuntu family of distributions includes this driver module by default.
When you connect your EVDO modem to the computer, the system does not know which driver to use. We can fix this problem by adding a single line to the file /etc/modules. For the PC5220 card, the line is:
usbserial vendor=0xf3d product=0×0112 maxsize=2048
This line tells the system to load the usbserial driver for the device that matches this vendor and product ID. The maxsize=2048 argument can help with data throughput on the serial port if your kernel module supports it. If not, the maxsize argument will be ignored.
If you are not using a PC5220 card, you will need to find the vendor and product ID for your card. To do so, you can use the lsusb command from the command line. Look through the output of the lsusb command and find the line for your EVDO modem. For my Airprime card, the line looked like this:
ID 0f3d:0112 Airprime, Incorporated CDMA 1xEVDO PC Card, PC5220
As you can see, right after ID, the first number (0f3d) is the vendor code, the second (0112) is the product code. I don’t know why it is necessary to add the x’s to the usbserial arguments, but if you follow the pattern it should work.
After you edit /etc/modules, save the file, disconnect your phone, wait a few seconds, and reconnect it. You could also reboot to be absolutely sure that the updated info gets read when you connect your phone, but it isn’t necessary.
The next step is to edit /etc/ppp/options. Look for any configuration lines that start with “lcp”. You will want to comment those lines out by adding a # in front of them. By commenting out those lines, you disable lcp packets which can help solve problems with random disconnects.
Once the phone is reconnected, you will need to setup your PPP connection. Some users prefer to write shell scripts to handle the connections, and others prefer to use the GUI tools that are available. For my setup, I opted to use the kPPP dialer that is included in KDE.
Run kPPP and click configure. First, select the modem tab. You need to give the modem that you’re setting up a name. The name is arbitrary, but something simple like EVDO works well. In the device drop down, select /dev/ttyusb0.Â This part may vary by device.Â I have a Samsung A900 phone that uses the device /dev/ttyusb2.
After you setup your EVDO modem in kPPP, you can create a new dial-up account. For Verizon, dial #777. The username will be: firstname.lastname@example.org, where the x’s are your device’s 10 digit phone number. The password to connect is vzw.Â For Sprint, which does not require a unique ID, use the word “user” for both the username and the password.Â Login information for other carriers is available online if you are not with Verizon or Sprint.
If you are tethering a handset to your computer using a USB cable, I want to add a warning regarding data plans. The cell phone carriers make a distinction between unlimited data plans for the handset and phone as modem (PAM) plans. Most handsets allow the carrier to differentiate between data used on the phone itself, and data used by a computer using the phone as an EVDO modem. If you are going to use your handset as a modem, make sure that you have the correct calling plan. For example, Sprint charges $.03 per kilobyte if you tether your phone to your PC without a PAM plan. That costs $30.72 per megabyte. At that rate, downloading a typical 3 megabyte MP3 file would cost over $90.00 in usage fees on your wireless bill. Be very careful, make sure that you have your plan setup correctly or it could get very expensive.