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
Open Settings → Sound → Output
Select: Headphones (Built-in Audio Analog Stereo)
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 devicealsa_output.hw_0= detected hardware output (real sound device)The Intel
snd_hda_inteldriver was loaded, but PulseAudio needed a manual module loadWorks 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.paAdd this line near the end:
load-module module-alsa-sink device=hw:0Then restart PulseAudio:
pulseaudio -k pulseaudio --start