<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>linux &amp;mdash; Kemal&#39;s Braindump</title>
    <link>https://write.moxnet.eu/tag:linux</link>
    <description>Notes on engineering, systems, and leadership in practice.</description>
    <pubDate>Sat, 23 May 2026 22:37:32 +0200</pubDate>
    <item>
      <title>Getting proper audio setup on Ubuntu 24.04</title>
      <link>https://write.moxnet.eu/getting-professional-grade-audio-working-on-ubuntu-24-04</link>
      <description>&lt;![CDATA[#linux #sound&#xA;&#xA;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.&#xA;&#xA;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.&#xA;&#xA;!--more--&#xA;&#xA;Enable Pro Audio Mode for the microphone to work&#xA;&#xA;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.&#xA;&#xA;When the mic starts working we need some noise suppression, in order to use it for calls.&#xA;Install RNNoise for PipeWire from here:&#xA;&#xA;👉 https://github.com/werman/noise-suppression-for-voice&#xA;&#xA;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.&#xA;&#xA;pactl set-card-profile alsacard.pci-0000001f.3-platform-sklhdadspgeneric pro-audio&#xA;pactl set-default-sink alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-0&#xA;amixer -c 0 set Master 100%&#xA;pactl set-default-source rnnoisesource&#xA;&#xA;WirePlumber Configuration&#xA;&#xA;WirePlumber allows fine-grained control over audio devices using Lua scripts.&#xA;&#xA;Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.&#xA;&#xA;rule = {&#xA;  matches = {&#xA;    {&#xA;      { &#34;device.name&#34;, &#34;matches&#34;, &#34;alsacard.pci-0000001f.3-platform-sklhdadspgeneric&#34; },&#xA;    },&#xA;  },&#xA;  applyproperties = {&#xA;    [&#34;device.description&#34;] = &#34;Laptop Audio&#34;&#xA;  },&#xA;}&#xA;&#xA;table.insert(alsamonitor.rules, rule)&#xA;&#xA;Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.&#xA;&#xA;rule = {&#xA;  matches = {&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-3&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-4&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-5&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsaoutput.pci-0000001f.3-platform-sklhdadspgeneric.pro-output-31&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsainput.pci-0000001f.3-platform-sklhdadspgeneric.pro-input-0&#34; } },&#xA;    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsainput.pci-0000001f.3-platform-sklhdadspgeneric.pro-input-6&#34; } },&#xA;  },&#xA;  applyproperties = {&#xA;    [&#34;node.disabled&#34;] = true,&#xA;  },&#xA;}&#xA;&#xA;table.insert(alsa_monitor.rules, rule)&#xA;&#xA;Faster audio source/sink switching in GNOME&#xA;&#xA;For this install the GNOME extension:&#xA;&#xA;Quick Settings Audio Panel&#xA;&#xA;This makes switching audio sources and sinks fast and practical during daily work.&#xA;&#xA;Enjoy!]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://write.moxnet.eu/tag:linux" class="hashtag"><span>#</span><span class="p-category">linux</span></a> <a href="https://write.moxnet.eu/tag:sound" class="hashtag"><span>#</span><span class="p-category">sound</span></a></p>

<p>This setup was done on an <strong>HP EliteBook 840</strong> with <strong>Intel Tiger Lake</strong> hardware, running <strong>Ubuntu 24.04 LTS</strong>, but I used tips from Arch Wiki as well. So I presume most of it is transferable to other distributions.</p>

<p>Ubuntu ships with PipeWire and WirePlumber by default, which is a solid audio foundation—but getting <strong>microphone with noise suppression</strong> and sane device naming requires some manual tuning.</p>



<h2 id="enable-pro-audio-mode-for-the-microphone-to-work" id="enable-pro-audio-mode-for-the-microphone-to-work">Enable Pro Audio Mode for the microphone to work</h2>

<p>To be able to use the microphone, the audio card must run in <strong>pro-audio</strong> profile, which can be done with <code>pactl</code>. Now open <code>alsamixer</code> and set <strong>all relevant channels to 100%</strong>. Then test the mic.</p>

<p>When the mic starts working we need some noise suppression, in order to use it for calls.
Install <strong>RNNoise for PipeWire</strong> from here:</p>

<p>👉 <a href="https://github.com/werman/noise-suppression-for-voice">https://github.com/werman/noise-suppression-for-voice</a></p>

<p>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.</p>

<pre><code class="language-sh">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
</code></pre>

<h2 id="wireplumber-configuration" id="wireplumber-configuration">WirePlumber Configuration</h2>

<p>WirePlumber allows fine-grained control over audio devices using Lua scripts.</p>

<p>Default ALSA device names are long and unreadable. This rule renames the main audio device to something human-friendly.</p>

<pre><code class="language-lua">rule = {
  matches = {
    {
      { &#34;device.name&#34;, &#34;matches&#34;, &#34;alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic&#34; },
    },
  },
  apply_properties = {
    [&#34;device.description&#34;] = &#34;Laptop Audio&#34;
  },
}

table.insert(alsa_monitor.rules, rule)
</code></pre>

<p>Pro-audio mode exposes many unused nodes. Disabling them keeps the device list clean and avoids accidental routing.</p>

<pre><code class="language-lua">rule = {
  matches = {
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-3&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-4&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-5&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-output-31&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-0&#34; } },
    { { &#34;node.name&#34;, &#34;equals&#34;, &#34;alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.pro-input-6&#34; } },
  },
  apply_properties = {
    [&#34;node.disabled&#34;] = true,
  },
}

table.insert(alsa_monitor.rules, rule)
</code></pre>

<h2 id="faster-audio-source-sink-switching-in-gnome" id="faster-audio-source-sink-switching-in-gnome">Faster audio source/sink switching in GNOME</h2>

<p>For this install the GNOME extension:</p>

<p><strong>Quick Settings Audio Panel</strong></p>

<p>This makes switching audio sources and sinks fast and practical during daily work.</p>

<p>Enjoy!</p>
]]></content:encoded>
      <guid>https://write.moxnet.eu/getting-professional-grade-audio-working-on-ubuntu-24-04</guid>
      <pubDate>Thu, 19 Feb 2026 09:48:58 +0100</pubDate>
    </item>
  </channel>
</rss>