Monday, February 25, 2008

USB Tether AT&T Tilt (WM6) to Linux Laptop (Fedora 8)

I spent sometime over the weekend trying to get my Windows Mobile 6 phone tethered to my laptop so that I could use my phone's Internet access from my laptop. This, in most cases, is a simple process but for some reason it seems a bit more difficult with WM6 on my AT&T Tilt (HTC 8925).

I had done some searching for instructions on how to do this but for the most part, came up empty handed. I should probably mention that I am attempting to tether to a laptop running Fedora 8 (Linux Kernel 2.6.23).

I will say that I found some interesting information that got me pointed in the right direction on the SuSE forums, so I must give credit where credit is due and tell you that http://suseforums.net/index.php?showtopic=41219 is where I found the actual process on how to get the tether to work. I will say that the only relevant thing here is the information on creating the network interface configuration file (ifcfg-rndis0). In my case, this file went in /etc/sysconfig/network-scripts as I am using Fedora. I did not have to get the usb-rndis-lite kernel patches from SVN like the posting indicated I needed to do but this might just be due to the fact that I have the functionality from somewhere/something else. So, if you aren't able to get it to recognize your phone as a network device when you plug in the USB cable, you might want to look at patching the kernel with the usb-rndis-lite package.

Now, here is where I stumbled for some time. In the forum posting referenced above, you are instructed to enable Internet Sharing via USB on the phone. Well, in my case (and from searching, many other cases) the utility that provides Internet Sharing functionality has been replaced by the Wireless Modem utility. From the looks and sounds of it, the Wireless Modem utility does not work. I will admit that I didn't spend too much time trying to get it to work either. I just know that my initial effort proved to go nowhere so I quickly started looking for a way to get the Internet Sharing utility installed and working.

So, I jumped back on the web and starting searching for the utility. What I ran across was many references to installing a CAB from xda-developers that would add the Internet Sharing utility. Although I hate to install applications on my phone (especially when posted on a forum) I decided that I would at least download it and pull it apart to see what it did. Well, that is when I found out that I would have to register for a forum account on xds-developers to continue with a download. Well, this isn't fun and really not fair. So, my next task was to do a search for the CAB file name itself. My thought was that someone would have to had reposted it in some other forum or blog that would not require me to sign-up for an account in order to download it. Well, no luck!

I did not give up though. I remembered that when I first got my phone a few months ago I had stumbled across some Internet or sharing utility of some kind on my phone. I just could not remember what or where I stumbled across it at. So, I began to browse my phone from WM6 File Explorer. After sometime of browsing I came up empty handed. I took a break for an hour or so and then started browsing again. My second browse turned success.

It turns out that Internet Sharing is already installed on my AT&T Tilt (and probably other WM6 devices that are in the same situation). The utility just isn't accessible from the Start menu or Programs/Settings. But this is an easy fix! No need to install or run some custom CAB from some forum posting. Instead, just add the shortcut that already exists on your phone to the Start menu or to Programs. It is that simple!

The shortcut for Internet Sharing is named, wait for it... Internet Sharing. And it is located in the Windows directory. If for some reason you do not have the Internet Sharing shortcut already created on your device in the Windows directory, maybe you can use the IntShrUI shortcut. And if that shortcut doesn't exist, maybe just create your own shortcut referencing the program file name IntShrUI (also located in the Windows directory).

In my case, I simply copied /Windows/Internet Sharing to /Windows/Start Menu/Programs/Tools. Then I was done. I could then start Internet Sharing by going to my Start menu and selecting Programs and then Tools and then Internet Sharing.

Now that I had Internet Sharing up and running on my phone, I could enable it as instructed in the forum posting. Once I did this and created my network interface configuration file (ifcfg- rndis0) I plugged my phone into my laptop via USB and sure enough, I had a new network interface named rndis0 that now had an IP address of 192.168.0.102. Not only did my WM6 phone give my laptop and IP address, it also took care of DNS by giving my laptop a DNS address of 192.168.0.1 (which also happens to be the gateway address).

My next goal is to get this working via Bluetooth. I just like the idea of having my phone on my hip and checking my e-mail from my laptop without the need of pulling on the USB cable or hooking anything up. Of course, if I do get it working via Bluetooth, I would only use such a connection for limited or short sessions. USB is a much better solution as it is a bit more secure and my phone can charge while I am using its Internet access.

3 comments:

Take A Geek Inside My Brain said...

Could you please post your config file? I tried copying the example from the forum link, and I receive the following messages in /var/log/message:

"..had neither TYPE nor DEVICE keys"

I'm running Fedora 9 w/ the AT&T Tilt, and have yet to find a way to successfully connect, even with the lite driver.

Thanks !

Unknown said...

I am not sure what the error is your are receiving in /var/log/messages as I do not get this error. Of course, I also can not get it to work either. It now appears that the device is simply connected as an ipaq device using my previous instructions and it never shows up as an RNDIS device, unless Internet Sharing and Wireless Modem is off at which point it is happily detected as an RNDIS device but as we are not using Wireless Modem or Internet Sharing the network connection that is established only goes to the phone (not the phones network).

I did discover another interesting change and that is when you turn on the Wireless Modem (from Wireless Manager) and plug it into the USB port in Fedora 8 or 9 NetworkManager automatically detects it as a Broadband Wireless device but it detects it as a CDMA device instead of a GPRS/GSM device.

I also tried installing the usb-rndis-lite driver but I do not think this is the issue and it appears that RNDIS support is already in the Kernel.

I will try to do some more digging around but am back to square one.

Unknown said...

I have looked at this a few different times over the past few months but didn't come up with anything. I also didn't spend a whole lot of time on it though.

I have recently installed Fedora 10 on one of my laptops though and have found that it is back to working the way it was in Fedora 8. If I start ICS (Internet Connection Sharing) on the Tilt (WM6) and then plug it in to the Fedora 10 machine via USB NetworkManager gets an IP and DNS address and sets up a route. I can then reach the internet via my phone.

This still does not completely work when using Wireless Modem (the tethering method that is supposed to work in WM6). When using WModem NetworkManager sees the phone as a CDMA device rather than a GSM device. I have played around with this but am still not sure what is driven NetworkManagers ability to detect decive/connection type. I was under the impression it was HAL so I made some changes to the modem fdi file to get it to see the phone as a GSM device but it still insists it is CDMA. Seems like I am either missing something or NM isn't completely relying on HAL for this information.