Official TWRP Recovery Lands on Micromax Canvas Magnus

With the recent release of Android One, Micromax and MediaTek released fully buildable … more

Update Overload: SuperSU Heavily Updated

There are apps and apps out there. Very few can reach the level of popularity required to stay at … more

Lollipop Leak Available for the Sprint Galaxy S5

Since the Android 5.0Lollipop’s official release not too long ago, we’ve seen … more

CPU Spy Gets an Android Lollipop Makeover

At some point in the distant past, you probably heard of CPU Spy for Android by XDARetired … more

Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

Howto: Use internet sharing on USB with Linux and WM6

OP famewolf

30th October 2007, 12:58 AM   |  #1  
famewolf's Avatar
OP Senior Member
Thanks Meter: 412
 
2,753 posts
Join Date:Joined: Jul 2006
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.
Last edited by famewolf; 10th November 2009 at 04:09 PM. Reason: Patch for Kernel 2.6.31 and greater provided by LordLanden
4th November 2007, 08:09 PM   |  #2  
Member
Thanks Meter: 2
 
43 posts
Join Date:Joined: 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
4th November 2007, 08:52 PM   |  #3  
famewolf's Avatar
OP Senior Member
Thanks Meter: 412
 
2,753 posts
Join Date:Joined: Jul 2006
Quote:
Originally Posted by scheich

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.
Last edited by famewolf; 4th November 2007 at 10:02 PM.
5th November 2007, 04:06 PM   |  #4  
Member
Thanks Meter: 2
 
43 posts
Join Date:Joined: 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.
5th November 2007, 04:13 PM   |  #5  
Member
Thanks Meter: 2
 
43 posts
Join Date:Joined: Jan 2007
yess, just 30 seconds in google, and I know it.

sudo /etc/init.d/networking restart
13th November 2007, 04:41 PM   |  #6  
Senior Member
Flag London
Thanks Meter: 0
 
517 posts
Join Date:Joined: Mar 2005
More
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
13th November 2007, 06:25 PM   |  #7  
famewolf's Avatar
OP Senior Member
Thanks Meter: 412
 
2,753 posts
Join Date:Joined: Jul 2006
Quote:
Originally Posted by evilc

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.
14th November 2007, 06:13 PM   |  #8  
Senior Member
Flag London
Thanks Meter: 0
 
517 posts
Join Date:Joined: Mar 2005
More
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.
20th November 2007, 03:07 PM   |  #9  
Senior Member
Flag London
Thanks Meter: 0
 
517 posts
Join Date:Joined: Mar 2005
More
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.
20th November 2007, 03:49 PM   |  #10  
famewolf's Avatar
OP Senior Member
Thanks Meter: 412
 
2,753 posts
Join Date:Joined: Jul 2006
Quote:
Originally Posted by evilc

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.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes