Home » Gadgets » Ubuntu 8.10, a tethered Windows Mobile 6 cell phone via USB, Firefox and Pidgin Messenger

Ubuntu 8.10, a tethered Windows Mobile 6 cell phone via USB, Firefox and Pidgin Messenger

To tether a Windows Mobile 6 cell phone (make sure you have a data plan that allows tethering), you will need to install a few things:

sudo aptitude install subversion build-essential linux-headers-`uname -r`

Once those are installed, we need to download and build the latest usb-rndis-lite code:

svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite
cd usb-rndis-lite/
make
##  remove the existing usb-rndis drivers with clean.sh
sudo ./clean.sh
sudo make install

Before you plug in the cell phone, you will need to blacklist the rndis_wlan kernel module:

sudo echo "blacklist rndis_wlan" >> /etc/modprobe.d/blacklist
sudo rmmod rndis_wlan

Plug in your cell phone. If you type “dmesg”, you will see something like the following:

[  152.312099] usb 4-1: new full speed USB device using uhci_hcd and address 3
[  152.500604] usb 4-1: configuration #1 chosen from 1 choice
[  154.138352] rndis0: register 'rndis_host' at usb-0000:00:1d.3-1, RNDIS device (SynCE patched), 80:00:60:0f:e8:00
[  164.441074] rndis0: no IPv6 routers present

This is showing that the phone was found. Let’s take a look at the list of interfaces using ifconfig:

....
rndis0    Link encap:Ethernet  HWaddr 80:00:60:0f:e8:00  
          inet addr:169.254.2.2  Bcast:169.254.2.255  Mask:255.255.255.0
          inet6 addr: fe80::8200:60ff:fe0f:e800/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:8050  Metric:1
          RX packets:29 errors:46 dropped:0 overruns:0 frame:23
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2097 (2.0 KB)  TX bytes:9146 (9.1 KB)

On the phone, turn on Internet Connection Sharing and connect via USB. Wait a few seconds (obtaining an ip address can take up to a minute or so) then issue the ifconfig command again:

....
rndis0    Link encap:Ethernet  HWaddr 80:00:60:0f:e8:00  
          inet addr:192.168.0.102  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::8200:60ff:fe0f:e800/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:8050  Metric:1
          RX packets:8113 errors:13535 dropped:0 overruns:0 frame:6766
          TX packets:8643 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6063101 (6.0 MB)  TX bytes:1890604 (1.8 MB)

Yay! We are connected.

In order to use Firefox, Pidgin or any other software that uses Network Manager, you need to stop the Network Manager daemon:

sudo /etc/init.d/NetworkManager stop

You will be able to use your applications again 🙂

Share Button

Comments

  1. georgeascott says:

    i had this working not to long ago. but i ran into some other errors from being update happy. only have the net on my phone and so i couldn’t svn co. instead i had a friend visit the page and save each file as a text. then email them to me. i followed some tutorial that told me to create a ifcfg-rndis0 file, but it wasnt ubuntu specific, so i just thew it in the /etc/networking folder. everything was working, but then as i said, i got update happy. one thing lead to another. before long, i was having to reboot the phone several times to get an ip. then the phone would connect to the network (in ICS) but restarting the network on ubuntu would say the network was down..and finally to the point of my phone only telling me to check the usb connection..frustrated with everything that went wrong, i backed up and installed 7.10. i am back to the email with the txt files. and it wont let me sudo clean.sh or sudo ./clean.sh (command not found.)

    and still, the phone says check usb connection. which i have done many times, tried each and every usb port. rndsi device shows up on dmesg. but when i start ICS , the rndis device unregisters and is becomes just an ordinary highspeed usb device. i have no idea where i messed this up. and att isnt kind to me with linux support. yet they’re happy to charge me more and put a limit on my monthly usage. pshaw.

  2. Marcello says:

    Hi Jason,

    thanks for your help with this article. I would like to add my two cents to this so:

    I have a Vodafone Italy connection and in order to connect my eeepc running ubuntu 8.10 with my HTC Diamond I have modified the source code of rndis in this way:

    after download the code how you have suggested I have modified the code:

    $ gedit rndis_host.c

    on line 524, I have searched for this code:

    if (tmp hard_mtu) {
    dev_err(&intf->dev,
    “dev can’t take %u byte packets (max %u)\n”,
    dev->hard_mtu, tmp);
    goto fail;
    }

    and replaced it with this

    if (tmp hard_mtu) {
    dev_err(&intf->dev,
    “dev can’t take %u byte packets (max %u)\n”,
    dev->hard_mtu, tmp);
    retval = -EINVAL;
    /* goto fail;*/
    }

    Then I have continued with your suggested steps (compile & install). Now my ICS and Ubuntu 8.10 are up and running!

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*

Facebook login by WP-FB-AutoConnect