terms

A Beagleboard xM-based USB sniffer

I bought a Beagleboard xM more than 2 years ago, as I wanted to make it work as a USB sniffer, based on the work of Nicolas Boichat. But at this time I didn’t manage to make it work, as my knowledge on embedded systems was quite limited.

I have lately been working back on this, and last week during a hacking session in my local hackerspace, namely Hacknowledge (Rennes, France), I finally managed to make it work :) It produces capture files that can be opened with Wireshark!

The following picture shows my beagleboard xM sniffing USB traffic between my Xbox 360 and a controller:

My beagleboard xM working as a USB sniffer.

Instructions are available in my git repository.

This entry was posted in usb sniffer, usbmon and tagged feed. Bookmark the permalink.

4 Responses to A Beagleboard xM-based USB sniffer

  1. still.confused says:

    I don’t have any experience with USB or Beagleboards, but I’m working on a USB device project and being able to monitor USB traffic would be a big help. I can’t use a software analyzer – the host is a Wii. Will this USB sniffer project work on a BeagleBone Black? Can something like this be done with a Raspberry Pi?

  2. Matlo says:

    It won’t work as-is on a BeagleBone Black. The Raspberry Pi only has USB host capabilities. It has no USB OTG port, which means it cannot be a USB device.

  3. ivan says:

    I am trying to create a USB sniffer out of the Beagleboard XM. I am following the instructions given in this link. http://www.elinux.org/BeagleBoard/GSoC/USBSniffer Unfortunately, I am having problems. When I run the command, this is what i get.

    root@beagleboard:~# ./sniff
    List of devices:
    1-2.1: Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
    1-2.2: Bus 001 Device 004: ID 040b:2013 Weltrend Semiconductor
    ====
    Choose the device to sniff [default:1-2.2]: 1-2.1
    Chosen device: 1-2.1
    Chosen FIFO configuration: ep1in:1024,ep2out:1024,ep3in:32
    Device unbound!
    FATAL: Error inserting musb_hdrc (/lib/modules/2.6.32-usbsniffer/kernel/drivers/usb/musb/musb_hdrc.ko): Unknown symbol in module, or unknown parameter (see dmesg)
    Starting tcpdump
    mv: cannot rename ‘/media/ram/dump’: No such file or directory
    tcpdump: listening on usbmon1, link-type USB_LINUX_MMAPPED (USB with padded Linux header), capture size 65535 bytes
    Loading proxy driver…
    Device should work now…
    Device should work now…
    Device should work now…
    Device should work now…
    Press enter to stop logging.

    6 packets captured
    6 packets received by filter
    0 packets dropped by kernel

    What i cannot understand is why i am getting
    FATAL: Error inserting musb_hdrc … Unknown symbol in module, or unknown parameter (see dmesg)

    and this:
    mv: cannot rename ‘/media/ram/dump’: No such file or directory

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

address
forum