Connecting to an Android device

Belcarra's USBLAN for Windows USB Class Driver (host) is our recommended alternative to RNDIS for networking over USB with an Android device . Simply ensure the USB Gadget Support is correctly configured to use g_ether and ensure RNDIS is not enabled.  To use Belcarra's demo version of USBLAN on your Windows host system (available from Windows Update) setup the device to use 15EC for the Vendor ID and D001 Product ID.

Basic Testing of CDC-ECM

The current rev of the Gingerbread project uses Version 2.6.32 of the Linux kernel. This version contains EEM support with a small (but fatal) bug which we have already documented in earlier work. The Android kernel is patched to disable EEM even if the EEM option is selected. By this it is meant the module parameter use_eem defaults to 0 (it defaults to 1 in other kernels). Since modules are not used much (see below), this means that EEM is not readily available. However, for test purposes, we fixed the EEM bug and changed the default value of the use_eem parameter.

To do our tests, we disabled the Android gadget and enabled the g_ether gadget with and without the EEM option.
NOTE: a patch is available  for our customers to use to make EEM work.
Benchmarking Tools.

In the Belcarra TestDrive environment, we used 3 main tools:
  • ping
  • wget (HTTP)
  • iperf
None of these were available in the Gingerbread rootfs. Therefore, we used netperf. A netperf client is included in the Gingerbread/Rowboat standard rootfs. Using netperf requires finding a netperf server for
Windows. The netperf tool created by Hewlett Packard is described here and can be found at netperf.org, including a Windows version (source code, needs to be compiled). Another discussion of netperf, including a link to a Windows binary is found here: http://mcpmag.com/articles/2005/09/13/bottleneck-battle.aspx

Overview
  • ECM is available in Android/Gingerbread as a secondary configuration of the Android gadget, and as the primary configuration of the (suitably configured) g_ether gadget. Only the latter is suitable for USBLAN
  • EEM is available in the same way as ECM in Android/Gingerbread (but buggy - readily patched). The gadget EEM does not fully exploit EEM’s capabilities.
  • NCM is not readily available in Android/Gingerbread because Gingerbread is based on the Linux 2.6.32 kernel and g_ncm was introduced in the 2.6.38 Linux kernel. However, this bare-bones NCM gadget  can be readily backported..

NOTE: Belcarra’s USB stack is an option and available separately. Contact info@belcarra.com

Favourites