ASUS ROG Strix X870-A Gaming WiFi (USB Audio 0b05:1b9b) S/PDIF output routed incorrectly on ALC4080 UCM profile

Spent two days on this on my desktop

I don't normally use Chatbots, but I really wanted to get away from windows 11, and Bazzite seems to over heat my computer, plus Zorin looks so much nicer, so I am posting the synopsis of my adventure to hopefully help and fix this bug

Hardware

  • Motherboard: ASUS ROG Strix X870-A Gaming WiFi
  • Audio codec: Realtek ALC4080 (USB Audio)
  • USB Vendor/Product ID: 0b05:1b9b
  • OS: Zorin OS 18.1 (Ubuntu Noble)
  • Kernel: 7.0.0-28-generic

Problem

The motherboard's optical S/PDIF output is detected and exposed as an IEC958 device, but no PCM audio is produced using the default ALSA UCM/PipeWire configuration.

Windows and Bazzite Linux both produce working S/PDIF output on the same hardware.

Investigation

The device is detected correctly:

USB Audio
Vendor: 0b05
Product: 1b9b
Driver: snd_usb_audio

PipeWire creates an IEC958 sink:

USB Audio Digital Stereo (IEC958)
api.alsa.path = "iec958:2"

However, playback through the logical IEC958 devices fails:

aplay -D iec958:CARD=Audio,DEV=0 ...

→ No audio

aplay -D iec958:CARD=Audio,DEV=1 ...

→ No audio

Raw hardware playback also fails:

aplay -D hw:2,3 ...

→ No audio

However:

aplay -D plughw:2,3 ...

Audio works correctly over optical S/PDIF

Root cause

The ASUS USB audio implementation appears to require ALSA's plug conversion layer for the optical PCM endpoint.

The current UCM profile routes the IEC958 output to a device that does not produce audio on this motherboard revision (USB ID 0b05:1b9b).

Additionally, the current UCM profile only matches older ASUS USB IDs:

0b05:1996
0b05:1999

and does not include:

0b05:1b9b

Workaround

Creating a custom ALSA PCM using the plug plugin restores S/PDIF output:

pcm.spdif_fixed {
    type plug
    slave.pcm "hw:2,3"
}

ctl.spdif_fixed {
    type hw
    card 2
}

Playback through this PCM works correctly.

Expected behavior

The ALC4080 UCM profile should correctly support ASUS USB device 0b05:1b9b and configure the S/PDIF output so that standard PipeWire/ALSA playback functions without requiring a custom .asoundrc.

Well it worked till reboot and I am at a dead end. it as I could not get it to go again.

Welcome to the Forum!

Did You tried it with Pulse Audio Volume Control? It is a Tool to set up Audio Input and Output. You can install it with the Command sudo apt install pavucontrol via Terminal. When installed, check the Configuration and Output Tabs. You might have to play a bit with the Settings.

Also:

  • Are Secure Boot and Fast Boot in BIOS disabled?
  • If Windows is still installed: Is Fast Start-Up in Windows disabled?
  • Is Your System in Wayland or X11? You can check that with the Terminal Command echo $XDG_SESSION_TYPE
  • Did You tried to switch back to the 6.17 Kernel?