[LWN Logo]
[LWN.net]
From:	 Dave Harding <dxh@dcs.ed.ac.uk>
To:	 <linux-usb-devel@lists.sourceforge.net>
Subject: [linux-usb-devel] [ANNOUNCE] USBMon 0.2
Date:	 Wed, 23 May 2001 02:28:14 +0100 (BST)


Announcing: USBMon Version 0.2


USBMon is an attempt at a free solution to USB monitoring in Linux.

I announced an early development version a while ago, things have moved
along quite a lot now - USBMon now has some actually useful functionality.
See amazing screenshots at
http://www.dcs.ed.ac.uk/~dxh/public/USB/prototype/screenshots.shtml


What can it do?

USBMon can intercept URBs as they are sent from or to any driver/device
and display these nicely in a JAVA GUI. The level of monitoring can be set
per endpoint to one of 3 levels (No Monitoring, URB Headers only, and Full
Data Monitoring). On endpoints set to 'No Monitoring' there should be next
to no impact on the performance of the USB subsystem, and obviously more
but still minimal impact on higher levels of monitoring. I should have
time to get exact performance measurements in a week or so.

USBMon is targeted primarily at device driver writers and device
developers who cannot afford fancy CCTA development tools.

USBMon consists of 2 parts:

	1. a kernel patch that adds the monitoring functionality. This
mainly consists of additions to usbdevfs to create a new set of monitoring
files.

	2. a java application that interfaces with the new usbdevfs files
and can present the data in nice fancy ways. I think it might require java
1.3 (it was developed on this level). a Screenshot of USBMon in action


What's My story?

I am an undergraduate doing a final year project on the monitoring of USB
in Linux. USBMon is the principal product of this, and although it is not
the most mature piece of software it is functional. I hand in my final
dissertation in a week and a half so I am focussing on that and I am very
interested in getting potential user's reaction prior to my handin. Areas
I want to hear about include: Would this kind of tool be useful in device
driver / device creation? What features would be useful in future? What
features are not very useful? Why is it a waste of space?



Where can You find the code?

You can download it from my website - www.dcs.ed.ac.uk/~dxh/public/USB/

There are patches against 2.4.1 and 2.4.4.

All my code comes with a major health warning - it is still experimental
and don't come crying to me if it does nasty things, though do please tell
me.

Documentation is a sore point. I am currently writing my final
dissertation and will put that on the web in a week or so. That will
describer everything I have done and go into the design decisions.


Known Bugs / Defects / features :-

1. Hotplugging not really supported - USBMon doesn't yet poll the
/proc/bus/usb/devices file. It simply checks it when the monitoring
application starts. this just means you need to start the monitor after
you connect the device.

2. Alternate Interfaces may be a problem, working out how to deal with
them - the behavior may be unpredictable (but should be safe!).

3. All testing has been done on usb-uhci, uhci may work but I don't
know....

4. I havn't tried this on high bandwidth Isochronous pipes, that would be
interesting...



Request for Feedback:

As I explain above I need feedback from target users for my project. I
would be most grateful for any response. Included below is a screenshot
showing USBMon actually working.




-- 
Dave Harding - dave.harding@ed.ac.uk



_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel