Skip to content
Jaap Crezee edited this page Mar 22, 2015 · 4 revisions

Welcome to the usb-mitm wiki!

Quickstart: Goto releases: https://github.com/dominicgs/USBProxy/releases , download image, write to SD card, boot BBB from SD card, login, start usb-mitm, connect usb-slave cable to your host, enjoy

Less quick quickstart: Do steps above, but before starting usb-mitm:

lsusb
note the vendorid and productid from the device you want to relay
start usb-mitm:
usb-mitm -v -p

Enjoy your device as slave from the BBB on your host.

Long shot:
Download buildroot and/or crosscompiler (I used latest Linaro as of 24 september 2014), configure some packages and/or cross-toolchain. You can also let buildroot build it, but it takes longer.
Make sure you select libusb.
Download BBB kernel from https://github.com/beagleboard/linux
(I cannot currently get vanilla 3.16 working, 3.15 does however, even without the USBProxy inode.c patch from this repository).
Configure the kernel (by setting cross-toolchain for example), make sure you enable USB-GadgetFS driver (drivers/usb/gadget/gadgetfs) and also select dual role MUSB controller, build the kernel.
Get bootloader from other BBB distro (vanilla u-boot also works).
Fetch source from USBProxy and make sure you have cmake installed and the cross-sysroot output from buildroot placed somewhere. Cross compile it; I use this script (adopt if required):

#!/bin/sh

mkdir -p build
cd build
LDFLAGS=-L/opt/cross/some_sysroot/usr/lib CFLAGS=-I/opt/cross/some_sysroot/usr/include CXXFLAGS=$CFLAGS CC=/opt/cross/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/arm-linux-gnueabihf-gcc CXX=/opt/cross/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/arm-linux-gnueabihf-g++ cmake ..
make all -j10

If linking fails about incompatible /lib/libc.so.6 , also add LD=/opt/cross…../….-gnueabihf-ld
You also have to make sure your —sysroot=… is set correctly on both gcc, g++ & ld.

Put it all on the SD card, boot, start usb-mitm and enjoy your own embedded USB-Proxy device.