Fix for No Sound on Internal Speakers/Microphone in Fedora (SOF Intel HDA)
Problem Description
- Internal speakers not working (Bluetooth/WiFi audio works fine)
- Internal microphone not detected
- Audio device visible but no sound output
- Specifically affects Intel Tiger Lake-LP and similar SOF (Sound Open Firmware) audio controllers
- Tested on Dell Latitude 3520 with Fedora 43
Root Cause
The issue was caused by PulseAudio and PipeWire conflict. Having both pulseaudio and pipewire packages installed simultaneously prevents proper audio card initialization, leaving the audio profile in “off” state.
Solution
Step 1: Remove PulseAudio and Install PipeWire-PulseAudio
# Remove conflicting PulseAudio packages
sudo dnf remove pulseaudio pulseaudio-module-bluetooth
# Install the correct PipeWire replacement for PulseAudio
sudo dnf install pipewire-pulseaudio wireplumber
# Clean any old configurations
rm -rf ~/.config/wireplumber ~/.local/state/wireplumber
# Reboot the system
sudo reboot
Step 2: Verify Audio Card Detection
After reboot, check if your audio card is detected:
wpctl status
pactl list cards
You should see your audio card listed. If the “Active Profile” shows “off”, continue to Step 3.
Step 3: Activate the Pro-Audio Profile
# List available cards and find yours (look for something like alsa_card.pci-...)
pactl list cards short
# Activate the pro-audio profile (replace the card name with yours)
pactl set-card-profile alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic pro-audio
# Verify devices are now available
wpctl status
You should now see multiple sinks (outputs) and sources (inputs) listed.
Step 4: Set Default Audio Devices
# List all audio sinks
wpctl status
# Set the main speaker as default (usually the one without "Pro X" suffix)
# Replace 75 with the correct ID from wpctl status output
wpctl set-default 75
# Set the microphone as default
wpctl set-default 74
# Unmute and set volume
wpctl set-mute 75 0
wpctl set-volume 75 1.0
Step 5: Test Audio
# Test speakers
speaker-test -c 2 -t wav
# Press Ctrl+C to stop
Step 6: Make Profile Persistent (Optional)
Create a configuration file to automatically activate the pro-audio profile on boot:
# Create configuration directory if it doesn't exist
mkdir -p ~/.config/wireplumber/wireplumber.conf.d
# Create configuration file
cat > ~/.config/wireplumber/wireplumber.conf.d/60-set-profile.conf << 'EOF'
monitor.alsa.rules = [
{
matches = [
{ device.name = "~alsa_card.pci-0000_00_1f.3.*" }
]
actions = {
update-props = {
device.profile = "pro-audio"
api.alsa.use-acp = true
api.acp.auto-profile = false
api.acp.auto-port = false
}
}
}
]
EOF
# Restart WirePlumber
systemctl --user restart wireplumber
Additional Troubleshooting
If No Sound After Profile Activation
Check ALSA mixer levels:
alsamixer
- Press F6 to select your sound card (sof-hda-dsp)
- Look for channels marked MM (muted) and press M to unmute
- Ensure Master, Speaker, and Headphone channels are at reasonable levels
- Press Esc to exit
If You Need to Try Different Outputs
The pro-audio profile exposes multiple outputs. Try each one:
wpctl set-default 75
speaker-test -c 2 -t wav
# If no sound, try the next one
wpctl set-default 73
speaker-test -c 2 -t wav
# Continue with 72, 71, etc.
Verify Firmware is Installed
# Ensure SOF firmware is installed
sudo dnf install sof-firmware alsa-firmware
# Check if firmware loaded correctly
sudo dmesg | grep -i sof
Technical Details
Why This Happens:
- Fedora can have both PulseAudio and PipeWire packages installed
- They compete for audio device control
- This prevents proper initialization of the audio card profiles
- The card gets stuck in “off” profile state
The Fix:
- Remove PulseAudio entirely
- Use
pipewire-pulseaudio which provides PulseAudio compatibility layer
- This allows proper profile management through PipeWire/WirePlumber
System Information
- Distribution: Fedora 43
- Audio System: PipeWire 1.4.9 + WirePlumber
- Hardware: Intel Tiger Lake-LP Smart Sound Technology Audio Controller
- Codec: Realtek ALC3204
- Driver: snd_soc_skl_hda_dsp (SOF)
Credits
This solution consolidates fixes for a common issue affecting Intel SOF-based audio controllers in Fedora when PulseAudio and PipeWire coexist on the system.