Category:How to - usb
USBNet with Overo
The OTG USB port on the Overo expansion boards support USB networking. To enable this, the OTG port needs to be configured as a USB peripheral or gadget. The default kernels from Gumstix have the OTG port configured to act as a USB host.
The procedure for changing the configuration requires rebuilding your kernel, so you should first be comfortable with setting up a build environment and building images for your Overo.
The steps below assume a recent snapshot of the gumstix-oe git tree. Two recent changes in particular have simplified the process.
1. Kernel 2.6.31 is now the default
2. The linux-omap3_2.6.31.bb recipe now has variable to setup the OTG port in the kernel config file.
To get started, first edit the recipe file ${OVEROTOP}/org.openembedded.dev/recipes/linux/linux-omap3_2.6.31.bb
Change the line
MUSB_MODE ?= "host"
to
MUSB_MODE ?= "peripheral"
or "otg".
Next rebuild the kernel and rootfs.
cd ${OVEROTOP} bitbake -c clean linux-omap3-2.6.31 bitbake -c rebuild linux-omap3-2.6.31
And then rebuild your image.
bitbake omap3-console-image
Change omap3-console-image to whatever image you use.
Once you have booted the new system, you still need to load the g_ether driver since it was built as a module.
You can add g_ether to /etc/modules if you always want it to load at boot.
root@overo# modbprobe g_ether g_ether gadget: using random self ethernet address g_ether gadget: using random host ethernet address usb0: MAC d6:2c:8f:d9:51:32 usb0: HOST MAC f2:99:dc:4c:cb:7a g_ether gadget: Ethernet Gadget, version: Memorial Day 2008 g_ether gadget: g_ether ready
root@overo:~# ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
usb0 Link encap:Ethernet HWaddr D6:2C:8F:D9:51:32 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Configure the usb0 interface the way you would any other.
For example
root@overo:~# ifconfig usb0 192.168.20.2 netmask 255.255.255.0
If you then plug the usb OTG cable into a host computer ready for usb networking you'll get a console message
g_ether gadget: high speed config #1: CDC Ethernet (ECM)
The rest is all standard Linux networking.
Pages in category "How to - usb"
The following 3 pages are in this category, out of 3 total.