Barcode scanner (a USB keyboard) doesn't work

My company sells a USB barcode scanner that acts as a USB HID keyboard (scanning a barcode types the barcode value). It does not require any additional software to be installed as it behaves as a keyboard. We've been selling them for about 14 years and haven't had any compatibility issues until now. It works with every operating system we've encountered except for El Capitan. Connecting the scanner shows these messages in Console:


9/30/15 5:15:43.413 PM cfprefsd[136]: BUG in libdispatch: 15A284 - 1631 - 0x0

9/30/15 5:15:43.000 PM kernel[0]: 000214.585772 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

9/30/15 5:15:43.000 PM kernel[0]: 000214.585777 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: start has failed

9/30/15 5:15:43.000 PM kernel[0]: 000214.587844 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

9/30/15 5:15:43.000 PM kernel[0]: 000214.587848 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: start has failed


The device will scan a barcode but nothing is typed and the scanner stops responding until it is disconnected and reconnected. This behavior occurs in OS X 10.11.1 beta 2 (15B22c) and the final OS X 10.11 (15A284). It looks like Apple rewrote the USB stack/APIs in 10.11, which wasn't supposed to break anything but did:


https://developer.apple.com/library/mac/releasenotes/Darwin/RN_USB/Articles/10_11Changes.html


Has anyone else seen this kind of behavior? Are there any workarounds?

Replies

I am having the exact same issue with a barcode scanner of the model DataLogic Gryphon D432 SB3952.


"System Information" returns the following:


Datalogic Bar Code Scanner:
  Product ID: 0x0300
  Vendor ID: 0x080c
  Version: 0.01
  Serial Number: S/N E07H05831
  Speed: Up to 12 Mb/sec
  Manufacturer: © Datalogic 2004
  Location ID: 0x26410000 / 3
  Current Available (mA): 1000
  Current Required (mA): 198
  Extra Operating Current (mA): 0


When plugging it in, Console spits of these lines:


01/10/15 13:05:52,000 kernel[0]: 000564.743675 IOUSBHostHIDDevice@26410000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds
01/10/15 13:05:52,000 kernel[0]: 000564.743683 IOUSBHostHIDDevice@26410000,0: IOUSBHostHIDDevice::start: start has failed
01/10/15 13:05:52,000 kernel[0]: IOHIDDevice::newUserClient failed to get a workloop
01/10/15 13:05:52,000 kernel[0]: IOHIDDevice::newUserClient failed to get a workloop
01/10/15 13:05:52,000 kernel[0]: 000564.747934 IOUSBHostHIDDevice@26410000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds
01/10/15 13:05:52,000 kernel[0]: 000564.747938 IOUSBHostHIDDevice@26410000,0: IOUSBHostHIDDevice::start: start has failed
01/10/15 13:05:52,000 kernel[0]: IOHIDDevice::newUserClient failed to get a workloop
01/10/15 13:05:52,000 kernel[0]: IOHIDDevice::newUserClient failed to get a workloop


At first, I assumed it was related to the new System Integrity Protection feature introduced in El Capitan, however disabling this did not help.


The symptoms are the say as described above, the scanner seems to connect fine and is able to scan barcodes, but it doesn't actually produce any output on screen as it used to do in Yosemite.

I am also seeing problem after upgrading to 10.11 with one of my HID devices. It's a composite USB device (mouse and keyboard).

OSX is able to connect the mouse part of the device but the keyboard fails and enumeration continue to infinity (row 16-27 repeats).

Something is definitely changed.


