ADRDev / android-wired-tether

Automatically exported from code.google.com/p/android-wired-tether
0 stars 0 forks source link

Motorola Droid - Developing & Testing #4

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What version of the product are you using? On what operating system?
1.0 on Motorola Droid Android 2.0.1 with stock kernel

Please provide any additional information below.
Great work is being made with android-wifi-tether for the Droid. Wired
tether would be useful as well. The kernel would have to be patched with
RNDIS support along with NETFILTER and IPTABLES (although, that's already
been done).

Original issue reported on code.google.com by Gadge...@gmail.com on 26 Dec 2009 at 11:04

GoogleCodeExporter commented 9 years ago
I've been playing with it and actually am able to get it working. Enabling RNDIS
support is a bit different than in other devices, though. The Droid (probably 
other
eclair devices as well) uses USB gadget support where as older versions of 
android
use USB function support. But because of some technicalities, it's no longer 
possible
to use USB mass storage or adb (over usb). I'm sure there's a way to get both to
work, though.

Original comment by Gadge...@gmail.com on 27 Dec 2009 at 10:13

GoogleCodeExporter commented 9 years ago
@GadgetMG

Can you please provide steps on how you got RNDIS patched on the Droid? Could 
you
also please elaborate the USB gadget more?

Original comment by diaf...@gmail.com on 5 Jan 2010 at 5:06

GoogleCodeExporter commented 9 years ago
Well, the kernel needs completely recompiled. The kernel source can be checked 
out
from android.git.kernel.org. You also have to check out a prebuilt toolchain. I 
just
downloaded the entire android source with repo, but that took a while. To 
compile,
you just have to set CROSS_COMPILE to your toolchain location, and ARCH to arm. 
I did
a make sholes_defconfig to load the default configuration for the Droid, and 
then I
added Netfilter support and changed the USB gadget driver with make menuconfig. 
Also,
I had to comment out both instances of android_usb_set_connected in
arch/arm/mach-omap2/board-sholes.c because the Android gadget driver provides 
that
function. It's a pretty bad way of going about it. Hopefully somebody will come 
along
who could modify the existing Android gadget driver to include RNDIS.

Original comment by Gadge...@gmail.com on 5 Jan 2010 at 8:01

GoogleCodeExporter commented 9 years ago
Here's my config.

Original comment by Gadge...@gmail.com on 6 Jan 2010 at 1:38

Attachments:

GoogleCodeExporter commented 9 years ago
Ok, I am going to try and re-create what you did, but I have several questions.

-Can you elaborate on where you got the default configuration for the Droid? 
How do
you know what the default configuration for the Droid is sholes_defconfig?
-Specifically what did you change about the USB gadget driver? Only RNDIS?
-Why did you add Netfilter support? Is it also needed for android-wired-tether?
-Does commenting out android_usb_set_connected remove any functionality (sdcard
mounting, adb, etc.)?
-Finally, how did you update the kernel on the phone? Adb? Nandroid?

Thanks.

Original comment by diaf...@gmail.com on 7 Jan 2010 at 4:03

GoogleCodeExporter commented 9 years ago
A lot of kernel patching has been tossed around on issue 205 of 
android-wifi-tether.
I just switched the default USB gadget driver from the Android driver to the 
Ethernet
driver. Netfilter support is needed because it does the routing. Changing the 
driver
has side effects, though. USB mass storage and adb NO LONGER WORK (except in 
recovery
mode.) A much better alternative would be to patch the original Android driver 
to
include USB networking, but I'm not able to do that. In order to flash the 
kernel,
you have to take zImage from arch/arm/boot/zImage and use the spboot tool to 
make it
work (http://www.sholes.info/hg.) Then you take the resulting boot.img file and 
flash
it through adb in recovery mode (flash_image boot boot.img.) Oh, and the wifi 
driver
has to be recompiled, too. That can be checked out from android.git.kernel.org 
as
well. You have to define ARCH as zoom2 and KERNEL_DIR to the path of the kernel
source. Also, the toolchain bin folder has to be added to your PATH. It's pretty
complicated, but it does work. Make sure you make a nandroid backup, though.

Original comment by Gadge...@gmail.com on 7 Jan 2010 at 5:09

GoogleCodeExporter commented 9 years ago
Okay, I've been working and have actually been able to hack up a partially 
working
android.c. That means that you don't have to switch the driver or comment out
anything in sholes.c. All that has to be done to make it work is patch 
android.c and
add Netfilter support in the config. Currently, ADB doesn't work, but mass 
storage
still does. The ethernet driver doesn't have RNDIS, either, but I'll get to that
eventually. It works on Linux, at least. It probably won't work on Windows, 
because
Microsoft only plays nice with RNDIS.

Attached is the patch and my config.

Original comment by Gadge...@gmail.com on 11 Jan 2010 at 3:00

Attachments:

GoogleCodeExporter commented 9 years ago
Is there any update for the new kernel pushed to the Droid (2.1)?

Original comment by diaf...@gmail.com on 8 Apr 2010 at 1:24

GoogleCodeExporter commented 9 years ago
No. The latest kernel is still 2.6.29. Only of couple minor changes have been 
made.

Original comment by Gadge...@gmail.com on 8 Apr 2010 at 3:38

GoogleCodeExporter commented 9 years ago
See this thread for patches that update the Android gadget to the one included 
with
2.6.32.

http://alldroid.org/threads/16295-CyanogenMod-USB-Tethering

Original comment by Gadge...@gmail.com on 8 Apr 2010 at 3:41

GoogleCodeExporter commented 9 years ago
@ #10

url 404

What joy for cyanogenmod on Droid X nightlies GB?

Original comment by marjorly...@gmail.com on 27 Oct 2011 at 10:20