Network over USB in beaglebone


I am using TI SDK for a variant of beaglebone black. The TI SDK requires drivers to be installed on the Windows PC to be able to get network over USB access. This is something which is unacceptable to our customer.

I have noticed that when I try latest available Debian image on Beagelbone black, there is no need to install a Win driver to enable network over USB connection. I am unsure where the fix is in Debian (kernel or rootfs or both)? I intend to incorporate this fix in my TI SDK code-base. Can someone help me where the fix for the network over USB issue is present so I could incorporate into my code?

Eagerly waiting for solutions.


The TI SDK just uses g_multi, we use libcomposite/usb-configfs to
create the usb device. BTW.. Microsoft likes to break it on every
release, so here be dragons..

The magic is here:

it's highly configurable, but you can rip parts out you don't need..
But order does matter..


Thanks. Does this mean I need to uninstall g_multi?
I did find this script but when I do a
echo > UDC (binding to UDC), I get failure device or resource busy
Unsure what the issue is. Could you please help?

Correct, only one gadget driver can be loaded… the default g_multi, or this custom composite one.

Thanks so much. I have been badly stuck up on this.
The link at also seems to be doing the same. Do you mind having a look and verifying if it looks ok?

Any specific kernel configuration that needs to go along with the script? Please help with which drivers need to be loaded before this script runs


Thanks Robert. I have been able to get things working. I have one doubt. Having run this script at bootup, the idea for me is to have a single gadget (with single function) to be detected on the Windows host. On Windows when I run the script similar to the one you pointed out, I see 2 entries in the device manager - USB composite device and then a RNDIS device. Considering my gadget supports only 1 function i.e RNDIS… having it detected as a composite device is where I question if its ok. Could you help guide if its possible to just have RNDIS device entry without the USB composite device entry in the device manager by altering the script you provided?