Browsed by
Tag: htc

Android 2.2 (Froyo) To Come with Tethering and Wifi Hotspot

Android 2.2 (Froyo) To Come with Tethering and Wifi Hotspot

I have been USB-tethering with my Sprint HTC Mogul for more than two years, connecting my Ubuntu 8.04~10.04 and Win XP~7 laptops/netbook to Sprint’s usually-speedy-enough 3G data network. While my Mogul still works fine as a phone, email client, light browsing, an GPS navigation with Tomtom 7 and Google Map, I am really getting tired of Windows Mobile 6.1.

I am a fan of building custom Linux kernels for the x84 architecture and having root access to an OS, so the ability to do (close to) the same on a ultra-portable embedded device with an ARM architecture with an Android OS appeals to me.

The hardware I want is something like the HTC Evo (4G) or the HTC Desire/Incredible. While the Android 2.1 that comes with them pretty much does what I need, and I think I can always tinker around to get USB or Wifi tethering, the rumor that Android 2.2 will come with that ability built-in gets me fired up.  Sprint says they’ll be charging an additional $29.99/month for Wifi hotspot on the Evo, so it remains to be seen if a carrier will disable the new built-in Wifi hotspot capability so they can charge more.

If history is an indication of what’s to come, I may have a reason to be optimistic.

Back in October 2007 when I got my Mogul, rumors were that there was a GPS module built-in, but Sprint had disabled it in the ROM.  A few months later, Sprint released a new ROM with that GPS module enabled, even though they continue to provide their proprietary Sprint Navigation at a monthly fee.  I hope they somehow decide to allow the native Wifi hotspot, but I’m not holding my breath for it.

Tethering HTC Mogul and Touch Cruise with Ubuntu (8.10 and 9.04b)

Tethering HTC Mogul and Touch Cruise with Ubuntu (8.10 and 9.04b)

*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  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 You can download the tarball at by executing:

wget -O 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.

sudo -s
apt-get install subversion
svn co
cd usb-rndis-lite/
make install

Then you’ll need to modify your /etc/network/interfaces with your preferred text editor.  vim is used here:

vim /etc/network/interfaces

Add the following lines:

auto rndis0
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, and that I can ping the Mogul at  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 and I can get hop on Sprint’s speedy EVDO RevA network with my laptop running Ubuntu Intrepid.