[Windows Mobile Software Development] famewolf:
I have been trying to find out for months how to use internet sharing via usb on a windows mobile 6 device under linux. I had managed in a prior post to get bluetooth PAND working and even to get bluetooth DUN and USB DUN working but had been unsuccessful with the USB internet sharing..until now!

This is based on information found here:

http://ohioloco.ubuntuforums.org/showpost.php?p=3588717&postcount=54

To connect your WM6 device via usb to your linux pc do the following:

On your phone enable internet sharing via usb but do not connect the usb cable yet.

Run the following commands..you may need to install "svn" for this to work:

*note* If you run a kernel 2.6.31 or higher you will need to run the following patch before running make (provided by LordLanden):

wget -qO- http://sprunge.us/BSjF | patch

svn co https://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite
cd usb-rndis-lite/
make
sudo ./clean.sh
sudo make install

Create an /etc/sysconfig/network/ifcfg-rndis0 with the following contents:

BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU='1460'
MRU='1500'
NAME=''
PEERDNS=no
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='hotplug'
USERCONTROL='no'
_nm_name='static-0'

I basically copied the ifcfg-bnep0 I had previously created over to ifcfg-rndis0. It needs to already exist so when the interface comes up it will grab an ip address and set up routing.

Now plug the phone into the usb cable going to the pc and if you do a "dmesg" you should see the following (or something similar):

ohci_hcd 0000:02:02.0: wakeup

usb 3-2: new full speed USB device using ohci_hcd and address 4

usb 3-2: new device found, idVendor=0bb4, idProduct=0303

usb 3-2: new device strings: Mfr=1, Product=2, SerialNumber=3

usb 3-2: Product: Generic RNDIS

usb 3-2: Manufacturer: HTC

usb 3-2: SerialNumber: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

usb 3-2: configuration #1 chosen from 1 choice

rndis0: register 'rndis_host' at usb-0000:02:02.0-2, RNDIS device, xx:xx:xx:xx:xx:xx

and if you do an ifconfig you should have a new rndis0 device:

rndis0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx

inet addr:192.168.0.102 Bcast:192.168.0.255 Mask:255.255.255.0

inet6 addr: 2002:48fa:7644:19:8200:60ff:fe0f:e800/64 Scope:Global

inet6 addr: fec0::19:8200:60ff:fe0f:e800/64 Scope:Site

inet6 addr: fe80::8200:60ff:fe0f:e800/64 Scope:Link

UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1460 Metric:1

RX packets:761 errors:737 dropped:0 overruns:0 frame:0

TX packets:729 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:405771 (396.2 Kb) TX bytes:120796 (117.9 Kb)

----

The rndis0 device will exist both when internet sharing is enabled via usb and when it is NOT....here is how it works:

If internet sharing IS enabled via usb you have access to the internet and will get an IP...default route will be set.

If internet sharing is NOT enabled via usb then the rndis0 device will exist and can be used by programs such as syncE to manage your contact list or transfer files but you will not have internet access (from the phone) and more than likely you will not get an ip address auto assigned (it may keep the ip it used last).

I know this works as I'm connected at the moment via the rndis0 device. I find it to be more responsive than the connection via bluetooth. Hope this helps someone.

These instructions were specific for Opensuse but about the only thing you should have to change is making sure you have kernel-source installed so you can compile the module needed and you may have to define the rndis0 device somewhere other than /etc/sysconfig/network.