You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Fedora 35下PipeWire环境中HDMI音频无法正常工作的技术求助

Troubleshooting HDMI Audio Issues on Fedora 35 (PipeWire + WirePlumber)

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:

  1. 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/
    
  2. 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, like node.disabled = true paired with a comment about HDMI. If you find them, comment them out by adding -- at the start of the line.
  3. 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:

  1. Open GNOME Settings > Sound.
  2. Click the gear icon next to the "HDMI/DisplayPort - Internal audio" option.
  3. 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

火山引擎 最新活动