Sound failure in Ubuntu while devices appear detected usually stems from incorrect audio routing, muted channels, or PulseAudio/PipeWire service conflicts. Verify the active sink in pavucontrol, ensure no applications are holding exclusive control, and restart the audio daemon to resolve most silent output issues without requiring a system reinstall.
Verify Active Audio Sink and Output Device
The most common reason for silence despite hardware detection is that the operating system has routed audio to the wrong output device or a disconnected HDMI monitor. Modern Linux distributions use PulseAudio or PipeWire as the sound server, and these services may default to a dummy output if the primary card is busy or misconfigured. You must explicitly select the correct analog or digital output in the graphical interface before assuming a driver failure. Open your application menu and search for "Sound Settings." Navigate to the Output tab. Here you will see a list of available devices. Click on each device to test it. If you see an "Idle" status next to a device but no sound plays when testing, the system is not sending data to it. Often, users accidentally select an HDMI display that has no speakers attached. Select the device labeled with your motherboard chipset (e.g., Realtek, Conexant) or your USB headset. Ensure the volume slider for that specific device is not at zero and that the mute icon is not active. If the graphical settings do not resolve the issue, use the command line to inspect the current sink. Run the following command to list all sinks:pactl list sinks short
Look for the line starting with *. This asterisk indicates the currently active sink. If the active sink is not the one you intend to use, you can switch it manually using the index number provided in the first column. For example, to switch to sink index 1, run:
pactl set-default-sink 1
This immediate change often restores sound without needing a reboot. If the list is empty or only shows a "Dummy Output," the kernel modules for your sound card may not have loaded correctly, which requires deeper troubleshooting.
Check Application-Specific Volume Controls
Ubuntu’s default mixer sometimes hides individual application volumes behind the global system volume. An application might be playing audio, but its specific channel could be muted or lowered to zero within the sound server. The GNOME Control Center provides a basic overview, but it lacks granular control over per-application routing. To fix this, install and launchpavucontrol, known as the PulseAudio Volume Control tool.
Install the utility if it is not already present by running:
sudo apt install pavucontrol
Once open, go to the "Playback" tab. Play any audio source, such as a YouTube video or a music file. You should see the application listed here with a moving volume bar. If the bar is moving but you hear nothing, check the small speaker icon next to the application name. It may be set to "Mute." Additionally, verify the "Port" dropdown for that application. Sometimes an app defaults to a different output port than the system-wide setting. Change the port to match your desired speaker or headphone jack.
Switch to the "Output Devices" tab in pavucontrol. Ensure that the correct device is not marked as "Failed" or "Suspended." If a device is suspended, click on it and force it to resume. This tab also allows you to see exactly which stream is being sent to which physical port, helping you diagnose if the signal is getting lost between the software layer and the hardware driver.
Restart the Audio Server Services
Corrupted state files or hung processes within the audio daemon can cause persistent silence even after correcting settings. Restarting the service clears the memory cache and forces a re-initialization of the sound cards. In older Ubuntu versions using PulseAudio, you would kill the user-space process. In newer versions utilizing PipeWire, the approach differs slightly depending on the backend configuration. For PulseAudio, stop the service by running:pulseaudio -k
PulseAudio will automatically restart shortly after being killed. If you are using PipeWire, which is the default in Ubuntu 22.04 and later, you need to restart the wireplumber session manager and the pipewire service itself. Execute the following commands:
systemctl --user restart wireplumber
systemctl --user restart pipewire
systemctl --user restart pipewire-pulse
After restarting these services, wait a few seconds for the desktop environment to reconnect to the audio server. Test your audio again. This step resolves issues where the audio server holds onto a stale connection with a USB device that was plugged in during boot but is now inactive.
Investigate Kernel Module and Driver Issues
If none of the previous steps work, the problem likely lies at the kernel level. The Linux kernel uses specific drivers for sound hardware, typically ALSA (Advanced Linux Sound Architecture). Check if the relevant modules are loaded by listing them:lsmod | grep snd
You should see modules like snd_hda_intel for standard HD audio or snd_usb_audio for USB devices. If you see snd_soc_skl or similar, ensure the module is not blacklisted in /etc/modprobe.d/. If the modules are missing, you may need to reload them manually using modprobe. However, be cautious, as unloading critical audio modules can crash your session.
Check the system logs for errors related to sound initialization. Use the following command to filter journal entries for audio-related failures:
dmesg | grep -i snd
Look for messages indicating "codec init failed" or "cannot open device." These errors suggest a firmware mismatch or a bug in the current kernel version. In such cases, updating your system packages via sudo apt update && sudo apt upgrade may pull in a newer kernel with better hardware support. See our guide on Solving No Sound Issue in Ubuntu: A Tech Support Guide for more detailed driver-specific fixes.
Frequently Asked Questions
Why does my sound cut out randomly after a few minutes?
This is often caused by power-saving features turning off the audio codec to save energy. You can disable this by creating a udev rule or modifying the alsa-base configuration to prevent autosuspend on the USB or PCI audio device.How do I reset PulseAudio configuration files?
Delete the user-specific configuration directory located at~/.config/pulse/ and ~/.pulse/. When you restart PulseAudio, it will regenerate fresh configuration files with default settings, clearing any corrupted parameters.