Fixing Sound Problems With Behringer UMC204HD On Linux

Background
Linux Distro: Kubuntu
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular
PlasmaShell Version: plasmashell 6.1.5
This is a bit of an edge-case, I imagine, but I can’t be the only one so here’s how to handle this.
The Problem
When using a Behringer UMC204HD USB interface with Kubuntu (specifics above), the USB interface works until the screen locks and the system suspends. When it wakes up and you log back in, the sound won’t work anymore. Rebooting always brings it back to life but that’s not a solution.
Instant Fix (not a long term solution, but this will get you up and running)
To get it back pronto, rebooting works, or you can unplug the USB interface and plug it back in. This should trigger the system to start recognizing the device again.
If you are currently having a sound emergency then do this and you’ll get your sound back.
For a real fix, keep reading.
Long Term Solution
To verify that you’re making the right fix, your current situation should look like this:
- Sound works after a fresh reboot but stops working after the computer locks and suspends
- Unplugging and plugging in the USB device revives it
If that isn’t your scenario then you probably have some other issue. Assuming that matches your situation, here’s how you can fix it.
(1 of 6) Get Your Device ID
First, you’ll need your USB device ID. You can get this by opening a terminal window and running:
lsusb
You’ll see output for each device plugged into a USB port. The one you’re interested in will look similar to this:
Bus 001 Device 002: ID 1397:0508 BEHRINGER International GmbH UMC204HD 192k
In the above example, “1397” is the vendor ID and “0508” is the product ID. That is important for the scripts we are creating, so make sure you get that first.
(2 of 6) Create Directory For Shell Script
You should make a directory that will hold the .sh
file. This directory begins with a .
so it will be hidden in the file explorer unless you choose to show hidden files and folders.
mkdir ~/.tweaks-kubuntu
CD to that directory
cd ~/.tweaks-kubuntu
(3 of 6) Create The Shell Script
From your newly created .tweaks-kubuntu
folder, create an sh
file using vi or nano or whatever text editor you prefer. We’ll call it reset-umc204hd.sh
.
vi reset-umc204hd.sh
In that file, add this code:
#!/bin/bash /usr/bin/usbreset 1397:0508
BE SURE THAT THE ID’S MATCH YOUR DEVICE ID’S.
(4 of 6) Create a Rules File
vi /etc/udev/rules.d/99-behringer-umc204hd.rules
Set the content to:
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1397", ATTR{idProduct}=="0508", ATTR{power/autosuspend}="-1"
Again, update the vendor ID and the product ID to match your setup.
(5 of 6) Create A Sleep Reset File
This is the script that will fire when your system wakes up. It will run the .sh
script made in the previous step.
vi /lib/systemd/system-sleep/reset-umc204hd
Set the content to:
#!/bin/bash if [ "$1" = "post" ]; then sleep 5 # Waits 5 seconds, otherwise it fires too soon ~/.tweaks-kubuntu/reset-umc204hd.sh fi
(6 of 6) Tell GRUB Not To Suspend USB Devices
This step may not be necessary, but I did it as part of my troubleshooting process and it may help. If you’re on a laptop you might be concerned with battery life and not want to do this unless you have to.
Edit the grub file:
vi /etc/default/grub
Find the line with GRUB_CMDLINE_LINUX_DEFAULT
The original text looks like this but your UUID will differ:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=fc33025d-bb3f-4d5c-bb41-27c4d36830ca"
Add usbcore.autosuspend=-1
to the end of the value so it looks similar to this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=fc33025d-bb3f-4d5c-bb41-27c4d36830ca usbcore.autosuspend=-1"
Make sure it’s within the quotes, not after.
Done!
That’s all there is to it! So, now you have a script that resets your USB device when your computer wakes up from being suspended.
You can test-suspend your system by running this in a terminal:
systemctl suspend
That will immediately suspend and lock your system so you log back in and confirm that it’s all working.
Credits
This was the result of hours of troubleshooting with X’s Grok. Grok was indispensable in this process. I hope this helps someone else.