Discussion:
[pyusb-users] USBError: [Errno None] Other error
Bob Schmanski
2016-09-07 00:07:35 UTC
Permalink
More details of my ongoing debugging. I found and enabled libusb
debugging. Here are the relevant messages during claim_interface():

2016-09-06 17:02:56,824
DEBUG:usb.backend.libusb1:_LibUSB.claim_interface(<usb.backend.libusb1._DeviceHandle
object at 0x1070d82d0>, 0)
[19.661232] [00000a0b] libusb: debug [libusb_claim_interface] interface 0
[19.661742] [00000a0b] libusb: debug [get_endpoints] building table of
endpoints.
[19.661763] [00000a0b] libusb: debug [get_endpoints] interface: 0 pipe 1:
dir: 0 number: 1
[19.661770] [00000a0b] libusb: debug [get_endpoints] interface: 0 pipe 2:
dir: 1 number: 1
[19.661779] [00000a0b] libusb: error [get_endpoints] error getting pipe
information for pipe 3: unknown error (0xe0004061)
[19.661982] [00000a0b] libusb: error [darwin_claim_interface] could not
build endpoint table
---------------------------------------------------------------------------
USBError Traceback (most recent call last)


I'm taking my debugging to the libusb-devel mailing list at this point.
However, if anyone has any thoughts on my problem, I'd be happy to hear
them.

Thanks,
Bob
After further debugging and digging, it does appear that the call to
"usblib_claim_interface()" is returning the value -99, not "None". "None"
is the output of _libusb_errno[ret] for return code -99, also defined as
LIBUSB_ERROR_OTHER. So, the real question is, why does claim_interface()
return -99?
Thanks,
Bob
Bob Schmanski
2016-09-07 23:06:13 UTC
Permalink
Follow up if anyone is interested. It would appear that HDO4034's USBTMC
interface has non-compliant values in the bInterval field for the interrupt
endpoint which is preventing the Mac OS X USB driver from providing
properties on the endpoint. Nathan on the libusb-devel mail group
suggested a patch to libusb to work around this that works in my testing.
See the libusb-devel mail group for more details. I am working with LeCroy
to see if they can issue a software/firmware update for the scope to fix
this issue.

Thanks,
Bob
Post by Bob Schmanski
More details of my ongoing debugging. I found and enabled libusb
2016-09-06 17:02:56,824 DEBUG:usb.backend.libusb1:_
LibUSB.claim_interface(<usb.backend.libusb1._DeviceHandle object at
0x1070d82d0>, 0)
[19.661232] [00000a0b] libusb: debug [libusb_claim_interface] interface 0
[19.661742] [00000a0b] libusb: debug [get_endpoints] building table of
endpoints.
dir: 0 number: 1
dir: 1 number: 1
[19.661779] [00000a0b] libusb: error [get_endpoints] error getting pipe
information for pipe 3: unknown error (0xe0004061)
[19.661982] [00000a0b] libusb: error [darwin_claim_interface] could not
build endpoint table
------------------------------------------------------------
---------------
USBError Traceback (most recent call last)
I'm taking my debugging to the libusb-devel mailing list at this point.
However, if anyone has any thoughts on my problem, I'd be happy to hear
them.
Thanks,
Bob
After further debugging and digging, it does appear that the call to
"usblib_claim_interface()" is returning the value -99, not "None". "None"
is the output of _libusb_errno[ret] for return code -99, also defined as
LIBUSB_ERROR_OTHER. So, the real question is, why does claim_interface()
return -99?
Thanks,
Bob
Loading...