Advanced USB snooping

Peter B pb at ludd.ltu.se
Tue Feb 22 12:01:03 PST 2005


>> 
>> Is it possible to program an "ordinary" (like Intel 82801CA/CAM (ICH3)) USB
>> host controller into acting as an usb device instead? (just like scsi can).
>> 
>> Idea:
>>   M$Win-Usb -> FreeBSD-USB#1  .. software .. FreeBSD-USB#2 -> Device
>
>No - this wonn't work.
>Host Controllers are dedicated host controllers.

>If you use a microcontroller you can use normale device controllers,
>such as the PDIUSBD12 or the ISP1581 - there are many others as well.
>But the they are all limited to work as a single device and not as a
>path through device.

If I can connect it to the computer from the "other" side it solves the problem
I think.

>All USB sniffers I know run with some kind of ASIC, which is not very
>hard to do if you are familar with such devices.

Fpga is doable, asic requires a large factory run.
Unless there is a ready to buy asic.

>The hard work is doing software to present the sniffed data in a usefull way.
>There are some cheap USB sniffers for full and low speed available
>on the market.
>Their limitation is usually that they don't tell you anything about
>signal quality and such.

Signal quality is infact not so important. It's the data structures not the
electrical level ;)

>> The advantage would be then to possible use scripts to debug protocol
>> in order to port drivers to freebsd.

>Sniffer Software exist at driver level at least for Windows and NetBSD
>derived stacks and I would be surprised if there isn't anything
>available for Linux as well.
>Hardware sniffers are very usefull if you are into debugging host
>controllers and sometimes device controllers on your own, but for
>debugging device drivers it's rarely usefull.

The catch with normal setup is that you need to poke around in the m$-win
machine which can cause other problems. So the idea would be to just insert
some device with one male + female connector and a connection to the snoop
computer. So that the m$-win computer don't need any special software.
Also m$-win host software snoop lack the nice programming enviroment of unix.
In order to filter out the stuff that one really wants.

There is one approach that could be efficient. Have a ethernet cable to the 
m$-win computer. Where a special usb snoop driver is controlled over that
ethernet connection.



More information about the freebsd-hackers mailing list