Fedora 35下PipeWire环境中HDMI音频无法正常工作的技术求助
Hey there, let's work through this HDMI audio problem you're facing on Fedora 35. Since you've confirmed the HDMI hardware itself works with speaker-test, the issue is almost certainly related to how PipeWire/WirePlumber handles audio routing, or a misconfiguration between the sound server and GNOME. Here are targeted steps to fix this:
1. Confirm WirePlumber Sees Your HDMI Device
First, let's check if WirePlumber is actually recognizing your HDMI audio output:
wpctl status
Look for an entry under Audio -> Sinks that mentions HDMI (it might look like alsa_output.pci-0000_00_1f.3.hdmi-stereo). If you see it, set it as the default output manually with:
wpctl set-default <your-hdmi-sink-id>
Replace <your-hdmi-sink-id> with the number next to the HDMI sink (e.g., 3). Then play a test audio file to see if it works.
2. Check WirePlumber's ALSA Configuration
WirePlumber might be accidentally disabling your HDMI device. Let's inspect and adjust the config:
- Copy the system-wide config to your user directory so you can edit it safely:
mkdir -p ~/.config/wireplumber/main.lua.d/ cp /usr/share/pipewire/wireplumber/main.lua.d/50-alsa-config.lua ~/.config/wireplumber/main.lua.d/ - Open the copied file in a text editor (e.g.,
nano ~/.config/wireplumber/main.lua.d/50-alsa-config.lua). Look for any lines that disable HDMI devices, likenode.disabled = truepaired with a comment about HDMI. If you find them, comment them out by adding--at the start of the line. - Save the file and restart WirePlumber:
systemctl --user restart wireplumber
3. Reset PipeWire/WirePlumber State
Corrupted state files can cause weird audio issues. Let's clear them and start fresh:
# Stop all sound server services systemctl --user stop pipewire pipewire-pulse wireplumber # Delete cached state files rm -rf ~/.local/state/wireplumber/ ~/.local/state/pipewire/ # Restart the services systemctl --user start pipewire pipewire-pulse wireplumber
After this, open GNOME Settings > Sound, reselect the HDMI output, and test audio again.
4. Try Different Audio Profiles in GNOME
Your TV might not support the default audio profile GNOME is using for HDMI:
- Open GNOME Settings > Sound.
- Click the gear icon next to the "HDMI/DisplayPort - Internal audio" option.
- Try switching between available profiles (like "HDMI Stereo", "HDMI Surround 5.1", etc.)—test audio after each switch. Sometimes a different profile will trigger the sound to work.
5. Reinstall PipeWire Packages
If the configs are messed up, reinstalling the core PipeWire components can help:
sudo dnf reinstall pipewire pipewire-pulse wireplumber pipewire-alsa
Reboot your system after the reinstall, then check the audio again.
6. Update Your System (If Possible)
While Fedora 35 is end-of-life, if you haven't updated recently, installing any remaining patches might fix known PipeWire bugs:
sudo dnf update --refresh
Reboot after updating to apply changes.
If none of these steps resolve the issue, share the output of wpctl status and journalctl --user -u wireplumber—that will help dig deeper into what's going wrong.
内容的提问来源于stack exchange,提问作者saulotoledo




