diff --git a/hosts/acer.nix b/hosts/acer.nix index 36d0e3e..392db03 100644 --- a/hosts/acer.nix +++ b/hosts/acer.nix @@ -109,6 +109,9 @@ rec { ]; boot.kernelModules = [ "acer-wmi-ext" ]; + # Breaks sleep, not enabling for now + # lumpiasty.acerUndervolt = true; + boot.initrd.kernelModules = [ "amdgpu" "thunderbolt" ]; # This value determines the NixOS release from which the default diff --git a/modules/default.nix b/modules/default.nix index 36584c4..a38aec9 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -5,6 +5,7 @@ hardware/intel-cpu.nix hardware/amd-cpu.nix hardware/no-mitigations.nix + hardware/acer-undervolt.nix system/roles.nix system/nixpkgs.nix diff --git a/modules/hardware/acer-undervolt.nix b/modules/hardware/acer-undervolt.nix new file mode 100644 index 0000000..52d7bd0 --- /dev/null +++ b/modules/hardware/acer-undervolt.nix @@ -0,0 +1,42 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + options.lumpiasty.acerUndervolt = lib.mkEnableOption "Enable Acer undervolt module"; + + config = lib.mkIf config.lumpiasty.acerUndervolt ( + let + # Use forked version of ryzen_smu + # https://github.com/FlyGoat/RyzenAdj/issues/350#issuecomment-2971428510 + ryzen-smu = config.boot.kernelPackages.ryzen-smu.overrideAttrs (oldAttrs: { + src = pkgs.fetchFromGitHub { + owner = "amkillam"; + repo = "ryzen_smu"; + rev = "172c316f53ac8f066afd7cb9e1da517084273368"; + sha256 = "sha256-U2UMWY7XgLXOpNgl2OsFBRvZSC4/qLa9rzJxFOpZ830="; + }; + }); + ryzenadj = pkgs.ryzenadj.overrideAttrs (oldAttrs: { + src = pkgs.fetchFromGitHub { + owner = "FlyGoat"; + repo = "RyzenAdj"; + rev = "7aeb2f4869ee52ac161ee4cb4871e29113487885"; + sha256 = "sha256-KE2dbGv4V3+ibyxJ/DHNnBOGzjAcZbGrC3cVGNDsTTQ="; + }; + }); + in { + # Undervolting + boot.kernelModules = [ "ryzen-smu" ]; + + boot.extraModulePackages = [ + ryzen-smu + ]; + + environment.systemPackages = [ + ryzenadj + ryzen-smu + ]; + + programs.corectrl.enable = true; + hardware.amdgpu.overdrive.enable = true; + }); +} \ No newline at end of file