Skip to main content

Command Palette

Search for a command to run...

How to Connect Wired Earphones to Your CPU on Linux

Published
2 min read
How to Connect Wired Earphones to Your CPU on Linux

Problem Summary

On Ubuntu (or other Linux distributions using PulseAudio), the sound output was missing.
Running pactl list short sinks only showed:

0 auto_null module-null-sink.c s16le 2ch 44100Hz IDLE

This means no real audio device was detected — only a dummy “null” sink.

System Information

lspci | grep -i audio 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)

So, the system had an Intel HD Audio Controller, which is supported by the snd_hda_intel kernel driver.

Issue

Even though the kernel module was loaded, the PulseAudio daemon failed to recognize it, leaving only a module-null-sink entry.
Hence, no sound was available through the headphone jack or monitor.

Step-by-Step Solution

Check available sinks

pactl list short sinks

Output:

0 auto_null module-null-sink.c s16le 2ch 44100Hz IDLE

Only the dummy sink was available.


Verify kernel sound driver

lsmod | grep snd_hda_intel

Output:

snd_hda_intel 61440 1 snd_intel_dspcfg 36864 1 snd_hda_intel snd_hda_codec 204800 3 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec_realtek snd_hda_core 139264 4 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek snd_pcm 192512 3 snd_hda_intel,snd_hda_codec,snd_hda_core snd 143360 12 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi

Driver modules were already loaded correctly.

Verify audio server

pactl info | grep "Server Name"

Output:

Server Name: pulseaudio

The system was using PulseAudio (not PipeWire).

Reset PulseAudio configuration

Stop audio services
systemctl --user stop pipewire pipewire-pulse wireplumber 2>/dev/null || true
pulseaudio -k 2>/dev/null || true

Remove old configuration files
rm -rf ~/.config/pulse
rm -rf ~/.config/pipewire

Restart the service
systemctl --user start pipewire pipewire-pulse wireplumber 2>/dev/null || pulseaudio --start

Then:

sleep 5
pactl list short sinks

Still showed only auto_null.

Manually load ALSA sink module

This command forces PulseAudio to recognize the hardware:

pactl load-module module-alsa-sink device=hw:0

Output:

23

Now check again:

pactl list short sinks
Result:

1 alsa_output.hw_0 module-alsa-sink.c s16le 2ch 44100Hz IDLE

🎉 The real audio device appeared successfully!

Final Steps

  1. Open Settings → Sound → Output

  2. Select: Headphones (Built-in Audio Analog Stereo)

  3. Plug your wired earphones (3.5 mm jack) into the green audio port of your CPU.
    You should now hear sound perfectly.

Notes

  • auto_null = dummy sink → no real device

  • alsa_output.hw_0 = detected hardware output (real sound device)

  • The Intel snd_hda_intel driver was loaded, but PulseAudio needed a manual module load

  • Works persistently; however, you can make it auto-load by adding this to PulseAudio’s default modules file:

    Add this line near the end:
    sudo nano /etc/pulse/default.pa

    Add this line near the end:
    load-module module-alsa-sink device=hw:0

    Then restart PulseAudio:
    pulseaudio -k pulseaudio --start