#linux #sound
This setup was done on an HP EliteBook 840 with Intel Tiger Lake hardware, running Ubuntu 24.04 LTS, but I used tips from Arch Wiki as well. So I presume most of it is transferable to other distributions.
Ubuntu ships with PipeWire and WirePlumber by default, which is a solid audio foundation—but getting microphone with noise suppression and sane device naming requires some manual tuning.
Enable Pro Audio Mode for the microphone to work
To be able to use the microphone, the audio card must run in pro-audio profile, which can be done with pactl. Now open alsamixer and set all relevant channels to 100%. Then test the mic.
When the mic starts working we need some noise suppression, in order to use it for calls.
Install RNNoise for PipeWire from here:
👉 https://github.com/werman/noise-suppression-for-voice
Once installed, we need to set the RNNoise source as your default microphone. For that, and other tweaks, I recommend to take the code below, put it in a script and run it on every reboot.
pactl set-card-profile alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic pro-audio
pactl set-default-sink alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-0
amixer -c 0 set Master 100%
pactl set-default-source rnnoise_source
WirePlumber Configuration
WirePlumber allows fine-grained control over audio devices using Lua scripts.
Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.
rule = {
matches = {
{
{ "device.name", "matches", "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic" },
},
},
apply_properties = {
["device.description"] = "Laptop Audio"
},
}
table.insert(alsa_monitor.rules, rule)
Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.
rule = {
matches = {
{ { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-3" } },
{ { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-4" } },
{ { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-5" } },
{ { "node.name", "equals", "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-31" } },
{ { "node.name", "equals", "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-0" } },
{ { "node.name", "equals", "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-6" } },
},
apply_properties = {
["node.disabled"] = true,
},
}
table.insert(alsa_monitor.rules, rule)
Faster audio source/sink switching in GNOME
For this install the GNOME extension:
Quick Settings Audio Panel
This makes switching audio sources and sinks fast and practical during daily work.
Enjoy!