Neon Lemmy Koopa
February 18th, 2009, 10:23 PM
UPDATE: As of Ubuntu 9.10, this tutorial is no longer valid. I would update it, but I no longer have the HTC Fuze. My apologies for the inconvenience.
This is a tutorial showing folks how to tether AT&T's Fuze phone (AT&T version of HTC's Touch Pro) to Ubuntu Linux via USB. It is a little different from tethering a regular Windows Mobile phone to Ubuntu. This describes the steps to do so. I am mainly writing this tutorial out of my many hardships of getting this to work. Most of this tutorial is stuff I figured out myself, however one part is taken from this post (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
To tether the Fuze to Ubuntu Linux, 3 things need to be done:
Crack the phone so that any connection can be shared
Create a connection on the phone other than AT&T's MEdia Net
Mod usb-rndis-lite to allow connection from Fuze
Please note that this tutorial is ONLY for the HTC Fuze on the AT&T (USA) Network. For other HTC Touch devices (such as the Diamond or the Touch Pro), please refer to this post (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
This tutorial is done under Ubuntu Linux 8.10 aka Intrepid Ibex with software up-to-date (according to the update manager). It is also recommended that you have an unlimited data plan with AT&T. Tethering plan is recommended but not required.
Let's go.
PART I: Allow any connection on phone to be shared
AT&T has modded the registry of the Fuze so that ONLY folks with dedicated tethering plans can tether. If you have a tethering plan with AT&T, please move on to part 2. Otherwise complete this step.
Download a registry editor for Windows Mobile. I recommend PHM Registry Editor for Pocket PC (http://download.majerus.net/RegEdit/regedit.Mrln_ARM.CAB). This links directly to the install file, so I would recommend downloading this to the phone.
Open File Explorer (Start > Programs > Tools > File Explorer) and navigate to where you saved the install file. Install it by tapping it once.
Once it installs, open it. It should be in Start > Programs.
Navigate to HKEY_LOCAL_MACHINE/Comm/InternetSharing/Settings.
You will notice a key in settings called "ForceCellConnection". Delete it.
That's it. Any connection can be used for tethering. Verify this by opening Internet Sharing and seeing that there are two combo boxes (one for PC Connection and one for Network Connection)
PART II: Create a connection alternative to MEdia Net
AT&T configures the Fuze's network slightly differently from its other WinMo phones. I don't know how, but when tethering with it's MEdia Net connection, I can never seem to log on in Ubuntu. This wasn't a problem on my Windows box, but that box ain't my main box. Anyway this step is rather simple.
On your phone, go to Start > Settings and tap on the connections tab. Open Wireless Manager and make sure that Data Connection is turned OFF.
Close Wireless Manager and go into Connections. You should see "MEdia Net" and "My Work Network". Under MEdia Net, tap "Manage existing connections".
You should see a radio botton labled "MEdia Net". Tap and hold it to bring up the menu and select "Delete"
Now tap the "New" Button. In the dialog that comes up, enter a name for your connection. This name will be the name you select in Internet Sharing later. From the combo box below it, select "Cellular Line (GPRS, 3G)". Tap Next.
Leave the Access Point Name box blank. Tap Next. Leave those boxes blank as well and tap finish.
If you did all right, you should be able to get on the web. Verify this by opening Opera on the Fuze. If web pages load, it worked.
PART III: Mod usb-rndis-lite to allow Fuze connection
This is a mod to Ubuntu now. Not the phone. Apparently HTC phones have some issues tethering to Ubuntu. This is usually due to rndis failing with some packets exceeding error. Here we will modify and recompile the source code for usb-rndis-lite to (I think) ignore that error. The source for this part is here (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
Open up a terminal and do this:
sudo apt-get install subversionThis will install subversion, which is needed to get the latest version of usb-rndis-lite.
Using that same terminal, do this:
svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-liteThis will download the latest code of usb-rndis-lite.
Still in the terminal, move into the folder by doing this:
cd usb-rndis-lite
Terminal again, open the source file we are going to edit by doing this:
gedit rndis_host.c
Around line 524, find the following code
if (tmp < dev->hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
goto fail;
}and change it to this:
if (tmp < dev->hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
retval = -EINVAL;
/* goto fail;*/
}Save and close the file
Returning to the terminal, type the commands in this order to compile and install it:
make
sudo ./clean.sh
sudo make install
Now that the steps are completed, verify everything worked by plugging your Fuze into your preferred USB port. Open the Internet Sharing app on the Fuze (somewhere in Start > Programs), select USB for PC Connection and the name of the network you typed earlier for Network Connection, and tap Connect. Ubuntu should see and connect to the phone, and you should be able to browse the web, get email, IM, and so on.
From this point on, all you should need to do is open Internet Sharing, select the right things and hit "Connect" to connect.
ONE THING TO NOTE: updating usb-rndis-lite will break this. To fix it, just repeat part 3 and your good to go.
That should be all. I am willing to help anyone with problems. Also please post any ways you think will improve this tutorial.
This is a tutorial showing folks how to tether AT&T's Fuze phone (AT&T version of HTC's Touch Pro) to Ubuntu Linux via USB. It is a little different from tethering a regular Windows Mobile phone to Ubuntu. This describes the steps to do so. I am mainly writing this tutorial out of my many hardships of getting this to work. Most of this tutorial is stuff I figured out myself, however one part is taken from this post (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
To tether the Fuze to Ubuntu Linux, 3 things need to be done:
Crack the phone so that any connection can be shared
Create a connection on the phone other than AT&T's MEdia Net
Mod usb-rndis-lite to allow connection from Fuze
Please note that this tutorial is ONLY for the HTC Fuze on the AT&T (USA) Network. For other HTC Touch devices (such as the Diamond or the Touch Pro), please refer to this post (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
This tutorial is done under Ubuntu Linux 8.10 aka Intrepid Ibex with software up-to-date (according to the update manager). It is also recommended that you have an unlimited data plan with AT&T. Tethering plan is recommended but not required.
Let's go.
PART I: Allow any connection on phone to be shared
AT&T has modded the registry of the Fuze so that ONLY folks with dedicated tethering plans can tether. If you have a tethering plan with AT&T, please move on to part 2. Otherwise complete this step.
Download a registry editor for Windows Mobile. I recommend PHM Registry Editor for Pocket PC (http://download.majerus.net/RegEdit/regedit.Mrln_ARM.CAB). This links directly to the install file, so I would recommend downloading this to the phone.
Open File Explorer (Start > Programs > Tools > File Explorer) and navigate to where you saved the install file. Install it by tapping it once.
Once it installs, open it. It should be in Start > Programs.
Navigate to HKEY_LOCAL_MACHINE/Comm/InternetSharing/Settings.
You will notice a key in settings called "ForceCellConnection". Delete it.
That's it. Any connection can be used for tethering. Verify this by opening Internet Sharing and seeing that there are two combo boxes (one for PC Connection and one for Network Connection)
PART II: Create a connection alternative to MEdia Net
AT&T configures the Fuze's network slightly differently from its other WinMo phones. I don't know how, but when tethering with it's MEdia Net connection, I can never seem to log on in Ubuntu. This wasn't a problem on my Windows box, but that box ain't my main box. Anyway this step is rather simple.
On your phone, go to Start > Settings and tap on the connections tab. Open Wireless Manager and make sure that Data Connection is turned OFF.
Close Wireless Manager and go into Connections. You should see "MEdia Net" and "My Work Network". Under MEdia Net, tap "Manage existing connections".
You should see a radio botton labled "MEdia Net". Tap and hold it to bring up the menu and select "Delete"
Now tap the "New" Button. In the dialog that comes up, enter a name for your connection. This name will be the name you select in Internet Sharing later. From the combo box below it, select "Cellular Line (GPRS, 3G)". Tap Next.
Leave the Access Point Name box blank. Tap Next. Leave those boxes blank as well and tap finish.
If you did all right, you should be able to get on the web. Verify this by opening Opera on the Fuze. If web pages load, it worked.
PART III: Mod usb-rndis-lite to allow Fuze connection
This is a mod to Ubuntu now. Not the phone. Apparently HTC phones have some issues tethering to Ubuntu. This is usually due to rndis failing with some packets exceeding error. Here we will modify and recompile the source code for usb-rndis-lite to (I think) ignore that error. The source for this part is here (http://ubuntuforums.org/showpost.php?p=5888254&postcount=1).
Open up a terminal and do this:
sudo apt-get install subversionThis will install subversion, which is needed to get the latest version of usb-rndis-lite.
Using that same terminal, do this:
svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-liteThis will download the latest code of usb-rndis-lite.
Still in the terminal, move into the folder by doing this:
cd usb-rndis-lite
Terminal again, open the source file we are going to edit by doing this:
gedit rndis_host.c
Around line 524, find the following code
if (tmp < dev->hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
goto fail;
}and change it to this:
if (tmp < dev->hard_mtu) {
dev_err(&intf->dev,
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
retval = -EINVAL;
/* goto fail;*/
}Save and close the file
Returning to the terminal, type the commands in this order to compile and install it:
make
sudo ./clean.sh
sudo make install
Now that the steps are completed, verify everything worked by plugging your Fuze into your preferred USB port. Open the Internet Sharing app on the Fuze (somewhere in Start > Programs), select USB for PC Connection and the name of the network you typed earlier for Network Connection, and tap Connect. Ubuntu should see and connect to the phone, and you should be able to browse the web, get email, IM, and so on.
From this point on, all you should need to do is open Internet Sharing, select the right things and hit "Connect" to connect.
ONE THING TO NOTE: updating usb-rndis-lite will break this. To fix it, just repeat part 3 and your good to go.
That should be all. I am willing to help anyone with problems. Also please post any ways you think will improve this tutorial.