A couple of years ago, I created a Mac port of a custom viewer app for a USB document camera designed for people with visual disabilities. Everything worked fine in 10.7 through 10.10, but the company recently contacted me and told me that the camera itself isn't working reliably in 10.11.
It looks like something in the actual device probing has changed in a way that is causing the camera to disappear from the bus and reinitialize itself repeatedly. What's curious is that if I plug it into a 10.9 machine first, and then plug it into a 10.11 machine, the camera magically works. I suspect that the camera's firmware is expecting the probing process to do things in some particular order, and is using that to guess whether it is plugged into a modern computer or some ancient Windows version, and that the new probing in 10.11 causes it to go down the wrong code path. It would be nice if it were possible to get this fixed in a way that doesn't involve updating the device's firmware, as that's likely to be beyond the abilities of a large percentage of the hardware's users. To that end, I filed rdar://24818005 a couple of weeks ago. In the short term, I'm also trying to come up with a user-space software workaround in the viewer app itself, assuming that's possible. So far, I've tried opening up the video endpoint's interface interface, clearing pipe stalls at both ends, and closing it. I've also tried telling the device interface to reset, to reenumerate, etc. Neither approach made any difference. (I'm not surprised that these things didn't help, but they seemed like a good first attempt.) Of course, there's a hardware quirk that further compounds the problem: this camera presents a USB "disk" (really, an internal flash card) as a USB 2.0 device, but uses a chipset that can't support > 64-byte accesses, so when the OS tries to request 512-byte accesses, it fails. In 10.7 through 10.10, the OS gave up trying to change the request size after a few tries, preventing the internal "disk" from appearing, but the other endpoints worked normally. It may be that the detection of that error case isn't happening correctly in 10.11, resulting in the OS sending 512-byte requests that crash the device. Unfortunately, I can't find any way to enable USB logging in 10.11 to determine whether that bug is part of the problem or is just a red herring. Any ideas on how to further debug this and/or work around the issue? Does anybody in the South Bay have a USB analyzer that I could use for an hour or so? David
_______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com This email sent to [email protected]
