From 930417968f537aeded1434acf88292c29e4fcecc Mon Sep 17 00:00:00 2001 From: unexplrd Date: Sat, 12 Jul 2025 15:13:43 +0300 Subject: [PATCH] hosts/eldrid/cb-audio-fix: update Signed-off-by: unexplrd --- hosts/eldrid/hardware/laptop/cb-audio-fix.nix | 78 ++++++++++++++----- 1 file changed, 59 insertions(+), 19 deletions(-) diff --git a/hosts/eldrid/hardware/laptop/cb-audio-fix.nix b/hosts/eldrid/hardware/laptop/cb-audio-fix.nix index 61a16a6..a42986d 100644 --- a/hosts/eldrid/hardware/laptop/cb-audio-fix.nix +++ b/hosts/eldrid/hardware/laptop/cb-audio-fix.nix @@ -1,20 +1,47 @@ {pkgs, ...}: let - cb-ucm-conf = pkgs.alsa-ucm-conf.overrideAttrs { - wttsrc = pkgs.fetchFromGitHub { - owner = "WeirdTreeThing"; - repo = "chromebook-ucm-conf"; - rev = "b6ce2a7"; - hash = "sha256-QRUKHd3RQmg1tnZU8KCW0AmDtfw/daOJ/H3XU5qWTCc="; + cb-ucm-conf = with pkgs; + alsa-ucm-conf.overrideAttrs { + wttsrc = fetchFromGitHub { + owner = "WeirdTreeThing"; + repo = "alsa-ucm-conf-cros"; + rev = "a4f0ed6cf59163fb571c33a81a6b40b6f53ed57d"; + hash = "sha256-H0BsRzHSEJ6XCZB/Rvb3w+uGCzr+kAvAwcHWqYEtp6w="; + }; + unpackPhase = '' + runHook preUnpack + tar xf "$src" + runHook postUnpack + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/share/alsa + cp -r alsa-ucm*/ucm2 $out/share/alsa + runHook postInstall + ''; }; - postInstall = '' - cp -R $wttsrc/common/* $out/share/alsa/ucm2/common - cp -R $wttsrc/codecs/* $out/share/alsa/ucm2/codecs - cp -R $wttsrc/platforms/* $out/share/alsa/ucm2/platforms - cp -R $wttsrc/sof-rt5682 $out/share/alsa/ucm2/conf.d - cp -R $wttsrc/sof-cs42l42 $out/share/alsa/ucm2/conf.d - ''; - }; in { + environment = { + systemPackages = [pkgs.sof-firmware]; + sessionVariables.ALSA_CONFIG_UCM2 = "${cb-ucm-conf}/share/alsa/ucm2"; + etc = { + "wireplumber/main.lua.d/51-increase-headroom.lua".text = '' + rule = { + matches = { + { + { "node.name", "matches", "alsa_output.*" }, + }, + }, + apply_properties = { + ["api.alsa.headroom"] = 4096, + }, + } + + table.insert(alsa_monitor.rules,rule) + ''; + }; + }; + system.replaceDependencies.replacements = [ { original = pkgs.alsa-ucm-conf; @@ -22,6 +49,10 @@ in { } ]; + boot.extraModprobeConfig = '' + options snd-intel-dspcfg dsp_driver=3 + ''; + services.pipewire.wireplumber.configPackages = [ (pkgs.writeTextDir "share/wireplumber/main.lua.d/51-increase-headroom.lua" '' rule = { @@ -37,10 +68,19 @@ in { table.insert(alsa_monitor.rules,rule) '') + (pkgs.writeTextDir "share/wireplumber/main.lua.d/51-avs-dmic.lua" '' + rule = { + matches = { + { + { "node.nick", "equals", "Internal Microphone" }, + }, + }, + apply_properties = { + ["audio.format"] = "S16LE", + }, + } + + table.insert(alsa_monitor.rules, rule) + '') ]; - boot = { - extraModprobeConfig = '' - options snd-intel-dspcfg dsp_driver=3 - ''; - }; }