debcrafters-packages team mailing list archive
-
debcrafters-packages team
-
Mailing list archive
-
Message #05521
[Bug 2120236] Re: WirePlumber on Ubuntu 24.04 ignores all configuration overrides for AMD HDMI audio (alsa_card.pci-0000_06_00.1)
Simon Poirier,
Thank you for responding to my bug report!
Is this bug reproducible?
Yes. This is a reproducible on a clean installation of Ubuntu 24.04 with my hardware.
AMD RX 580 | Vizio M556-G4 TV | Vizio V51 Soundbar via ARC
The issue is presented in two layers: a kernel-level EDID failure, and a PipeWire/WirePlumber configuration failure.
If so, what specific steps should we take to recreate this bug?
Step 1: Recreating the Kernel/Driver Failure
Connect an AMD GPU (Ellesmere series) to a Vizio M556-G4 TV via HDMI.
On a clean Ubuntu 24.04 install, observe that the HDMI audio device has no capabilities.
Attempt to read the EDID using cat /sys/class/drm/card1-HDMI-A-1/edid. The result is a blank/empty file.
Workaround: This was solved by forcing a manual EDID via the kernel parameter drm.edid_firmware=HDMI-A-1:edid/edid.bin. After this, the driver correctly initializes the 6-channel LPCM capabilities.
Step 2: Recreating the PipeWire/WirePlumber Configuration Bug
With the kernel driver now functional (post-EDID override), the goal is to force the HDMI output to use AC3 encoding, as the Vizio TV cannot pass multi-channel LPCM to its soundbar.
Attempt to apply the necessary iec958.codecs = ["AC3"] property using any standard configuration method. All of these methods fail:
A .lua script in ~/.config/wireplumber/main.lua.d/.
A .conf override in /etc/pipewire/pipewire.conf.d/.
A .conf override in /etc/wireplumber/alsa.conf.d/.
Verification: After each attempt and a reboot, wpctl inspect <hdmi-sink-id> confirms the iec958.codecs property was not applied. The system ignores all of these configuration files.
Software Success, Hardware Failure
I attempted to utilize the pw-cli command and it provided desirable
results. The Linux software stack is now working find, and the issue
appears to be an hardware/firmware incompatibility with the Vizio TV
itself.
After running the command you provided, wpctl inspect <ID> confirms that
the iec958.codecs property is successfully applied to the live system.
PipeWire's routing now works. Helvum confirms that a 6-channel audio
stream from VLC is correctly and completely linked to all 6 playback
ports of the Ellesmere HDMI Audio sink.
Despite the live software configuration being correct(?), no audio is
produced through the TV and soundbar combination.
This most likely confirms that the root cause is not a bug within PipeWire's configuration loading (though that is still an issue), but rather a fundamental incompatibility in the Vizio M556-G4 TV's firmware. The Vizio TV is incapable of passing a real-time encoded AC3 stream from an external HDMI source to its soundbar via HDMI-ARC. It can only pass AC3 from its own internal applications. The TV silently drops the valid AC3 stream that the Linux PC is now correctly sending it.
** Attachment added: "Screenshot from 2025-08-16 14-51-02.png"
https://bugs.launchpad.net/ubuntu/+source/pipewire/+bug/2120236/+attachment/5899502/+files/Screenshot%20from%202025-08-16%2014-51-02.png
--
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to pipewire in Ubuntu.
https://bugs.launchpad.net/bugs/2120236
Title:
WirePlumber on Ubuntu 24.04 ignores all configuration overrides for
AMD HDMI audio (alsa_card.pci-0000_06_00.1)
Status in pipewire package in Ubuntu:
Incomplete
Bug description:
Hardware:
Motherboard: Gigabyte B450M-DS3H (S/PDIF: Realtek ALC887-VD)
Graphics Card: AMD Radeon RX 470/480/570/580/590
Display: Vizio M556-G4 TV connected via HDMI
Problem Summary:
The Vizio TV provides a blank EDID, which was worked around by forcing a manual EDID file via a kernel parameter (drm.edid_firmware).
The kernel driver is now proven to be functional for 6-channel LPCM audio via a direct speaker-test -D hw:0,9 -c 6 test.
The TV cannot handle 6-channel LPCM from external sources, but it can handle compressed AC3 (Dolby Digital), as proven by its native apps.
The goal is to force PipeWire to encode the HDMI audio to AC3.
The issue is that PipeWire/WirePlumber ignores all attempts to add the iec958.codecs = [ "AC3" ] property. I have tried user-level .lua scripts, system-level .conf overrides in /etc/pipewire, and system-level .conf overrides in /etc/wireplumber. In every case, wpctl inspect says that the property is not being applied or updated.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pipewire/+bug/2120236/+subscriptions
References