I found a simpler approach that avoids blacklisting snd_usb_audio or modifying sudoers. The key insight is that the dongle needs to be physically unplugged and replugged in white (PC) mode — the module reload alone isn't enough.
The script:
bash#!/bin/bash
echo "Astro A20 connect"
sudo -v
sudo modprobe -r snd_usb_audio
read -r -p "Unplug dongle, plug back in, switch to WHITE when green light appears, then press ENTER..."
sudo modprobe snd_usb_audio
aplay -l | grep -i astro || echo "Not found, try again"
Usage:
Save as astro in /usr/local/bin/ and make executable with sudo chmod +x /usr/local/bin/astro
Run astro from any terminal
Enter your sudo password when prompted
Follow the on-screen instructions
Why this works:
The dongle always powers on in green (console) mode. Unplugging after the module is unloaded lets you toggle to white (PC) mode and replug before the module reloads, so it's recognised correctly as an audio device.
snd_usb_audio remains loaded after the script completes so other USB audio devices are unaffected.
Tested on Fedora 43, kernel 7.0.12, PipeWire.
I found a simpler approach that avoids blacklisting snd_usb_audio or modifying sudoers. The key insight is that the dongle needs to be physically unplugged and replugged in white (PC) mode — the module reload alone isn't enough.
The script:
Usage:
Save as astro in /usr/local/bin/ and make executable with sudo chmod +x /usr/local/bin/astro
Run astro from any terminal
Enter your sudo password when prompted
Follow the on-screen instructions
Why this works:
The dongle always powers on in green (console) mode. Unplugging after the module is unloaded lets you toggle to white (PC) mode and replug before the module reloads, so it's recognised correctly as an audio device.
snd_usb_audio remains loaded after the script completes so other USB audio devices are unaffected.
Tested on Fedora 43, kernel 7.0.12, PipeWire.