Internet sharing on USB with Linux and Windows Mobile 6
|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:
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'
Basically copy the ifcfg-bnep0 you need 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.