Device
TrimUI Brick Pro (tg4040), nightly v4.3.6-20260906
Summary
USB-C UAC headphones (Apple EarPods) play fine, but the volume keys and audio
routing aren't USB-audio-aware.
What works
- The headphones enumerate as ALSA card 1 (USB-Audio); the audio interfaces bind
(snd-usb-audio is built in, CONFIG_SND_USB_AUDIO=y).
- If connected before launching a game, RetroArch (
audio_device = "") opens the
USB card and game audio plays through it (card1 pcm RUNNING, card0 closed).
Problems
- Volume keys don't affect USB output. Volume on the Brick is handled by the
stock TrimUI firmware via the transient /tmp/system/set_volume, targeting only
the built-in codec (card 0). With audio on card 1, the keys (and the EarPods'
inline HID volume buttons) do nothing audible. The USB card does expose volume
(amixer -c1: numid=4 Headset Playback Volume 0-38, numid=6 0-120 — setting
these works), but nothing drives it. There's no stable current-level value to
mirror externally (codec controls sit at max; level is applied internally).
- No hotplug re-routing. Output only lands on the USB card if it's present
before the game starts; plugging in mid-game keeps output on the speaker until
the game is relaunched.
Suggestion
Make the volume path and routing USB-audio-aware: when a USB audio card is present,
route output to it and have the volume keys target its playback volume
(card1 numid=4/6), ideally re-routing on hotplug.
Device
TrimUI Brick Pro (tg4040), nightly v4.3.6-20260906
Summary
USB-C UAC headphones (Apple EarPods) play fine, but the volume keys and audio
routing aren't USB-audio-aware.
What works
(
snd-usb-audiois built in,CONFIG_SND_USB_AUDIO=y).audio_device = "") opens theUSB card and game audio plays through it (card1 pcm
RUNNING, card0 closed).Problems
stock TrimUI firmware via the transient
/tmp/system/set_volume, targeting onlythe built-in codec (card 0). With audio on card 1, the keys (and the EarPods'
inline HID volume buttons) do nothing audible. The USB card does expose volume
(
amixer -c1: numid=4Headset Playback Volume0-38, numid=6 0-120 — settingthese works), but nothing drives it. There's no stable current-level value to
mirror externally (codec controls sit at max; level is applied internally).
before the game starts; plugging in mid-game keeps output on the speaker until
the game is relaunched.
Suggestion
Make the volume path and routing USB-audio-aware: when a USB audio card is present,
route output to it and have the volume keys target its playback volume
(card1 numid=4/6), ideally re-routing on hotplug.