*Update Dec 24, 2009: Just tried tethering with my Toshiba NB205-N312/BL, which I installed Ubuntu Netbook Remix (9.10). Turns out that tethering is even easier. RNDIS already works out of the box for the 2.6.31-15 kernel. There is nothing to do on the netbook. Just skip to step 2 to modify the phone’s registry.
*Updated July 22, 2009: If you are looking to tether your Mogul with Windows XP/Vista, please read this related post.
*Updated March 30, 2009: Yesterday, I upgraded my Intrepid(8.10) to Jaunty (9.04) Beta following the easy instruction at http://www.ubuntu.com/testing/jaunty/beta. I’m happy to report that tethering still works perfectly as it did in 8.04 and 8.10.
I have a Sprint Mogul, which is made by the Taiwanese handset maker HTC. I used to be able to tether it with my laptop which runs Windows XP Pro SP3, enjoying Sprint’s speedy EvDO RevA network at around 1mbps/300kbps (down/up). That was before I updated Mogul’s ROM to Windows Mobile 6.1. It’s especially handy when travelling on the road, as was the case when I drove from Kansas City back to Northern California a few months ago. It also comes in handy when going to a coffee shop that doesn’t have free Wifi. Ever since I updated the ROM in my Mogul to WM6.1, I started getting “Error 67” on the device when trying to start Internet Sharing. Following here, I was finally able to get it to work.
That would take care of Internet Sharing (tethering) in Windows, but my primary OS is Ubuntu, now running Intrepid Ibex. I need to to get the packets flowing between Ubuntu and WM6.1. I have it working now. If you want the details, please leave me a reply. I figure I won’t spend the time detailing it if no one wants to know.
Most of the information are gathered from various posts on other forums or blogs. I will attempt to re-organize them in a more straight forward way for Sprint Mogul users running WM6.1 with laptop running Ubuntu 8.10, although it may still work for similar setups.
1. Get rndis-lite.
You need to get the source from its svn repository and compile it.
*Please note that the rndis project evolves over time, so you may need to make a few adjustments.
On 4/19/2010, I found rndis-lite’s ViewVC repo at http://synce.svn.sourceforge.net/viewvc/synce/trunk/usb-rndis-lite/. You can download the tarball at http://synce.svn.sourceforge.net/viewvc/synce/trunk/usb-rndis-lite.tar.gz?view=tar by executing:
wget -O usb-rndis-lite.tar.gz http://synce.svn.sourceforge.net/viewvc/synce/trunk/usb-rndis-lite.tar.gz
Extract it, then run the usual make and make install afterwards to compile it.
The following block of shell commands is from the old instruction for your reference.
apt-get install subversion
svn co http://synce.svn.sourceforge.net/viewvc/synce/trunk/usb-rndis-ng/
Then you’ll need to modify your /etc/network/interfaces with your preferred text editor. vim is used here:
Add the following lines:
iface rndis0 inet dhcp
Reboot Ubuntu. Once it’s reboots, plug your Mogul via a USB cable to your laptop.
2. Modify your Mogul’s registry.
There are couple of ways to modify your Mogul’s registry. I downloaded a free WM program called PHM Registry Editor (v0.70) from here. Once the app is installed on your Mogul, fire it up and browse to My Device->HKEY_LOCAL_MACHINE->Comm->Internet Sharing->Setings. There is a registry key named “ForceCellConnection” which is currently set to “Phone as Modem”. Change it to “Sprint PCS”. Save your registry settings and quit the program. You may need to reboot your Mogul, too.
3. Tether and Surf.
Now that both the laptop and Mogul have been setup, you should be ready to go. When you plug your Mogul into your laptop’s USB port, you should see the EVDO icon change to a double arrow, indicating a connection established with your laptop. A network interface called “rndis0” or “eth1” should display with your do a “ifconfig”. I have had to re-setup my laptop several times, sometimes I get “rndis0” and sometimes I get “eth1”, not sure why. Anyway, I see that I have an network interface named “eth1” with IP of 169.254.2.2, and that I can ping the Mogul at 169.254.2.1. I have also setup Synce to sync my contacts and calendar, but that’s another story. Anyway, on your Mogul, go to Internet Sharing. Make sure the dropdown for PC Connection says USB, and click on “Connect” at the bottom. If all goes well, you should wait a few second (takes about 7 seconds for me) and the DHCP server on the phone should assign a new ip for your interface at “eth1” (or “rndis0”). My eth1 now has an IP address of 192.168.0.102 and I can get hop on Sprint’s speedy EVDO RevA network with my laptop running Ubuntu Intrepid.