Difference between revisions of "Bbb sniffer"
(→On a Linux desktop) |
|||
Line 7: | Line 7: | ||
* a micro SD card | * a micro SD card | ||
− | = | + | =SD card setup= |
+ | |||
+ | This section explains how to setup the SD card on a Linux desktop. | ||
mkdir ~/bbb | mkdir ~/bbb |
Revision as of 15:56, 14 January 2015
This page explains how to setup a USB sniffer on the BeagleBone Black.
This is possible thanks to the USBProxy project.
Contents
Requirements
- a BeagleBone Black
- a micro SD card
SD card setup
This section explains how to setup the SD card on a Linux desktop.
mkdir ~/bbb cd ~/bbb
wget http://debian.beagleboard.org/images/bone-debian-7.5-2014-05-14-2gb.img.xz md5sum bone-debian-7.5-2014-05-14-2gb.img.xz
(result should be 35877ce21e8ed0eb1bdc6819ad71c317)
xz --stdout -d bone-debian-7.5-2014-05-14-2gb.img.xz | sudo dd of=/dev/sdX bs=4096 sync
Remove the sdcard.
wget https://github.com/RobertCNelson/linux-dev/archive/3.8.13-bone50.tar.gz tar xzvf 3.8.13-bone50.tar.gz cd linux-dev-3.8.13-bone50/
If needed, modify tools/host_det.sh so that it detects your Linux distribution.
./build_kernel.sh
This script will eventually tell you to run commands to install missing packages, e.g.:
sudo apt-get update sudo apt-get install device-tree-compiler lzma
./build_kernel.sh
Patch and rebuild USB gadget modules:
cd KERNEL/drivers/usb/gadget/ wget https://raw.githubusercontent.com/dominicgs/USBProxy/master/doc/inode.c.patch patch < inode.c.patch cd ~/bbb/linux-dev-3.8.13-bone50 ./tools/rebuild.sh
Insert and mount the sdcard (e.g. to /mnt/rootfs).
cp ~/bbb/linux-dev-3.8.13-bone50/KERNEL/drivers/usb/gadget/*.ko /mnt/rootfs/lib/modules/3.8.13-bone50/kernel/drivers/usb/gadget/
Modify the /mnt/rootfs/opt/scripts/boot/am335x_evm.sh file so that the usb0 related lines are commented out.
Unmount the sdcard, plug it in the BBB, and power it on.
On the BBB
depmod -a
apt-get install libudev-dev
mkdir sniffer cd sniffer wget https://github.com/libusb/libusb/archive/v1.0.19.tar.gz tar xzvf v1.0.19.tar.gz cd libusb-1.0.19/ ./bootstrap.sh ./configure make make install
mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/aa_libc.conf ldconfig
Install USBProxy as explained in the README.
Install tcpdump:
apt-get install tcpdump
Sniff
The pcap logger included in USBProxy has many issues.
I recommend using usbmon and tcpdump instead.
Start tcpdump:
modprobe usbmon tcpdump -i usbmon1 -w capture.pcap
Start USBProxy:
usb-mitm
The capture.pcap file can be opened with wireshark.