Trying to make my Behringer UMC202HD audio interface work with GNU/Linux. While doing so, I managed to make a warning disappear by editing a file in the kernel source. The main issue I'm having with the interface isn't gone, and I am not sure whether to bother you people with that now. However I'd like to read your comments on the edit I made regarding the warning.
Details:
- Product: 1397:0507 BEHRINGER International GmbH UMC202HD 192k - dmesg warning: clock source 41 is not valid, cannot use - kernel: linux-5.15.13 - Edit that made the warning disappear:
$ diff -u sound/usb/clock.c.orig sound/usb/clock.c --- sound/usb/clock.c.orig 2022-01-13 08:14:49.555281286 +0530 +++ sound/usb/clock.c 2022-01-13 08:18:38.004618792 +0530 @@ -180,7 +180,11 @@ * Sample rate changes takes more than 2 seconds for this device. Clock * validity request returns false during that period. */ - if (chip->usb_id == USB_ID(0x07fd, 0x0004)) { + if (chip->usb_id == USB_ID(0x07fd, 0x0004) || + /* Trying the same for BEHRINGER International GmbH UMC202HD 192k */ + chip->usb_id == USB_ID(0x1397, 0x0507) + ) + { count = 0;
while ((!ret) && (count < 50)) {
Yes, I was just adding the ID of UMC202HD to an existing workaround. I'm not sure if the device's clock should actually be accepted (but I think so because the retry works, right?), or if two seconds is the right delay for UMC202HD.
The real issue I'm having with this device is related to the periodic stuttering/pops while playback (recording is okay). I remember having read that UMC20x is well-supported in Linux. Maybe now they're using a different firmware version or something? If you are interested, here is a list of things I've already tried:
- Different ports, including USB 2.0, and disabling xHCI using `setpci` - Disconnecting other USB devices - Disabling wireless - Making sure speech-dispatcher isn't running - Old and new GNU/Linux distros on different computers - Switching sound servers (PulseAudio and JACK) and direct ALSA - Different sampling rates, buffer sizes, etc. - Lower volume levels - Making sure there are no xruns - tsched=0 and 1 for module-udev-detect (pulse) - realtime-scheduling, high-priority, and nice-level (pulse) - Choosing Performance mode for CPU Governer and disabling Intel Boost (as recommended by Ubuntu Studio dashboard) - lowlatency kernel - A recent kernel (v5.15.13) built from source with oldconfig - Clock source workaround in sound/usb/clock.c - Quirk entries in sound/usb/implicit.c (I won't claim I did it right)
Again, I'd like to hear your comments on the clock detection workaround first, since that's the only thing I seem to have solved with all these hours spent (except for learning a lot, of course). But if you have time, please consider the second (main) issue also. Maybe I'm posting this in the wrong place; if so, please let me know where to repost it (official forum or a kernel mailing list).
Thank you,