From Newsgroup: alt.os.linux
On 8/9/26 4:30 PM, Lawrence DrCOOliveiro wrote:
On Sun, 9 Aug 2026 14:18:17 -0400, bad sector wrote:
Further on this topic after many kernel and pipewire updates, I
finally got what I want with help from Claude (Chatgpt less
productive). The entire session is a living hell marathon much too
long to post but I am keeping it for reference. After successful
completion I asked Claude for a drill of the salient points and it
obliged with this short list.
Did it recommend using a GUI tool like qpwgraph to manage connections?
Not once, I'm still trying to digest it all but as far as I can tell at
this point the 4 hangups were (condition & possible solution)
1
alsamixer GUI does NOT show everything allegedly because some misread
graphics & monitor attributes but I have 4k and loads of processing so o excuse for truncated displays. There is no cure for this except sing?
amixer -c 1 scontrols
2
alsa defaults that are NOT unmute & 100 on all
... I have no idea why this would be so!
amixer scontrols | grep -oE "''" | awk -F\' '{print "amixer -c 0 set
\""$2"\" unmute 100%"}' | sh
3
alsa auto-mute, the solution being
amixer -c 1 set 'Auto-Mute Mode' 0 Disabled
4
creating a combined sink
pactl load-module module-combine-sink sinkname=both slaves=alsaoutput.pci-00007b00.6.analog-stereo,alsaoutput.usb-ASUSTeKXONARSOUNDCARD-00.analog-stereo
I had it all at the end of the session but will want to make sure that
it all comes together on boot & then remove the workaraound when no
longer needed (if that ever happens).
Claude produced:
What I think was the full session is @:
https://paste.opensuse.org/pastes/44f702e4c3ef
A short drill:
--------------------------------------------------
Dual Audio Output Setup rCo ASUS X870E ProArt (Realtek ALC1220 + Xonar)
Goal: same audio (e.g. VLC) plays through both onboard headset jack and
USB Xonar speakers simultaneously, each with independently adjustable
volume.
System: openSUSE Tumbleweed, PipeWire (via pipewire-pulse compatibility layer).
Identify hardware
`
aplay -l
`
rCo card 1: Generic [HD-Audio Generic] raA onboard Realtek ALC1220 (hw:1,0)
rCo card 2: CARD [XONAR SOUND CARD] raA USB Xonar
`
pactl list short sinks
`
Gives PipeWire sink names, e.g.:
rCo alsaoutput.pci-00007b_00.6.analog-stereo (Realtek)
rCo alsaoutput.usb-ASUSTeKXONARSOUNDCARD-00.analog-stereo (Xonar)
Your exact PCI address/sink names will differ rCo always re-check with these two commands rather than assuming the ones below are portable.
Fix a silent ALSA output (skip if not needed)
If a physical output shows as active in PipeWire/pavucontrol but produces
no sound, check the ALSA mixer directly (not just alsamixer's TUI rCo it can mis-render on narrow terminals and hide controls):
`
amixer -c 1 scontrols
`
Lists every real control. On ALC1220-family codecs the ones that gate
output are typically Master, Headphone, Front, and PCM. Set them:
`
amixer -c 1 sset 'Master',0 100% unmute
amixer -c 1 sset 'Headphone',0 100% unmute
amixer -c 1 sset 'Front',0 100% unmute
amixer -c 1 sset 'PCM',0 100% unmute
`
Test the raw device directly, bypassing PipeWire, and actually listen:
`
speaker-test -D hw:1,0 -c2 -t wav
`
If Auto-Mute Mode is enabled and misbehaving (jack-sense wrongly muting
a port), disable it:
`
amixer -c 1 sset 'Auto-Mute Mode',0 Disabled
`
Create the combine sink
`
pactl load-module module-combine-sink sinkname=both slaves=alsaoutput.pci-00007b00.6.analog-stereo,alsaoutput.usb-ASUSTeKXONARSOUNDCARD-00.analog-stereo
`
Verify:
`
pactl list short sinks
`
A new both sink should appear.
Route an app to the combined sink
In pavucontrol raA Playback tab (app must be actively playing audio to
show up here): change its output device dropdown to both.
Independent volume control
pavucontrol raA Output Devices tab: the Realtek and Xonar entries remain separate sliders even while feeding the combine sink. Adjust each
independently rCo the app's own volume (e.g. VLC's slider) acts as the
overall master feeding both.
Make it persistent (survive reboot/logout)
The pactl load-module command only lasts the current session. To load automatically, create:
`
~/.config/pipewire/pipewire.conf.d/99-combine-sink.conf
`
with contents like:
`
context.modules = [
{ name = libpipewire-module-combine-stream
args = {
combine.mode = sink
node.name = "both"
node.description = "Headset + Speakers"
combine.streams = [
{ node.name = "alsaoutput.pci-00007b_00.6.analog-stereo" }
{ node.name = "alsaoutput.usb-ASUSTeKXONARSOUNDCARD-00.analog-stereo" }
]
}
}
]
`
(Exact directive syntax can shift between PipeWire versions rCo if this
doesn't load cleanly, the fallback is a systemd --user unit that runs the
pactl load-module command on login instead.)
Key troubleshooting lesson
alsamixer's on-screen list is not authoritative rCo it can silently hide
or misrender controls depending on terminal width/rendering. `amixer
scontrols (and amixer sset`) always shows/sets the real, complete control
set and should be the first tool reached for whenever alsamixer looks suspiciously sparse.
--- Synchronet 3.22a-Linux NewsLink 1.2