For the past few months I’ve been consulting for a local company that makes some pretty cool workout gear. They use a device that records several details about each workout and then can upload the information to their website to record and compare workouts (think a high-end version of the Nike+). The issue was that sometimes their USB device began rebooting when plugged into a Mac and it was causing the device to just continually power-cycle. The thing that was even more frustrating on my end was that I was unable to reproduce the issue on literally every demo and used machine in both of our stores and warehouse.

The good news is that by comparing log files from two machines that were experiencing issues, we were able to determine that the issue was related to a HP driver conflict and the company found a way to work around the conflict and upgrade their firmware, so all is well. In my hunting around for an answer, I discovered a cool logging tool that I think other technicians out there might appreciate: IOUSBFamily Debug Kits.

The USB Debug Kits enable specific logging on USB interactions, which gives a clearer picture of what happens when a USB device is plugged in. The beauty of this is that it can help identify exactly what’s happening when USB issues arise. For example, in standard Console logs, all I saw when plugging in this company’s device was:

[0×446a600] The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep
retrying. (Port 2 of hub @ location: 0×1a000000)
Jun 1 11:46:13 Macintosh-7 kernel0: USBF:
372532.758
[0×446a600] The IOUSBFamily has successfully enumerated the device.

After installing the Debug Kit that short phrase turned into:

6/5/09 4:48:17 PM kernel USBF: 119.843 [0×3e8a500] The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying. (Port 1 of hub location: 0x1d000000)
6/5/09 4:48:18 PM kernel USBF: 120.335 IOUSBDevice[0x58c6e00]: Error (0xe00002ed) getting device device descriptor
6/5/09 4:48:18 PM kernel USBF: 120.368 IOUSBDevice[0x58c6e00]: Error (0xe00002ed) getting device device descriptor
6/5/09 4:48:18 PM kernel USBF: 120.401 IOUSBDevice[0x58c6e00]: Error (0xe00002ed) getting device device descriptor
6/5/09 4:48:18 PM kernel USBF: 120.407 IOUSBDevice[0x58c6e00]: Error (0xe00002ed) getting device device descriptor
6/5/09 4:48:18 PM kernel USBF: 120.632 AppleUSBHubPort[0x3e8a500]::GetDevZeroDescriptorWithRetries - port 1 - GetDeviceZeroDescriptor returned 0xe00002ed
6/5/09 4:48:18 PM kernel USBF: 120.665 AppleUSBHubPort[0x3e8a500]::GetDevZeroDescriptorWithRetries - port 1 - GetDeviceZeroDescriptor returned 0xe00002ed
6/5/09 4:48:18 PM kernel USBF: 120.698 AppleUSBHubPort[0x3e8a500]::GetDevZeroDescriptorWithRetries - port 1 - GetDeviceZeroDescriptor returned 0xe00002ed
6/5/09 4:48:18 PM kernel USBF: 120.704 AppleUSBHubPort[0x3e8a500]::GetDevZeroDescriptorWithRetries - port 1 - GetDeviceZeroDescriptor returned 0xe00002ed
6/5/09 4:48:18 PM kernel USBF: 120.735 AppleUSBHubPort[0x3e8a500]::DetachDevice Port 1 of hub
0×1d000000 being detached
6/5/09 4:48:19 PM kernel USBF: 121.528 [0×3e8a500] The IOUSBFamily has successfully enumerated the device.

It also continued on to correctly name/identify the device and monitor it. While this might look like gobledigook to some, it’s incredibly helpful in determining what’s going on with the USB device’s interaction with the computer, making it a great diagnostic tool.

Now it should be mentioned that these are not intended for an average user to install. In fact, one needs to be an Apple Developer Connection member (membership is free) to download the kits. It’s also important to download the correct kit for your machine, since installing an incorrect kit can cause kernel panicking and that’s never any fun, right? To find out which kit you need, go to System Profiler (/Applications/Utilities), Select “Extensions” located under “Software” from the list on the left. Now select “IOUSBFamily”; the version number is what you’ll need to match up to the correct Debug Kit.

I hope this sheds some light for frustrated technicians out there trying to solve their own USB conundrums. If it solves any hot cases I would love to hear about it!

0 Likes
45 Views

You may also like

Leave A Comment

Please enter your name. Please enter an valid email address. Please enter message.