Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,813,666 Members 39,731 Now Online
XDA Developers Android and Mobile Development Forum

Howto: Use internet sharing on USB with Linux and WM6

Tip us?
 
famewolf
Old
(Last edited by famewolf; 10th November 2009 at 03:09 PM.) Reason: Patch for Kernel 2.6.31 and greater provided by LordLanden
#1  
famewolf's Avatar
Senior Member - OP
Thanks Meter 412
Posts: 2,746
Join Date: Jul 2006
Default Howto: Use internet sharing on USB with Linux and WM6

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/sho...7&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):

Code:
wget -qO- http://sprunge.us/BSjF | patch
Code:
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:

Code:
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.
 

Google Nexus 5 - 32mb - Nexus 5 Experience - CM11 Based R8.5
Google Nexus 4 - 16mb - Nexus 5 Experience - CM11 Based R8.5
B&N Nook HD+ 16MB
D70 Pro II Tablet - Generick Mod v6 by darkrickpr [Android 4.1.1]
Logitech Revue - Stock
UG802 - Finless Bob's v1.8

Retired:
TMobile HTC HD2
HTC Inspire 4G

All my devices AND the apps on them: http://www.appbrain.com/user/famewolf

 
scheich
Old
#2  
Member
Thanks Meter 2
Posts: 43
Join Date: Jan 2007
hi famewolf!

really like your idea. And I wanted to use it aswell, but I didnt get it started under Ubuntu 7.10.

First step with "svn" seems to be sucessfull.
But I can't find that /etc/sysconfig/network/ifcfg-rndis0.
I found out, that Ubuntu makes the settings in the /etc/network/interfaces.
Is that right? And what do I have to write in it? Thanks for feedback, and sry for my bad english.

greetz

scheich
 
famewolf
Old
(Last edited by famewolf; 4th November 2007 at 09:02 PM.)
#3  
famewolf's Avatar
Senior Member - OP
Thanks Meter 412
Posts: 2,746
Join Date: Jul 2006
Quote:
Originally Posted by scheich View Post
hi famewolf!

really like your idea. And I wanted to use it aswell, but I didnt get it started under Ubuntu 7.10.

First step with "svn" seems to be sucessfull.
But I can't find that /etc/sysconfig/network/ifcfg-rndis0.
I found out, that Ubuntu makes the settings in the /etc/network/interfaces.
Is that right? And what do I have to write in it? Thanks for feedback, and sry for my bad english.

greetz

scheich
You will need to configure a file similar to your eth0 file, wherever that is located...you can probably copy the eth0 config file over and rename it.

Try installing the usb driver, hooking up your phone and see if you have a new ethernet device to configure.
 

Google Nexus 5 - 32mb - Nexus 5 Experience - CM11 Based R8.5
Google Nexus 4 - 16mb - Nexus 5 Experience - CM11 Based R8.5
B&N Nook HD+ 16MB
D70 Pro II Tablet - Generick Mod v6 by darkrickpr [Android 4.1.1]
Logitech Revue - Stock
UG802 - Finless Bob's v1.8

Retired:
TMobile HTC HD2
HTC Inspire 4G

All my devices AND the apps on them: http://www.appbrain.com/user/famewolf

 
scheich
Old
#4  
Member
Thanks Meter 2
Posts: 43
Join Date: Jan 2007
Ok, works fine now. Thx, Had just some problems with my usb hub.

for Ubuntu its very easy, just add in the /etc/network/interfaces:

Code:
auto rndis0 
iface rndis0 inet dhcp
I now have the problem( but I have it with bluetooth, too) when the pocketpc disconnects, I have to restart my pc, because I dont know, how to restart the network services, or so...
Everytime I want to reconnect, the pocket pc/ifconfig say fine, you are connected, but I get no ping reply.
 
scheich
Old
#5  
Member
Thanks Meter 2
Posts: 43
Join Date: Jan 2007
yess, just 30 seconds in google, and I know it.

sudo /etc/init.d/networking restart
 
evilc
Old
#6  
Senior Member
Thanks Meter 0
Posts: 517
Join Date: Mar 2005
Location: London
Thanks ever so much for this, exactly what I was looking for.
Unfortunately, I am trying to get this working on Puppy Linux which does not come with a compiler, and the SVN package for it will not work with SSL (svn: SSL not supported error).

