how to configure/build Angstrom to have USB RNDIS instead of CDC composite gadget?


I tried to configure and compile/build angstrom image to have USB
RNDIS support (like the original board validation image when in the B4
version) instead of the default CDC composite gadget support?

I did the following to do that, but unfortunately I got no USB
connection at all:

cd ~/oe/tmp/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.28-
make menuconfig
then "Device Drivers"--->"USB Support"--->"USB Gadget Support"--->
changed from "CDC Composite Device (Ethernet and ACM)" to "Ethernet
Gadget (with CDC Ethernet support)"
save and exit

then I build the uImage and console-image-beagleboard.tar.bz2, then I
prepare SD card with these files. Beagle board boots fine, except
without USB connection. Obvious my configuration is wrong.

I appreciate any suggestions how to configure Angstrom build process
to have USB RNDIS back.

Thank you,


I got this to work but my kernel compile options made all the USB gadgets modules - that way I can pick and swap at run time how my BeagleBoard appears.

  1. I set CONFIG_USB_GADGET (Drivers - USB Support) to “Y”.
  2. I set Drivers - USB Support - USB Gadget Drivers to “M”. (Don’t actually enter this menu, but when it is selected press “M”)
  3. I set pretty much all of the gadget drivers to “M” inside the Drivers - USB Support - USB Gadget Drivers menu or said Yes where they couldn’t be modules.

After a build and reboot you can then insert the module with insmod {path_to_g_ether.ko} or if you copy across the relevant files for modules then just “modprobe g_ether”. You should see the following added to dmesg logs:

g_ether gadget: using random self ethernet address
g_ether gadget: using random host ethernet address
usb0: MAC 42:fb:19:24:1b:47
usb0: HOST MAC e6:3a:20:26:2b:f9
g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
g_ether gadget: g_ether ready
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
g_ether gadget: high speed config #1: CDC Ethernet (ECM)

Then you need to provide an IP address to the BeagleBoard and the computer its attached to:

beagleboard$ sudo ifconfig usb0 up


desktop$ sudo ifconfig usb0 up
desktop$ ping # or ssh, etc…

If it isn’t working then there may be a module dependency that isn’t being satisfied, in which case you’ll see an error trying to load the module about an unkown symbol. Either way, there should be details about why it hasn’t worked in dmesg.