Verizon AirPrime 5220 on MacOS X
Latest driver version: 1.2 Beta Released Friday, 12-Mar-2004
Help support my driver
habit!
You can help support me and potentially pay less for your Verizon EVDO service at the same time! Robert Kim, a Verizon sales representative, has agreed to share part of his
commission with me on all 2 year EVDO and cell phone
agreements signed through him. Simply sign up for service at www.evdo-coverage.com naming me as the referrer. Even if you already have a service agreement in place Robert may be able to save you some money. See the detailed discussion for more information. It has always been and will always be my intent to make the driver and corresponding technical support available for free on a time permitting basis. This arrangement allows me to keep that commitment while providing users a painless way to support my work. For more information about this opportunity, including my thoughts, see the detailed discussion at the bottom of this page.
The AirPrime 5220
The AirPrime 5220 is the 1xEVDO card currently used by Verizon Wireless under the moniker of "broadband high speed wireless." A picture of the card I have is on the right. This page describes how to use the aforementioned card with a Macintosh running MacOS X. Starting with version 1.2 Beta of the driver high speed downloads are supported! I've seen speeds in excess of 100Kbytes per second when downloading some of the larger files from my web site. There may still be some problems with upload performance. If you experience such problems please provide feedback on the mailing list.
If you have a Sierra Wireless 1xRTT card Alex Snoeren has a page detailing how to use that card with MacOS X. In fact, some of the information on this page was gleaned from Alex's page.
Step 1: Activate your card
Activating the card currently requires a Windows machine. Once activated, the Windows machine is no longer necessary. Follow the activation directions included with the card when activating it using Windows.
Step 2: Install the Driver
Download my AirPrime 5220 driver installer package by clicking here. Then install it as you would any other MacOS X package (double click it and follow the directions). It is safe to use the package to install over a previous hand installation. For those interested, install by hand directions, remove by hand directions, and a full description of the driver with links to the xcode project are available at the end of this page. Presently I have tested the driver only with OS 10.3 (aka Panther).
Step 3: Configure the card
If the card is already in the machine, remove it and reinsert it. Open up network preferences, and select "AirPrime CDMA Wireless PC Card" from the "show" menu. Click the "PPP" tab and configure as follows:
Phone Number: #777
Account Name: xxxxxxxxxx@vzw3g.com (Your phone number)
Password: vzw
Then click on the "Modem" tab and select "AirPrime 5220" from the "Modem:" popup menu. All other settings should be left alone. Apply the changes.
Step 4: Connect and Enjoy!
Use Internet Connect in the standard way to dial up and enjoy your wireless internet connection! Please provide feedback about this driver via the mailing list, both positive and otherwise, so I can continue to make improvements.
| 
Sign up for EVDO service here [details] |
Brian Jepson has graciously volunteered to host a mailing list for the AirPrime 5220 driver. The list is intended to foster a sense of community while providing a useful technical resource for using your 5220 with MacOS X. I regularly participate in the list, so please ask any questions you may have there. There is a searchable list archive available, as well as more diverse technical knowledge to help troubleshoot and problems. Also, if you would be kind enough to provide feedback about the driver on the list, I would appreciate it. I will be announcing new versions of the driver as they become available on the list. You can sign up for the list and view the archives at http://www.as220.org/mailman/listinfo/pc5220-osx.
Detailed information on installing the AirPrime 5220 Driver by hand
These directions assume you are somewhat comfortable with the command line in OS X. All the commands listed should be run in order from the command line (ie, in Terminal.app).
- Make sure the 5220 card is NOT inserted in the computer.
- Compile the xcode project found in the "AirPrime 5220 EVDO Driver" folder.
- Open up Terminal.app, found in the Utilities folder inside the Applications folder. Once Terminal.app is open, change directories in the command line window to the compiled source directory. The easiest way to do this is to type "cd" followed by a space, then drag and drop the "AirPrime 5220 EVDO Driver" folder into the terminal window, and hit return.
- Change the ownership of the kernel extension to root, and group wheel. This command may ask you for your password. If so, enter it. Note you must do all these steps from an "Administrator" account:
% sudo chown -R root.wheel build/AirPrime5220Driver.kext
- Move the driver into the System folder, so OS X can find it:
% sudo mv build/AirPrime5220Driver.kext /System/Library/Extensions
- Rebuild the kernel extension cache:
% sudo rm /System/Library/Extensions.kextcache
% sudo kextcache -k /System/Library/Extensions
- Force the kernel extension daemon to reload the cache. You can do this by either rebooting your machine, or by typing:
% ps ax | grep kextd
You should see a list that looks something like:
87 ?? Ss 0:01.92 kextd
3759 std R+ 0:00.00 grep kextd
Locate the kextd entry by looking in the far right column for "kextd" and not "grep kextd". Once the kext entry is found, note the process number in the far left column. In the above example the process number is "87". They type:
% kill -HUP 87
Replacing "87" with the process number you noted above. If you somehow mess up this process the safest way to recover is to reboot your machine.
- Install the modem script (note the quotes, they are very important):
% sudo cp "AirPrime 5220 Modem Script" "/Library/Modem Scripts/AirPrime 5220"
You must quit the "System Preferences" program and open it again before it will see the new modem script.
- Close the terminal window (by typing "exit"), and quit Terminal.app if desired.
-
Continue with the configuration directions described above.
Detailed information on uninstalling the AirPrime 5220 Driver by hand
It was rather presumptuous of me to not post uninstall directions, so here they are. The two most common circumstances for uninstalling are a botched install, and no longer wanting/needing the driver. Performing an uninstall followed by a reinstall has been reported to fix initial mishaps, and should be the first step in troubleshooting a dysfunctional card. To uninstall the driver do the following:
- Remove the AirPrime card from your system.
- If the AirPrime driver was loaded, unload it. Typically the driver will only be loaded if you just had the card in your system. To check if the driver is loaded, do the following from the command line:
% kextstat | grep AirPrime5220Driver
If the command doesn't produce any output the driver isn't loaded. On the other hand, if the output looks similar to:
100 0 0x1afea000 0x33000 0x32000 com.bellardo.driver.AirPrime5220Driver
then the driver is currently loaded and needs to be unloaded.
To unload the driver type:
% sudo kextunload /System/Library/Extensions/AirPrime5220Driver.kext
from an Administrator account. It will probably prompt you for the account's password.
- Remove the driver from the Extensions folder. You can do this one of two ways. The safest way is to use the Finder. Go to /System/Library/Extensions and move AirPrime5220Driver.kext into the trash. Alternatively you can delete the driver from the command prompt, but this is more dangerous. To delete it from the command prompt type:
% sudo rm -rf /System/Library/Extensions/AirPrime5220Driver.kext
- Remove the kext cache. Do this by executing the following command at the command prompt:
% sudo rm /System/Library/Extensions.kextcache
- Rebuild the kextcache by executing the following from the command prompt:
% sudo kextcache -k /System/Library/Extensions
- Remove the modem script by doing the following at the command prompt:
% sudo rm "/Library/Modem Scripts/AirPrime 5220"
- And lastly, reboot your machine.
This section explains how you can help support my work, the rational behind the particular support program, and how it effects (or doesn't effect as the case is) the availability of future driver releases and technical support.
Background
I've had a number of gracious users offer to pay me for the driver, but I have always refused to accept any form of payment. It is my personal, and perhaps somewhat idealistic, conviction that all drivers should be available for free. Even accepting voluntary payments contradicts that notion, so I won't do it. Nor do I ever plan on doing it. As luck would have it a support opportunity presented itself that fits in nicely with my convictions: users have a way to support my work and potentially save money at the same time, and I have a way to get indirectly reimbursed for some of my time I've put into this driver. While reading the rest of the description please bear in mind this is completely optional and users are not and should not feel obligated to participate.
How it works
Everyone either knows or quickly realizes that cell phone companies pay commission to sales representatives for all new agreements they bring in. The commissions are built in to the cost of the service and are unavoidable. Robert Kim, a Verizon sales representative based in Southern California, has agreed to share the service commission with me for all clients I refer to him. When you sign up for Verizon EVDO service you must sign a 1 or 2 year agreement. You may go directly through Verizon, or through a sale representative. Either way the service price, before any discounts, is the same and you get the exact same terms in your service agreement. If you sign up for service through Robert he typically has discounts and other incentives to offer that may well make it cheaper than going directly through Verizon. In addition to potentially saving you money, I get a part of the commission on all 2 year service agreements Robert signs up. So the cost to you is the same or less, but you are helping to support my work. This arrangement allows me to receive support without violating my conviction that drivers should be freely available.
If you already have service it is still worthwhile to contact Robert. In certain circumstances he may be able to reduce your monthly bill and provide you with superior customer support. Whatever you decide to do don't worry, you will still have unlimited access to the driver and all the same technical support. Robert has also agreed to share the commission on non-Mac EVDO service and non-EVDO service with me too! So if you are in the market for cellular products, but already have EVDO service, give Robert a call and you will still be supporting me.
Sign me up!
OK. You've made the decision to help support my work. The next step is to
contact Robert to sign up. He has set up a website for new EVDO serivce: www.evdo-coverage.com. Should you have any other needs he can also be reached via email at robertk@evdo-coverage.com,
and phone at (206) 350-3305. He has the EVDO cards available, but there is no commission on the hardware. Remember that you are not obligated to support me, but thanks in advance if you do!
But I already have a service agreement!
No problem. Robert may be able to save you money on your existing service agreement. As a Verizon sales representative he has access to various discounts, for example the corporate discount. Depending on your current service agreement and your circumstances he may be able to get a lower service rate for you. In addition Robert can be a single point of contact for all your wireless service(s), which can save you time and frustration. Just contact him via email or by telephone at (206) 350-3305 and he will provide full details on any potential savings he can offer you.
How this effects the driver
If you have made it this far hopefully you realize that this doesn't effect the driver in any way. There is no separate driver for those who support me and I will continue to provide what technical support I can on a time permitting basis (please take advantage of the mailing list and related archives for technical support, I'm subscribed to it and read the postings routinely). Everyone gets the same freely available driver and technical support as before regardless of whom you signed your agreement with.
Feedback
This commission sharing arrangement is a new endeavor for me. As such I am extra sensitive to the user community's feelings and thoughts regarding it. I've personally meet with Robert and asked him to not send out mass marketing to the clients I refer, and in general treat them as I would want to be treated. If you have any feedback about the experience, positive, negative, or otherwise please email me at bellardo@cs.ucsd.edu so I can keep an eye on the quality of the experience. I'd also love to hear what you think of the program. For example, does it rub you the wrong way and therefore it should be dropped? Or perhaps you think it is a great opportunity for everyone involved? Whatever your opinion is my email address is the same: bellardo@cs.ucsd.edu. Thanks!
Detailed information on the AirPrime 5220 MacOS X Driver
This section details the AirPrime card (useful to get it working on other platforms), and details the MacOS X driver that I put together.
The AirPrime 5220 Card
The AirPrime card interfaces with the host computer via the PC Card slot. It contains a built in USB host controller, which is ohci compliant. Attached to the USB controller is the actual modem device (idVendor=0xf3d, idProduct=0x112).
The modem device has one configuration with one interface. That interface has three pipes - control, bulk in, and bulk out. The bulk pipes are the important ones. When taken together the bulk pipes form a full duplex communication stream to the modem on the CDMA card. This modem uses standard AT command set commands, and requires no further configuration to operate. Since the modem stream requires no configuration the control pipe can effectively be ignored. No doubt there is good information to be had (like the activation sequence) from the control pipe, but it is strictly undocumented and unnecessary for simply connecting to the Internet.
To save some time digging through my modem script, the initialization sequence I used was:
ATE0V1&F&D2&C1&C2S0=0
ATE0V1
ATS7=60
MacOS X AirPrime 5220 Driver Details
MacOS X already includes an OHCI compliant USB controller driver which automatically attaches to the AirPrime card upon insertion. So all that is left to do is present the aforementioned bulk stream pipes as a serial interface to the OS.
I started with the AppleUSBCDCSampleDriver example driver. This is a USB device class driver for the communication device class. In essence it is a USB modem driver, which is pretty much what we need in this circumstance. I changed a number of mundane settings so it wouldn't conflict with any other version of AppleUSBCDCSampleDriver that might happen to be installed on the machine. Then I changed the matching dictionary so the driver would match against the AirPrime card. After that was the tricky part. The AirPrime card is not a USB communication device class (CDC) device. There was a fair amount of code in the sample driver that probed for, and determined the capabilities of, CDC devices. I had to remove this code. The sample driver also sent a number of CDC control commands to the device, but since we don't know the control protocol of the AirPrime, this code also had to be removed. These changes resulted in a working driver. You can download my xcode project by clicking here.
After the driver was operational it was simply a matter of modifying a modem script with the correct initialization parameters and configuring the network interface as described above. Then I was off and to the races!
Older Versions of the Driver
Last Modified by John Bellardo (bellardo@cs.ucsd.edu)