I really wanna get this going though as it would mean I could carry around a USB flash drive, a sync cable and my Kaiser - boot puppy linux off the USB flash drive and access the internet through my Kaiser - from any x86 based PC.
I
Samsung Galaxy S3

Motorola Defy MB525 - Retired
HTC Touch Pro - Retired
HTC Kaiser - Retired
HTC Blue Angel - Retired

There are 10 types of people in this world: Those that understand binary, and those that don't.
 
famewolf
Old
#7  
famewolf's Avatar
Senior Member - OP
Thanks Meter 412
Posts: 2,746
Join Date: Jul 2006
Quote:
Originally Posted by evilc View Post
Thanks ever so much for this, exactly what I was looking for.
Unfortunately, I am trying to get this working on Puppy Linux which does not come with a compiler, and the SVN package for it will not work with SSL (svn: SSL not supported error).

I really wanna get this going though as it would mean I could carry around a USB flash drive, a sync cable and my Kaiser - boot puppy linux off the USB flash drive and access the internet through my Kaiser - from any x86 based PC.
I
Svn = source...you are compiling a kernel module..this requires you to have both a compiler and the kernel source that matches the kernel you are running installed. svn comes from the packages subversion but just getting the source isn't gonna help you. See if one of the puppy linux developers will compile it for you.
 

Google Nexus 5 - 32mb - Nexus 5 Experience - CM11 Based R8.5
Google Nexus 4 - 16mb - Nexus 5 Experience - CM11 Based R8.5
B&N Nook HD+ 16MB
D70 Pro II Tablet - Generick Mod v6 by darkrickpr [Android 4.1.1]
Logitech Revue - Stock
UG802 - Finless Bob's v1.8

Retired:
TMobile HTC HD2
HTC Inspire 4G

All my devices AND the apps on them: http://www.appbrain.com/user/famewolf

 
evilc
Old
#8  
Senior Member
Thanks Meter 0
Posts: 517
Join Date: Mar 2005
Location: London
Yeah, I have asked, but no joy yet.

Also, I have no /etc/sysconfig dir, I am not sure where the Puppy equivalent would be.
Samsung Galaxy S3

Motorola Defy MB525 - Retired
HTC Touch Pro - Retired
HTC Kaiser - Retired
HTC Blue Angel - Retired

There are 10 types of people in this world: Those that understand binary, and those that don't.
 
evilc
Old
#9  
Senior Member
Thanks Meter 0
Posts: 517
Join Date: Mar 2005
Location: London
I just got this working in ubuntu 7.10

Do
Code:
apt-get install subversion
Then (I changed https: to http: cause I couldn't get https working on various linux OSes)
Code:
svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite
cd usb-rndis-lite/
make
sudo ./clean.sh
sudo make install
I then set Internet Sharing on my Kaiser, plugged it in, and it worked immediately.
Samsung Galaxy S3

Motorola Defy MB525 - Retired
HTC Touch Pro - Retired
HTC Kaiser - Retired
HTC Blue Angel - Retired

There are 10 types of people in this world: Those that understand binary, and those that don't.
 
famewolf
Old
#10  
famewolf's Avatar
Senior Member - OP
Thanks Meter 412
Posts: 2,746
Join Date: Jul 2006
Quote:
Originally Posted by evilc View Post
I just got this working in ubuntu 7.10

Do
Code:
apt-get install subversion
Then (I changed https: to http: cause I couldn't get https working on various linux OSes)
Code:
svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite
cd usb-rndis-lite/
make
sudo ./clean.sh
sudo make install
I then set Internet Sharing on my Kaiser, plugged it in, and it worked immediately.
Glad you are finding it useful! It's faster then bluetooth connections and uses a MTU of 8050 instead of the normal 1500 for ethernet which seems to help alot with latency.
 

Google Nexus 5 - 32mb - Nexus 5 Experience - CM11 Based R8.5
Google Nexus 4 - 16mb - Nexus 5 Experience - CM11 Based R8.5
B&N Nook HD+ 16MB
D70 Pro II Tablet - Generick Mod v6 by darkrickpr [Android 4.1.1]
Logitech Revue - Stock
UG802 - Finless Bob's v1.8

Retired:
TMobile HTC HD2
HTC Inspire 4G

All my devices AND the apps on them: http://www.appbrain.com/user/famewolf


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes