Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Nov 2010 11:28:35 +0000
From:      four.harrisons@googlemail.com
To:        freebsd-questions@herveybayaustralia.com.au, ait@p2ee.org,  ivoras@freebsd.org
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Android usb tethering
Message-ID:  <4cd3bef4.28a4df0a.5edf.56ec@mx.google.com>

next in thread | raw e-mail | index | archive | help





On Tue  2/11/10 11:37 AM , freebsd-questions@herveybayaustralia.com.au

wrote:

 On Tue  2/11/10 10:11 AM , Alejandro Imass  wrote:On Mon, Nov 1, 2010

 at 6:25 PM, Ivan Voras  wrote:

  > On 11/01/10 15:42, Mark Atkinson wrote:

  >>

  >> -----BEGIN PGP SIGNED MESSAGE-----

  >> Hash: SHA1

  [...]

  > In the above messages, the kernel detaches the storage device

 (umass) and

  > tries to attach the new device, which doesn't have a driver so

it's

 attached

  > as "ugen" - generic USB.

  >

  Yes. One has to remember that USB is just the bus just like pci,

  microchannel, etc. Even though you have access to the device on the

  bus you still need a driver for that specific ethernet chip your

  kernel. This is analogous to having a video card on the pci bus, you

  still need for the kernel to drive the specific chipset of the card

  regardless if it can see it on the bus.

  I have an HTC Nexus One so I may fiddle with this and see if I can

  help some more here. I am wishful that at least we can get a tty

just

  like other gsm modems and from there it's pretty straight forward

  using wvdial or alike. If it's only the Ethernet over usb like you

  mention, then the chipset driver would have to be translated/ported

 to

  the FBSD kernel, if it's not already there ?

 Ok. But I will clarify here:

 The HTC Android systems uses an "Internet Sharing" feature-

 essentially Google has coded in routing/nat system into the base OS

 (probably moding the leftover code already in the linux base), and is

 trying to allow similar using bluetooth and wifi at a later date as

 well. The RNDIS is a M$ system that allows sharing anything over USB

 (network, files, etc- but all essentially operated as network

anyway),

 something they've been playing with for some years- I was looking for

 an A-A USB cable since around 2003 or so to quickly transfer files

 when needed. Apparently M$ opened the specs a year or two ago and

 everyone's jumped on to use it. So where Google started was to start

 allowing the use of the router/nat via RNDIS USB - somehow this was

 easier than allowing bluetooth or wifi (probably security and

 available hardware features).

 So yes, apparently the phone hooks up as a usb mass storage device,

 uploads a file to the computer, and disconnects and becomes a network

 device. Here is the output from linux:

 usb 2-2.2: new high speed USB device using ehci_hcd and address 4

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

 scsi9 : SCSI emulation for USB Mass Storage devices

 usb-storage: device found at 4

 usb-storage: waiting for device to settle before scanning

 usb 2-2.2: New USB device found, idVendor=0bb4, idProduct=0ff9

 usb 2-2.2: New USB device strings: Mfr=3, Product=2, SerialNumber=1

 usb 2-2.2: Product: Android Phone

 usb 2-2.2: Manufacturer: HTC

 usb 2-2.2: SerialNumber: SH07TNX00726

 usb-storage: device scan complete

 scsi 9:0:0:0: Direct-Access     HTC      Android Phone    0100 PQ: 0

 ANSI: 2

 sd 9:0:0:0: [sdf] Attached SCSI removable disk

 sd 9:0:0:0: Attached scsi generic sg6 type 0

 usb 2-2.2: USB disconnect, address 4

 usb 2-2.2: new high speed USB device using ehci_hcd and address 5

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

 usb 2-2.2: New USB device found, idVendor=0bb4, idProduct=0ffe

 usb 2-2.2: New USB device strings: Mfr=3, Product=2, SerialNumber=1

 usb 2-2.2: Product: Android Phone

 usb 2-2.2: Manufacturer: HTC

 usb 2-2.2: SerialNumber: SH07TNX00726

 usbcore: registered new interface driver cdc_ether

 usb0: register 'rndis_host' at usb-0000:00:04.1-2.2, RNDIS device,

 ae:f6:3d:da:20:39

 usbcore: registered new interface driver rndis_host

 usbcore: registered new interface driver rndis_wlan

 usb0: no IPv6 routers present

 usb 2-2.2: USB disconnect, address 5

 usb0: unregister 'rndis_host' usb-0000:00:04.1-2.2, RNDIS device

 So. What would be my next step to make this work? OpenMoko have

 something similar and I tried moding some of their scripts (they've

 made theirs work with ALL OS- not just linux and Winblow$! Take heed

 manufacturers!) but it didn't mesh on the Android. I still end up

with

 a generic host.

 As I mentioned, I tried modifying the cdce driver and the device list

 but that didn't help either, so when I moded the scripts and

devd.conf

 I figured that was the missing piece of my puzzle.

 I'd actually pay someone to do this, but I do need to figure this out

 for myself anyway so I'm diving in deep and going to keep on

 struggling till I get it. I need it figured out before the year's end

 so I'm not going to sit on my laurels :) That, and a usb mass storage

 device emulator to trick a dumb digital photo frame....

  >

  > 

So I have more on this: sourceforge.jp has a project rndis for

freebsd.



Its a little hard to navigate, but I downloaded the source code and

tried to build it on 8.0. No go, but I'm not sure what usb library its

using. I think it said usb2, but I'm not exactly sure what that meant

(usb2.0, or libusb2, whatever).



Now, I've only just quickly grabbed it and tried to make- I haven't

had a chance to look too deeply into it as yet- but these are the

errors if someone could throw me a clue as to what it might be

indicating? (wrong library? generic error I have to debug?)



if_rndis.c: In function 'rndis_recv_message':

if_rndis.c:985: warning: format '%d' expects type 'int', but argument

3 has type 'long unsigned int'

if_rndis.c: In function 'rndis_bulk_read_callback':

if_rndis.c:1167: warning: format '%d' expects type 'int', but argument

4 has type 'long unsigned int'

if_rndis.c:1187: warning: format '%d' expects type 'int', but argument

4 has type 'long unsigned int'

if_rndis.c:1204: warning: format '%d' expects type 'int', but argument

4 has type 'long unsigned int'

*** Error code 1



I did get from the site that it was for Windows Mobile, but I believe

that this is a generic system coming out now. It might help?



Cheers

-------------------------

Message sent via Atmail Open - http://atmail.org/

_______________________________________________

freebsd-questions@freebsd.org mailing list

http://lists.freebsd.org/mailman/listinfo/freebsd-questions

To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4cd3bef4.28a4df0a.5edf.56ec>