Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Behringer UMC204HD "reboot" cycle #257

Open
RJVB opened this issue Sep 12, 2024 · 0 comments
Open

Behringer UMC204HD "reboot" cycle #257

RJVB opened this issue Sep 12, 2024 · 0 comments

Comments

@RJVB
Copy link

RJVB commented Sep 12, 2024

This is a bit of a complimentary ticket to libusb/libusb#1564 , to see if and what could be done at the level of usbmuxd (or libusbmuxd?).

I have a Behringer UMC204HD USB DAC connected via a USB3 port on a Thunderbolt dock to a Mac which gets into what looks like an endless reboot loop as long as I run an application that uses libusb. This happens when running this usbmuxd (as opposed to Apple's) with support for hotplugging activated. The issue is triggered by a call to libusb_init_context() with the default parameters; the actual culprit is darwin_request_descriptor() which is called to obtain the complete device description.
The fact that I get a looped reboot suggests that usbmuxd uses a polling strategy to detect new devices, rather than reacting to a dedicated IOKit event that I guess must exist?

I presume that the underlying error is in the device firmware. If so it will probably not get fixed because Behringer cannot reproduce the issue.

Ignoring the issue is not an option as the power circuits in the DAC keep getting restarted leading to pops in attached speakers or phones, lots of System.log pollution and the device becomes basically useless. One workaround is to disconnect the device when I need usbmuxd (to access data on an iPhone no longer supported on my Mac OS version) but that isn't satisfactory.

Another workaround is to blacklist the device, which for now I've hacked into my libusb build.

What options are there at the level of usbmuxd? In particular, what information is needed beyond the vendor,product pair to enumerate the connected devices of interest - those would be only Apple devices I presume? libusb has a LIBUSB_OPTION_NO_DEVICE_DISCOVERY option,might that be useful here? Would a libusb API to filter devices based on vendor and/or product code by welcome?


BTW: I had to sudo launchctl unload the system usbmuxd but then it was a nice surprise to see that this version acts as a drop-in replacement, and my old iPhoneSE show up in iTunes. Sadly the 2nd gen. one is now recognised and pops up an error that iTunes 12.10.6 is required. Pretty certain that isn't true for just syncing (music etc.) but what can you do...


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant