Contents
Downloading from GIT repository for ICS and Compiling
CDC Ethernet works with Android-wired-tether (although it says ‘incompatible kernel’). My guess is that (1) the interface name is the same as the RNDIS kernel, and (2) android-wireless-tether probably just sets up iptables rules to route packets through that interface, so there’s not much difference between the two methods.
Compiling, with CDC Ethernet support
git clone -b android-omap-tuna-3.0-ics-mr1 https://android.googlesource.com/kernel/omap.git cd omap export ARCH=arm export SUBARCH=arm export CROSS_COMPILE=/path/to/cross/compiler/arm-eabi- make tuna_defconfig make menuconfig #go to Device Drivers->USB Support->USB Gadget Support->USB Gadget Drivers->CDC Composite Device (Ethernet and ACM) make -j12 EXTRA_AFLAGS=-mfpu=neon
CDC ACM Device
To get CDC ACM serial device working, use this mkbootimg.
mkbootimg --cmdline 'no_console_suspend=1 console=ttyGS0,115200,n8 androidboot.console=ttyGS0' --kernel ./zImage --ramdisk ./boot.img-ramdisk.gz -o boot-new-serial.img
Connecting to terminal using miniterm.py script in Linux.
miniterm.py /dev/ttyACM0
CDC Ethernet Device
To get USB Ethernet working, install Android-wired-tether, hook up USB cable, and enable wired tether from the app.
To share your phone’s Internet with a Linux host, on the Linux machine’s command line type:
dhclient usb0
That’s it!
Notes
I have only been able to get the 4.4.3 eabi compiler (in Android NDK) to work.