본문 바로가기

Job Notes/File System

Bus Hound


Bus Hound is a software product for capturing device data transfers and protocol. Bus Hound can also be used to build and submit commands to devices including bus resets. See the below screen shots for a good look at the tools:


Above: Bus Hound capturing commands sent to a DVD drive.



Above: Bus Commander requesting a string descriptor from a USB device.

Pricing and Availability

Bus Hound was first released in April, 2000. The product can be purchased securely online from Perisoft using a credit card. The product is delivered by electronic download. The download size is less than about one megabyte. The cost of a Bus Hound is $799 US dollars per user. A site license may be purchased for $4995 US dollars, which allows every employee at a site to use the product.

System Requirements

Bus Hound supports Microsoft Windows 95, 98, Me, NT 4, 2000, 2003, XP, XP Embedded, Vista, and 2008. Bus Hound runs on 32-bit and 64-bit Windows including x64, EM64T, AMD-64, and Itanium. But note Itanium supported is limited to XP and Windows 2003. No extra hardware or changes to the system are needed; Bus Hound is strictly a software product.

Device Support

Bus Hound supports every device that can be attached to IDE, SCSI, USB, FireWire, iSCSI and Fibre Channel buses. This means it can be used with disk drives, DVD drives, keyboards, mice, digital cameras, printers, scanners, speakers, web cams, and everything else.  Bus Hound also supports capturing data from the serial port, parallel port, ps/2 mice, and ps/2 keyboards.

Features

  • Captures megabytes of I/O at a time. The capture depth can be set starting from 1K up to available system RAM in 1K increments.
  • Use Smart Triggers to stop the capture process upon a high level condition such as "no media" or "not ready". You can also specify a text or hex data pattern to trigger on.
  • Build and submit commands including bus and device resets. For SCSI and ATAPI devices, you can send CDB's. For IDE devices, you can send ATA task file commands. For USB devices, you can send control, bulk, interrupt, or isochronous transfers as well as simulate hot plug.  For FireWire devices, asynchronous transfers can be performed. You can also access any device at the hardware I/O Port level. The data transfer results can be saved to a binary file.
  • Capture device driver packets including IRP's, URB's, IRB's, SRB's, IOR's, and SCSI pass through.
  • Merge repeated identical commands. Especially useful for compacting captures where a device is polled with the same command repeatedly.
  • Display device properties such as the device serial number, hardware id, USB endpoints, bus power, bus speed, and FireWire node.
  • Measures device performance. View individual read, write, and isochronous performance along with the total amount of data transferred of each.
  • Display what device driver submitted each command.
  • I/O from multiple devices can be captured simultaneously, even if devices are attached to different buses.
  • There is no limit on how many machines can run the product in parallel.
  • The system startup process can be captured, allowing capture of the very first commands sent to a device.
  • In addition to command and data transfers, low-level protocol is captured such as operating system status and sense data. This information can be used to efficiently trouble shoot device driver or firmware issues.
  • Microsecond resolution timing is captured. This allows the time between commands to be measured as well as the elapsed time of a single command.
  • Captured data can be viewed in real time, dragged and dropped to other applications, or saved to a text or zip file.
  • When the capture buffer fills to capacity, Bus Hound can be configured to stop the capture process or continue capturing, keeping the most recent acquired data.
  • The capture depth of each individual I/O phase can be configured from 1 byte up to 2GB in 1-byte increments. For instance, if the capture depth is set to 8 bytes, only the first 8 bytes of each packet will be captured.
  • Log the system date and time of when each phase occurred.
  • A simple web-like interface. Devices are selected simply by placing a checkmark next to them in a graphical tree.
Windows Logo compliant. Among other benefits, Bus Hound includes an installer, uninstaller, automatically migrates to new operating systems, has keyboard support, is designed to run in a multi processor environment and passes rigorous stability tests.


Individual Bus Features

USB: Bus Hound captures all 4 transfer types: control, bulk, interrupt, and isochronous. All USB versions and speeds are supported including USB 2.0. The USB endpoint of each command is also displayed.

IDE: Bus Hound captures command and data transfers for ATA and ATAPI devices. All PIO and DMA modes are supported such as Ultra/133. Bus Hound captures native ATA task file commands for SMART and IDE pass through requests.

SCSI/Fibre Channel: Bus Hound captures the command and data phases for all parallel and serial bus standards. CDB's and sense data are shown with descriptions based on the device type.

FireWire: Bus Hound captures read/write/lock operations, isochronous transfers and bus resets. All 1394/FireWire versions and speeds are supported.

Site License

The site license version of Bus Hound includes bhlog.exe, a command line tool that allows spooling captured data to a file in real time. Comparatively, the Bus Hound application captures to RAM. Since bhlog is limited only by free hard drive space, it provides the capability to capture I/O over tremendously wide time periods. The other advantage of bhlog is the ability to retain captured data in the event a system freezes or reboots by directing the captured data to a file on a network drive.

Market Positioning

Bus Hound is targeted to expand the market for bus analyzers. Bus Hound captures snap shots of packets sent across the bus rather than individual hardware signals. Users will find Bus Hound a very capable bus analyzer for their needs or may find it complementary to a hardware bus analyzer. Its low cost and simplicity of operation makes it attractive to users who otherwise would not want a hardware bus analyzer. Since Bus Hound runs on the host, it can also be more effective for analyzing host side problems. Bus Hound has a number of pricing advantages over hardware analyzers:

  • The cost is a fraction of a hardware bus analyzer.
  • Includes support for each bus, eliminating the need to purchase add-on modules or new bus analyzers for different buses.
  • Automatically supports incremental bus standards. Higher bus speeds and added bus features are transparent to Bus Hound since it is built on a layered software architecture.
  • Runs on an unlimited number of machines, eliminating the need to purchase multiple hardware bus analyzers in order to perform captures in parallel.

How It Works

Bus Hound captures I/O using a device driver. The device driver is positioned very low in the I/O subsystem architecture such that it can take an accurate snapshot of commands, data, status, and timing information. The below figure demonstrates how Bus Hound captures data for SCSI devices.