2015-10-02 10:36:41,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][InterruptReadHandler] -- Received kIOReturnNotResponding error - retrying: 1
2015-10-02 10:36:41,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ClearFeatureInterruptEndpointHalt] -- successfully posting another read for the mInt0InterruptPipe -- mInterruptPipeInOutstandingIOCount = 1 -- this = 0x8800
2015-10-02 10:36:43,000 kernel[0]: 001233.673417 SteelSeries Gaming Device@14200000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
2015-10-02 10:36:43,000 kernel[0]: 001233.677291 SteelSeries Gaming Device@14200000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
2015-10-02 10:36:43,000 kernel[0]: 001233.858516 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 100 ms
2015-10-02 10:36:44,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][InterruptReadHandler] -- Received kIOReturnNotResponding error - retrying: 1
2015-10-02 10:36:45,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ClearFeatureInterruptEndpointHalt] -- successfully posting another read for the mInt0InterruptPipe -- mInterruptPipeInOutstandingIOCount = 1 -- this = 0x8800
2015-10-02 10:36:45,000 kernel[0]: 001235.064370 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 200 ms
2015-10-02 10:36:45,000 kernel[0]: 001235.982590 SteelSeries Gaming Device@14200000: IOUSBHostDevice::setConfigurationGated: compliance violation: failed to enable remote wake
2015-10-02 10:36:46,000 kernel[0]: 001236.441860 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 400 ms
2015-10-02 10:36:47,000 kernel[0]: 001237.649938 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 800 ms
2015-10-02 10:36:48,000 kernel[0]: 001238.858040 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 1600 ms
2015-10-02 10:36:50,000 kernel[0]: 001240.065346 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 3200 ms
2015-10-02 10:36:51,000 kernel[0]: 001241.271943 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 6400 ms
2015-10-02 10:36:52,000 kernel[0]: 001242.482236 PRT2@1a120000: AppleUSBHostPort::resetGated: unrecoverable enumeration failure after 8 attempts
2015-10-02 10:36:53,000 kernel[0]: 001243.691490 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 100 ms
2015-10-02 10:36:54,000 kernel[0]: 001244.893861 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 200 ms
2015-10-02 10:36:56,000 kernel[0]: 001246.091982 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 400 ms
2015-10-02 10:36:56,000 kernel[0]: 001246.179858 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 800 ms
2015-10-02 10:36:56,000 kernel[0]: 001246.239342 IOUSBHostHIDDevice@14200000,1: IOUSBHostHIDDevice::start: unable to set device idle milliseconds
2015-10-02 10:36:56,000 kernel[0]: 001246.239385 IOUSBHostHIDDevice@14200000,1: IOUSBHostHIDDevice::start: start has failed
2015-10-02 10:36:57,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][InterruptReadHandler] -- Received kIOReturnNotResponding error - retrying: 1
2015-10-02 10:36:57,000 kernel[0]: 001247.386440 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 1600 ms
2015-10-02 10:36:57,000 kernel[0]: 001247.477302 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 3200 ms
2015-10-02 10:36:57,000 kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ClearFeatureInterruptEndpointHalt] -- successfully posting another read for the mInt0InterruptPipe -- mInterruptPipeInOutstandingIOCount = 1 -- this = 0x8800
2015-10-02 10:36:58,000 kernel[0]: 001248.694687 PRT2@1a120000: AppleUSBHostPort::resetGated: retrying enumeration in 6400 ms
2015-10-02 10:36:59,000 kernel[0]: 001249.900651 PRT2@1a120000: AppleUSBHostPort::resetGated: unrecoverable enumeration failure after 8 attempts

same issue here, already reported it with no response

i my case this is another device: vendorid: 0x0111 productid: 0x0111 (unitech ms146 professional bar code reader)

manufacturer advised us to roll back to yousemite, which we cannot do, dough...

Oct 2 11:57:51 mp kernel[0]: 009923.565334 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

Oct 2 11:57:51 mp kernel[0]: 009923.565340 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: start has failed

Oct 2 11:57:51 mp kernel[0]: 009923.567941 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

Oct 2 11:57:51 mp kernel[0]: 009923.567949 IOUSBHostHIDDevice@14100000,0: IOUSBHostHIDDevice::start: start has failed


on


Darwin mp.local 15.0.0 Darwin Kernel Version 15.0.0: Tue Sep 22 20:33:10 PDT 2015; root:xnu-3247.10.11.1.1~1/RELEASE_X86_64 x86_64

Same problem. https://discussions.apple.com/message/29034567

Maybe someone have kexts or something?

I have same issue with my 3rd party external keyboard.


After updating to El Capitan, the keyboard is no longer working.


The symptom is something like below:


- Before the OS boot, the keyboard is working (you know this because 'Caps lock' is working and ALT(Option) key is working for boot selection).

- Once the OS is fully boot up, the keyboard is not working anymore

- From System report you will see the keyboard is still recognized

- Difference between working one / none working was (from the system report, in my case) that working one has USB Speed of 1.5Mb/Sec, while non-working one has 12Mb/Sec

- The system.log will report following Error when keyboard is connected:


kernel[0]: 000545.533011 IOUSBHostHIDDevice@fd140000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

kernel[0]: 000545.533018 IOUSBHostHIDDevice@fd140000,0: IOUSBHostHIDDevice::start: start has failed

kernel[0]: IOHIDDevice::newUserClient failed to get a workloop

--- last message repeated 1 time ---

kernel[0]: 000545.540724 IOUSBHostHIDDevice@fd140000,0: IOUSBHostHIDDevice::start: unable to set device idle milliseconds

kernel[0]: 000545.540729 IOUSBHostHIDDevice@fd140000,0: IOUSBHostHIDDevice::start: start has failed

kernel[0]: IOHIDDevice::newUserClient failed to get a workloop

:


- Same symptom on iMac(2011) & Macbook Pro(2013 15" Retina)


- Apple support will keep saying 'contact your keyboard vendor'. They even reject to open internal ticket for Dev investigation.


If someone from Apple support is monitoring this forum please engage your dev and have them take a look into this simple but annoying issue.