Difference between revisions of "Bbb sniffer"
(→On a Linux desktop) |
|||
Line 1: | Line 1: | ||
+ | This page explains how to setup a USB sniffer on the BeagleBone Black.<br /> | ||
+ | This is possible thanks to the [https://github.com/dominicgs/USBProxy USBProxy] project. | ||
+ | |||
+ | =Requirements= | ||
+ | |||
+ | * a BeagleBone Black | ||
+ | * a micro SD card | ||
+ | |||
=On a Linux desktop= | =On a Linux desktop= | ||
Line 46: | Line 54: | ||
depmod -a | depmod -a | ||
− | + | apt-get install libudev-dev | |
mkdir sniffer | mkdir sniffer | ||
Line 61: | Line 69: | ||
ldconfig | ldconfig | ||
− | + | Install USBProxy as explained in the [https://github.com/dominicgs/USBProxy/blob/master/README.md README]. | |
+ | |||
+ | Install tcpdump: | ||
+ | apt-get install tcpdump | ||
+ | |||
+ | =Sniff= | ||
+ | |||
+ | The pcap logger included in USBProxy has many issues.<br /> | ||
+ | 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. |
Revision as of 15:55, 14 January 2015
This page explains how to setup a USB sniffer on the BeagleBone Black.
This is possible thanks to the USBProxy project.
Requirements
- a BeagleBone Black
- a micro 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.