From 5cb55e98052ca43b1778162cdff8cf1868fb7d46 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Mon, 12 Feb 2024 19:12:47 +0100 Subject: [PATCH 1/3] flake: add overlays and minimal devShell inspired by https://cyberchaos.dev/leona/nixfiles/-/blob/1cbeaa156badeec1a890abdce6b008b564dedb0a/profiles/base/default.nix --- common/packages.nix | 4 +++- flake.nix | 20 +++++++++++++++++--- packages/default.nix | 2 ++ 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 packages/default.nix diff --git a/common/packages.nix b/common/packages.nix index 0a048cc..d507b42 100644 --- a/common/packages.nix +++ b/common/packages.nix @@ -1,6 +1,8 @@ -{ pkgs, config, ... }: +{ lib, pkgs, config, ... }: { + # take overlays from flake + nixpkgs.overlays = lib.attrValues config.inputInjection.flake-inputs.self.overlays; # List packages installed in system profile. environment.systemPackages = with pkgs; [ wget diff --git a/flake.nix b/flake.nix index c19ddea..bcfb9b6 100644 --- a/flake.nix +++ b/flake.nix @@ -26,10 +26,10 @@ }; outputs = - { self, nixpkgs, nur, lanzaboote, flake-utils, home-manager, ... }@inputs: + { self, nixpkgs, nur, lanzaboote, utils, home-manager, ... }@inputs: let # FIXME: allow different systems - systems = flake-utils.lib.system; + systems = utils.lib.system; # necessary to make the top-level inputs available to system configuration # inspired by https://jade.fyi/blog/flakes-arent-real/ inputInjection = {pkgs, lib, ...}: { @@ -74,10 +74,24 @@ }; in { + overlays.default = import ./packages; nixosConfigurations = { thinknix = mkSystem systems.x86_64-linux [ ./hosts/thinknix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t440s lanzaboote.nixosModules.lanzaboote ]; framenix = mkSystem systems.x86_64-linux [ ./hosts/framenix inputs.nixos-hardware.nixosModules.framework-13-7040-amd lanzaboote.nixosModules.lanzaboote ]; }; homeConfigurations.spiollinux = mkHomeManager "spiollinux" "spiollinux" systems.x86_64-linux; - }; + } // utils.lib.eachDefaultSystem(system: + let + nixpkgs = import inputs.nixpkgs { + inherit system; + overlays = nixpkgs.lib.attrValues self.overlays; + }; + pkgs = inputs.nixpkgs.legacyPackages.${system}; + in { + devShells.default = pkgs.mkShell { + buildInputs = []; + }; + # expose nixpkgs with overlay; TODO: figure out role of config + #legacyPackages = nixpkgs; + }); } diff --git a/packages/default.nix b/packages/default.nix new file mode 100644 index 0000000..45a4a07 --- /dev/null +++ b/packages/default.nix @@ -0,0 +1,2 @@ +final: prev: { +} From a23072866f05ce0c6de8749f4cfa42b7cff2b5e9 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Mon, 12 Feb 2024 19:32:19 +0100 Subject: [PATCH 2/3] hosts/framenix: reduce power consumption with proper PPD CPU + ABM - patch PPD to properly set the powersave level for the spu as well - enable adaptive backlight management at lowest level inspired by https://cyberchaos.dev/leona/nixfiles/-/blob/1cbeaa156badeec1a890abdce6b008b564dedb0a/packages/default.nix --- hosts/framenix/default.nix | 9 +++++++-- packages/default.nix | 10 ++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/hosts/framenix/default.nix b/hosts/framenix/default.nix index f2282de..6c2be01 100644 --- a/hosts/framenix/default.nix +++ b/hosts/framenix/default.nix @@ -38,8 +38,13 @@ in } ]; - # temporary workaround for white flickering graphics artefacts - boot.kernelParams = [ "amdgpu.sg_display=0" ]; + boot.kernelParams = [ + # temporary workaround for white flickering graphics artefacts + "amdgpu.sg_display=0" + # powersave + "amd_pstate=active" + "amdgpu.abmlevel=1" # adaptive backlight management + ]; boot.loader = { systemd-boot.enable = true; diff --git a/packages/default.nix b/packages/default.nix index 45a4a07..557002f 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,2 +1,12 @@ final: prev: { + power-profiles-daemon = prev.power-profiles-daemon.overrideAttrs (old: { + patches = [ + # patch for AMD pstate CPUs + (final.fetchpatch { + url = "https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/merge_requests/127.patch"; + sha256 = "sha256-CneqixlpZx9iZ0PM5MFIutsvnqKrLlM7FHOHUA/MK6g="; + }) + ]; + }); + } From 1dadc5c66fe4455e810f1aa2ecbbc01519101b67 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Mon, 12 Feb 2024 19:32:35 +0100 Subject: [PATCH 3/3] [flake lock update] --- flake.lock | 48 ++++++++---------------------------------------- 1 file changed, 8 insertions(+), 40 deletions(-) diff --git a/flake.lock b/flake.lock index 0887fc4..d53cfed 100644 --- a/flake.lock +++ b/flake.lock @@ -74,22 +74,6 @@ "inputs": { "systems": "systems" }, - "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", - "path": "/nix/store/pgid9c9xfcrbqx2giry0an0bi0df7s5c-source", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", - "type": "path" - }, - "original": { - "id": "flake-utils", - "type": "indirect" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, "locked": { "lastModified": 1681202837, "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", @@ -152,7 +136,7 @@ "crane": "crane", "flake-compat": "flake-compat", "flake-parts": "flake-parts", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": "nixpkgs", "pre-commit-hooks-nix": "pre-commit-hooks-nix", "rust-overlay": "rust-overlay" @@ -222,11 +206,11 @@ }, "nixos-unstable": { "locked": { - "lastModified": 1707092692, - "narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=", + "lastModified": 1707546158, + "narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "faf912b086576fd1a15fca610166c98d47bc667e", + "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0", "type": "github" }, "original": { @@ -270,11 +254,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1707238373, - "narHash": "sha256-WKxT0yLzWbFZwYi92lI0yWJpYtRaFSWHGX8QXzejapw=", + "lastModified": 1707650010, + "narHash": "sha256-dOhphIA4MGrH4ElNCy/OlwmN24MsnEqFjRR6+RY7jZw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fb0c047e30b69696acc42e669d02452ca1b55755", + "rev": "809cca784b9f72a5ad4b991e0e7bcf8890f9c3a6", "type": "github" }, "original": { @@ -332,7 +316,6 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", "home-manager": "home-manager", "lanzaboote": "lanzaboote", "logseq-fix-nixpkgs": "logseq-fix-nixpkgs", @@ -399,24 +382,9 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "utils": { "inputs": { - "systems": "systems_3" + "systems": "systems_2" }, "locked": { "lastModified": 1705309234,