Hi Chris,
We are using a labjack U6 for the I/O with MWorks. The labjack uses the exodriver as the USB driver. The exodriver uses the libusb 1.0 library to setup USB communications with the labjack (the labjack only uses libraries to function).
We recently upgraded to OSX El Capitan and noted that the USB communication with the labjack often fails at MWorks startup: an error occurs when configuring the ports.
The error does not occur when we unplug (which also powers it down) and replug the labjack. But if we afterwards restart MWorks, and thereby reinitialize the labjack-usb communication, the error (frequently, but for some reason not always) occurs. So we have a work around (unplugging and replugging and restarting MWorks) but it’s certainly not optimal.
We were wondering if you have more information on this issue with El Capitan and if you know of a solution?
Although not the best solution, one way to solve this problem for us would be to temporarily power down/disconnect the labjack/USB when MWorks starts up. Do you know how we could do this (in case there is no better solution)?
Thanks in advance.
Greetings,
Bram
Hi Bram,
I’m not experiencing this problem with my U6 on El Capitan. I’m using the latest LabJack-provided Exodriver binaries and the MWorks LabJack plugin that I’ve worked on for Lindsey Glickfeld (which derives from the Maunsell lab version). I have the device plugged directly in to a USB port on my Mac (not through a hub).
I think at some point you guys were compiling and using a patched version of libusb with your LabJack plugin. If that’s still the case, you might try using the LabJack-provided binaries instead, which may be more up to date. (If you want, I can send you my updated version of the LabJack plugin, which is set up to use the precompiled libs.)
If that doesn’t help, then can you send me more details on your setup? In particular, are you using the LabJack through a USB hub? If so, what other USB devices are connected to the same hub?
Thanks,
Chris
Hi Chris,
Thanks for your quick reply.
We are using the latest LabJack-provided Exodriver binaries. Also, we indeed use the USB hub, but even without the hub the problem continues to exist. No other USB devices are connected to the hub.
We also noted that the Exodriver and the latest libusb release do not include the latest libusb updates for El Capitan (darwin: updates to support el capitan · libusb/libusb@b7526c1 · GitHub ), but including these updates did not solve the problem.
If you could send us your updated version of the LabJack plugin, that would be very helpful.
Thanks a lot!
Bram
Hi Chris,
To add to what Bram said:
We thought it might be related to this issue with libusb:
opened 07:05PM - 07 Oct 15 UTC
closed 07:27PM - 09 Oct 15 UTC
bug
Hi,
I noticed since the upgrade to el Capitan my libusb-based program (example,… hackrf utilities) are extremely slow. I join logs of execution of one of the hackrf program and the same log on another machine. The difference is noticeable (4s >> 0,007). This happen to other libusb dependent tools.
On the el Capitan machine:
hackrf_info
## [timestamp] [threadID] facility level [function call] <message>
[ 0.000008] [0000050f] libusb: debug [libusb_init] created default context
[ 0.000060] [0000050f] libusb: debug [libusb_init] libusb v1.0.20.11004
[ 0.000189] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x0
[ 0.000227] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x0
[ 0.001558] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 0.001576] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 0.001584] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0100
[ 0.001588] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0x09
[ 0.001593] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0xff
[ 0.001597] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x00
[ 0.001601] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x08
[ 0.001605] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x05ac
[ 0.001609] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x8005
[ 0.001613] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0198
[ 0.001619] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x00
[ 0.001623] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x00
[ 0.001627] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x00
[ 0.001631] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 1.002889] [0000050f] libusb: debug [darwin_check_configuration] active config: 0, first config: 1
[ 1.002946] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x0
[ 1.002972] [0000050f] libusb: debug [process_new_device] found device with address 0 port = 0 parent = 0x0 at 0x7fd8c9c0704a
[ 1.003028] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x0
[ 1.003056] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x0 against cached device with sessionID 0x0
[ 1.003061] [0000050f] libusb: debug [darwin_get_cached_device] using cached device for device
[ 2.004243] [0000050f] libusb: debug [darwin_check_configuration] active config: 0, first config: 1
[ 2.004301] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x0
[ 2.004383] [0000050f] libusb: debug [process_new_device] found device with address 0 port = 0 parent = 0x0 at 0x7fd8c9c0704a
[ 2.004426] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x0
[ 2.004453] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x0 against cached device with sessionID 0x0
[ 2.004458] [0000050f] libusb: debug [darwin_get_cached_device] using cached device for device
[ 3.005674] [0000050f] libusb: debug [darwin_check_configuration] active config: 0, first config: 1
[ 3.005733] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x0
[ 3.005756] [0000050f] libusb: debug [process_new_device] found device with address 0 port = 0 parent = 0x0 at 0x7fd8c9c0704a
[ 3.005894] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x266aa5fb0084
[ 3.005937] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x266aa5fb0084 against cached device with sessionID 0x0
[ 3.005944] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x266aa5fb0084
[ 3.006782] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 3.006797] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 3.006802] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0200
[ 3.006806] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0x09
[ 3.006810] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x00
[ 3.006813] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x00
[ 3.006817] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x08
[ 3.006821] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x0a5c
[ 3.006827] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x4500
[ 3.006831] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0100
[ 3.006834] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x01
[ 3.006838] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x02
[ 3.006841] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x00
[ 3.006845] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 3.006888] [0000050f] libusb: debug [darwin_check_configuration] active config: 1, first config: 1
[ 3.006894] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x266aa5fb0084
[ 3.006935] [0000050f] libusb: debug [process_new_device] found device with address 2 port = 0 parent = 0x0 at 0x7fd8c9c08bfa
[ 3.006996] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x266aba7ccc38
[ 3.007044] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x266aba7ccc38 against cached device with sessionID 0x266aa5fb0084
[ 3.007051] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x266aba7ccc38 against cached device with sessionID 0x0
[ 3.007055] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x266aba7ccc38
[ 3.007891] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 3.007907] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 3.007914] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0200
[ 3.007920] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0xff
[ 3.007925] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x01
[ 3.007931] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x01
[ 3.007936] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x40
[ 3.007942] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x05ac
[ 3.007951] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x828f
[ 3.007957] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0112
[ 3.007963] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x01
[ 3.007968] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x02
[ 3.007973] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x00
[ 3.007979] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 3.008027] [0000050f] libusb: debug [darwin_check_configuration] active config: 1, first config: 1
[ 3.008032] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x266aba7ccc38
[ 3.008040] [0000050f] libusb: debug [process_new_device] found device with address 5 port = 0 parent = 0x7fd8c9f00000 at 0x7fd8c9c093ca
[ 3.008118] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x54372bad09c4
[ 3.008161] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x54372bad09c4 against cached device with sessionID 0x266aba7ccc38
[ 3.008167] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x54372bad09c4 against cached device with sessionID 0x266aa5fb0084
[ 3.008171] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x54372bad09c4 against cached device with sessionID 0x0
[ 3.008175] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x54372bad09c4
[ 3.008866] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 3.008884] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 3.008891] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0200
[ 3.008897] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0x00
[ 3.008902] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x00
[ 3.008908] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x00
[ 3.008913] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x08
[ 3.008921] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x08bb
[ 3.008928] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x2912
[ 3.008934] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0100
[ 3.008939] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x01
[ 3.008944] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x02
[ 3.008950] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x00
[ 3.008958] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 3.009020] [0000050f] libusb: debug [darwin_check_configuration] active config: 1, first config: 1
[ 3.009029] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x54372bad09c4
[ 3.009038] [0000050f] libusb: debug [process_new_device] found device with address 1 port = 0 parent = 0x0 at 0x7fd8c9e00d3a
[ 3.009159] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x5437a87a89bd
[ 3.009200] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437a87a89bd against cached device with sessionID 0x54372bad09c4
[ 3.009207] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437a87a89bd against cached device with sessionID 0x266aba7ccc38
[ 3.009211] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437a87a89bd against cached device with sessionID 0x266aa5fb0084
[ 3.009215] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437a87a89bd against cached device with sessionID 0x0
[ 3.009220] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x5437a87a89bd
[ 3.010290] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 3.010306] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 3.010313] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0210
[ 3.010318] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0x09
[ 3.010324] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x00
[ 3.010330] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x02
[ 3.010335] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x40
[ 3.010341] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x043e
[ 3.010346] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x9a20
[ 3.010352] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0100
[ 3.010358] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x02
[ 3.010364] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x03
[ 3.010374] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x01
[ 3.010380] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 3.010441] [0000050f] libusb: debug [darwin_check_configuration] active config: 1, first config: 1
[ 3.010447] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x5437a87a89bd
[ 3.010454] [0000050f] libusb: debug [process_new_device] found device with address 1 port = 0 parent = 0x0 at 0x7fd8c9e0020a
[ 3.010536] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x5437b6ce1207
[ 3.010597] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437b6ce1207 against cached device with sessionID 0x5437a87a89bd
[ 3.010606] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437b6ce1207 against cached device with sessionID 0x54372bad09c4
[ 3.010611] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437b6ce1207 against cached device with sessionID 0x266aba7ccc38
[ 3.010615] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437b6ce1207 against cached device with sessionID 0x266aa5fb0084
[ 3.010619] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437b6ce1207 against cached device with sessionID 0x0
[ 3.010623] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x5437b6ce1207
[ 3.039816] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 3.039850] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 3.039858] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0110
[ 3.039863] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0xff
[ 3.039868] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x00
[ 3.039873] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x00
[ 3.039880] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x08
[ 3.039885] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x0451
[ 3.039890] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x3410
[ 3.039895] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0100
[ 3.039901] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x01
[ 3.039910] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x02
[ 3.039918] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x03
[ 3.039923] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 4.040653] [0000050f] libusb: debug [darwin_check_configuration] active config: 0, first config: 1
[ 4.040680] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x5437b6ce1207
[ 4.040691] [0000050f] libusb: debug [process_new_device] found device with address 2 port = 0 parent = 0x7fd8c9c094a0 at 0x7fd8c9d0100a
[ 4.040781] [0000050f] libusb: debug [darwin_get_cached_device] finding cached device for sessionID 0x5437bc0c1143
[ 4.040893] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x5437b6ce1207
[ 4.040911] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x5437a87a89bd
[ 4.040920] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x54372bad09c4
[ 4.040927] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x266aba7ccc38
[ 4.040934] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x266aa5fb0084
[ 4.040942] [0000050f] libusb: debug [darwin_get_cached_device] matching sessionID 0x5437bc0c1143 against cached device with sessionID 0x0
[ 4.040949] [0000050f] libusb: debug [darwin_get_cached_device] caching new device with sessionID 0x5437bc0c1143
[ 4.042596] [0000050f] libusb: debug [darwin_cache_device_descriptor] cached device descriptor:
[ 4.042627] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDescriptorType: 0x01
[ 4.042633] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdUSB: 0x0300
[ 4.042639] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceClass: 0x09
[ 4.042644] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceSubClass: 0x00
[ 4.042649] [0000050f] libusb: debug [darwin_cache_device_descriptor] bDeviceProtocol: 0x03
[ 4.042654] [0000050f] libusb: debug [darwin_cache_device_descriptor] bMaxPacketSize0: 0x09
[ 4.042662] [0000050f] libusb: debug [darwin_cache_device_descriptor] idVendor: 0x043e
[ 4.042667] [0000050f] libusb: debug [darwin_cache_device_descriptor] idProduct: 0x9a21
[ 4.042672] [0000050f] libusb: debug [darwin_cache_device_descriptor] bcdDevice: 0x0100
[ 4.042677] [0000050f] libusb: debug [darwin_cache_device_descriptor] iManufacturer: 0x02
[ 4.042682] [0000050f] libusb: debug [darwin_cache_device_descriptor] iProduct: 0x03
[ 4.042687] [0000050f] libusb: debug [darwin_cache_device_descriptor] iSerialNumber: 0x01
[ 4.042693] [0000050f] libusb: debug [darwin_cache_device_descriptor] bNumConfigurations: 0x01
[ 4.042777] [0000050f] libusb: debug [darwin_check_configuration] active config: 1, first config: 1
[ 4.042816] [0000050f] libusb: debug [process_new_device] allocating new device in context 0x7fd8c9c06b00 for with session 0x5437bc0c1143
[ 4.042835] [0000050f] libusb: debug [process_new_device] found device with address 3 port = 0 parent = 0x0 at 0x7fd8c9f00dea
[ 4.042944] [00001d07] libusb: debug [darwin_event_thread_main] creating hotplug event source
[ 4.043343] [00001d07] libusb: debug [darwin_event_thread_main] darwin event thread ready to receive events
[ 4.043406] [0000050f] libusb: debug [usbi_add_pollfd] add fd 4 events 1
[ 4.043431] [0000050f] libusb: debug [libusb_get_device_list]
[ 4.043459] [0000050f] libusb: debug [discovered_devs_append] need to increase capacity
[ 4.043471] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043475] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043478] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043481] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043485] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043488] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043491] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043495] [0000050f] libusb: debug [libusb_get_device_descriptor]
[ 4.043498] [0000050f] libusb: debug [libusb_get_device_descriptor]
No HackRF boards found.
Linux instance for reference:
hackrf_info
## [timestamp] [threadID] facility level [function call] <message>
[ 0.000114] [00002384] libusbx: debug [libusb_init] created default context
[ 0.000253] [00002384] libusbx: debug [libusb_init] libusbx v1.0.17.10830
[ 0.000348] [00002384] libusbx: debug [find_usbfs_path] found usbfs at /dev/bus/usb
[ 0.000406] [00002384] libusbx: debug [op_init] bulk continuation flag supported
[ 0.000453] [00002384] libusbx: debug [op_init] zero length packet flag supported
[ 0.000502] [00002384] libusbx: debug [op_init] sysfs can relate devices
[ 0.000528] [00002384] libusbx: debug [op_init] sysfs has complete descriptors
[ 0.001024] [00002385] libusbx: debug [linux_udev_event_thread_main] udev event thread entering.
[ 0.001813] [00002384] libusbx: debug [linux_get_device_address] getting address for device: usb1 detached: 0
[ 0.001860] [00002384] libusbx: debug [linux_get_device_address] scan usb1
[ 0.002023] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=1
[ 0.002061] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 1 session_id 257
[ 0.002085] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/1 (session 257)
[ 0.002385] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 1-1 detached: 0
[ 0.002422] [00002384] libusbx: debug [linux_get_device_address] scan 1-1
[ 0.002565] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=2
[ 0.002599] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 2 session_id 258
[ 0.002624] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/2 (session 258)
[ 0.002762] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x144f9e0 (1-1) has parent 0x144f920 (usb1) port 1
[ 0.003014] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 1-13 detached: 0
[ 0.003048] [00002384] libusbx: debug [linux_get_device_address] scan 1-13
[ 0.003166] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=6
[ 0.003196] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 6 session_id 262
[ 0.003220] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/6 (session 262)
[ 0.003332] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x144fac0 (1-13) has parent 0x144f920 (usb1) port 13
[ 0.003575] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 1-2 detached: 0
[ 0.003607] [00002384] libusbx: debug [linux_get_device_address] scan 1-2
[ 0.003726] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=3
[ 0.003756] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 3 session_id 259
[ 0.003780] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/3 (session 259)
[ 0.003894] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x14504c0 (1-2) has parent 0x144f920 (usb1) port 2
[ 0.004076] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 1-6 detached: 0
[ 0.004107] [00002384] libusbx: debug [linux_get_device_address] scan 1-6
[ 0.004223] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=4
[ 0.004252] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 4 session_id 260
[ 0.004276] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/4 (session 260)
[ 0.004383] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x1450580 (1-6) has parent 0x144f920 (usb1) port 6
[ 0.004561] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 1-7 detached: 0
[ 0.004592] [00002384] libusbx: debug [linux_get_device_address] scan 1-7
[ 0.004704] [00002384] libusbx: debug [linux_get_device_address] bus=1 dev=5
[ 0.004734] [00002384] libusbx: debug [linux_enumerate_device] busnum 1 devaddr 5 session_id 261
[ 0.004759] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 1/5 (session 261)
[ 0.004869] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x1450640 (1-7) has parent 0x144f920 (usb1) port 7
[ 0.005043] [00002384] libusbx: debug [linux_get_device_address] getting address for device: usb2 detached: 0
[ 0.005074] [00002384] libusbx: debug [linux_get_device_address] scan usb2
[ 0.005188] [00002384] libusbx: debug [linux_get_device_address] bus=2 dev=1
[ 0.005217] [00002384] libusbx: debug [linux_enumerate_device] busnum 2 devaddr 1 session_id 513
[ 0.005242] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 2/1 (session 513)
[ 0.005462] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 2-4 detached: 0
[ 0.005494] [00002384] libusbx: debug [linux_get_device_address] scan 2-4
[ 0.005636] [00002384] libusbx: debug [linux_get_device_address] bus=2 dev=2
[ 0.005663] [00002384] libusbx: debug [linux_enumerate_device] busnum 2 devaddr 2 session_id 514
[ 0.005686] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 2/2 (session 514)
[ 0.005785] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x1452040 (2-4) has parent 0x1451b90 (usb2) port 4
[ 0.005938] [00002384] libusbx: debug [linux_get_device_address] getting address for device: usb3 detached: 0
[ 0.005966] [00002384] libusbx: debug [linux_get_device_address] scan usb3
[ 0.006062] [00002384] libusbx: debug [linux_get_device_address] bus=3 dev=1
[ 0.006087] [00002384] libusbx: debug [linux_enumerate_device] busnum 3 devaddr 1 session_id 769
[ 0.006109] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 3/1 (session 769)
[ 0.006295] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 3-1 detached: 0
[ 0.006322] [00002384] libusbx: debug [linux_get_device_address] scan 3-1
[ 0.006419] [00002384] libusbx: debug [linux_get_device_address] bus=3 dev=2
[ 0.006443] [00002384] libusbx: debug [linux_enumerate_device] busnum 3 devaddr 2 session_id 770
[ 0.006465] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 3/2 (session 770)
[ 0.006558] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x14529e0 (3-1) has parent 0x1452530 (usb3) port 1
[ 0.006710] [00002384] libusbx: debug [linux_get_device_address] getting address for device: usb4 detached: 0
[ 0.006737] [00002384] libusbx: debug [linux_get_device_address] scan usb4
[ 0.006832] [00002384] libusbx: debug [linux_get_device_address] bus=4 dev=1
[ 0.006858] [00002384] libusbx: debug [linux_enumerate_device] busnum 4 devaddr 1 session_id 1025
[ 0.006881] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 4/1 (session 1025)
[ 0.007065] [00002384] libusbx: debug [linux_get_device_address] getting address for device: 4-1 detached: 0
[ 0.007092] [00002384] libusbx: debug [linux_get_device_address] scan 4-1
[ 0.007187] [00002384] libusbx: debug [linux_get_device_address] bus=4 dev=2
[ 0.007212] [00002384] libusbx: debug [linux_enumerate_device] busnum 4 devaddr 2 session_id 1026
[ 0.007235] [00002384] libusbx: debug [linux_enumerate_device] allocating new device for 4/2 (session 1026)
[ 0.007327] [00002384] libusbx: debug [linux_get_parent_info] Dev 0x1453380 (4-1) has parent 0x1452ed0 (usb4) port 1
[ 0.007456] [00002384] libusbx: debug [usbi_add_pollfd] add fd 6 events 1
[ 0.007491] [00002384] libusbx: debug [usbi_add_pollfd] add fd 8 events 1
[ 0.007519] [00002384] libusbx: debug [usbi_io_init] using timerfd for timeouts
[ 0.007538] [00002384] libusbx: debug [usbi_add_pollfd] add fd 10 events 1
[ 0.007562] [00002384] libusbx: debug [libusb_get_device_list]
[ 0.007592] [00002384] libusbx: debug [discovered_devs_append] need to increase capacity
[ 0.007622] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007646] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007668] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007689] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007714] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007739] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007762] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007787] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007811] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007835] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007859] [00002384] libusbx: debug [libusb_get_device_descriptor]
[ 0.007884] [00002384] libusbx: debug [libusb_get_device_descriptor]
No HackRF boards found.
We installed the latest libusb HEAD, built dynamic libraries, and recompiled the plugin against the new libraries. I think we did that right, but there’s a chance I made an error.
Even with the new libusb install, we still see the errors, which look like mangled (or maybe slow) responses from the ehFeedback command in u6.c when we try to initialize the U6.
Mark
If you could send us your updated version of the LabJack plugin, that would be very helpful.
OK, I’ve attached the source code. If you’ve already run the Exodriver installer, then the plugin should build without any changes. Let me know if you run in to any problems.
Chris
We installed the latest libusb HEAD, built dynamic libraries, and recompiled the plugin against the new libraries.
Did you also recompile liblabjackusb against the latest libusb? If not, then it may still be linked to the old version.
Chris
Hi Mark,
Thanks for sharing the links to potentially-related issues (which I’ve included below).
After some additional testing, I’m now seeing this problem sometimes , but not always. Also, when I do get a LabJack initialization failure, if I then quit and restart MWServer, without unplugging the LabJack, the device initializes successfully. To me, this suggests that some step in the initialization process is timing out prematurely. I’m going to dig in to this some more and see what I can figure out.
For future reference, here are the links that Mark shared:
Chris
Hi all,
I’ve discovered a strange workaround for this issue: In setupU6PortsAndRestartIfDead
, if the first call to ljU6ConfigPorts
fails, and I then immediately call it two more times, the third attempt reliably succeeds. Specifically, I’ve replaced this bit of code:
// Do physical port setup
if (!ljU6ConfigPorts(ljHandle)) {
...
with this:
// Do physical port setup
if (!ljU6ConfigPorts(ljHandle) && !ljU6ConfigPorts(ljHandle) && !ljU6ConfigPorts(ljHandle)) {
...
I’m still building against the LabJack-provided exodriver and libusb binaries. I’m testing on a 2013 Mac Pro running OS X 10.11.2.
It doesn’t seem to be a question of timing, as simply putting a delay (even a multi-second one) between the first and second calls to ljU6ConfigPorts
has no effect. Somehow, the actual act of attempting configuration three times (with a corresponding USB bulk write and read for each attempt) resolves the issue.
This isn’t exactly an encouraging result, as it still suggests there are issues in El Capitan’s USB drivers. However, if this workaround works on your setup machines, too, then it could serve as a weird but functional stop-gap measure until Apple fixes the root problems. Maybe you guys can try it out?
Cheers,
Chris
Hi Chris,
I just build the Labjack plugin with your suggested change. I restarted 10 times without unplugging the Labjack (we are using the late 2015 IMac 4K model with OS X 10.11.1). Each restart, the ljU6ConfigPorts function erred the first two times, but succeeded the third times.
So this seems to be a good workaround. Third time’s a charm!
We’ll keep on trying this fix during the next days and keep you posted if things go wrong.
Thanks a lot for finding this.
Bram
Hi all,
As noted on GitHub , the USB problem that was affecting LabJack initialization appears to be fixed in OS X 10.11.4. After upgrading to 10.11.4, removing my previously-suggested workaround , and re-testing, I find that the U6 initializes on every attempt without issue.
Cheers,
Chris
Great. Will this go in the nightly soon?
Thanks,
Mark
Hi Mark,
Will this go in the nightly soon?
The OS update resolved the issue. No MWorks changes were required. The LabJack plugin itself has never been in the nightly build.
Cheers,
Chris
Got it. Thanks for proactively testing this, Chris.
Mark
Hi Chris,
Yes, everything seems to work fine with the new upgrade.
Thanks for letting us know!
Bram