From 1c83eb07080802dc18b39dda8f6ca09e8faf3f78 Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Wed, 5 Oct 2022 09:02:25 +0200 Subject: [PATCH] [General+Boot] Add more options options to minimal config. Use mainline kvdo. Add more options to nouveau kernel module. --- filesystems.nix | 2 +- hardware/nvidia/opensource.nix | 9 ++++++++ hardware/nvidia/proprietary.nix | 1 + packages.nix | 38 +++++++++++++++++++-------------- services.nix | 13 +++++------ 5 files changed, 40 insertions(+), 23 deletions(-) diff --git a/filesystems.nix b/filesystems.nix index 0c197f2..d812de5 100644 --- a/filesystems.nix +++ b/filesystems.nix @@ -59,12 +59,12 @@ in services.lvm = mkIf cfg.lvm { boot.thin.enable = true; dmeventd.enable = true; + boot.vdo.enable = true; }; boot.initrd.kernelModules = ifEnable cfg.lvm [ "dm-cache" "dm-cache-smq" "dm-cache-mq" "dm-cache-cleaner" ]; boot.kernelModules = ifEnable cfg.lvm [ "dm-cache" "dm-cache-smq" "dm-persistent-data" "dm-bio-prison" "dm-clone" "dm-crypt" "dm-writecache" "dm-mirror" "dm-snapshot" "kvdo" ]; - aviallon.boot.kvdo.enable = mkDefault cfg.lvm; aviallon.boot.cmdline = { resume = mkIf (! isNull resumeDeviceLabel) (mkDefault "LABEL=${resumeDeviceLabel}"); diff --git a/hardware/nvidia/opensource.nix b/hardware/nvidia/opensource.nix index bb41fa7..faac202 100644 --- a/hardware/nvidia/opensource.nix +++ b/hardware/nvidia/opensource.nix @@ -5,5 +5,14 @@ let in { config = mkIf (cfg.enable && !cfg.useProprietary) { boot.initrd.kernelModules = [ "nouveau" ]; + + aviallon.boot.cmdline = { + "nouveau.perflvl_wr" = 7777; + "nouveau.pstate" = 1; + "nouveau.runpm" = 1; + "nouveau.modeset" = 1; + "nouveau.config" = "NvBoost=1"; + }; + }; } diff --git a/hardware/nvidia/proprietary.nix b/hardware/nvidia/proprietary.nix index bfc39b2..b42389d 100644 --- a/hardware/nvidia/proprietary.nix +++ b/hardware/nvidia/proprietary.nix @@ -19,6 +19,7 @@ in { powerManagement.enable = true; powerManagement.finegrained = mkIf config.hardware.nvidia.prime.offload.enable true; modesetting.enable = true; + nvidiaSettings = true; }; aviallon.boot.cmdline = mkIf cfg.saveAllVram { diff --git a/packages.nix b/packages.nix index 98840de..6ac7f8e 100644 --- a/packages.nix +++ b/packages.nix @@ -103,42 +103,48 @@ in config = mkIf cfg.enable { - programs.java.enable = true; + programs.java.enable = mkDefault (!generalCfg.minimal); nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) cfg.allowUnfreeList; - environment.systemPackages = with pkgs; with libsForQt5; [ + environment.systemPackages = with pkgs; with libsForQt5; [] + ++ [ vim wget nano - opensshOptimized - rsyncOptimized - htop - cachix - psmisc # killall, etc. - par2cmdline # .par2 archive verification - schedtool - python3 - veracrypt + openssh + psmisc + pciutils ripgrep fd + htop + cachix + usbutils + ] + ++ optionals (!generalCfg.minimal) [ + rsync + par2cmdline # .par2 archive verification + python3 + veracrypt parallel - pciutils coreutils-full nmap pv - usbutils xxHash + unzip + ] + ++ (optionals config.aviallon.developer.enable [ + schedtool clinfo binutils - unzip cpuset gptfdisk # gdisk - + gcc gnumake cmake - ]; + ]) + ; programs.ssh.package = pkgs.opensshOptimized; diff --git a/services.nix b/services.nix index 879f527..5ead1aa 100644 --- a/services.nix +++ b/services.nix @@ -71,7 +71,8 @@ in { defaultShared = mkDefault true; browsing = mkDefault true; listenAddresses = [ "0.0.0.0:631" ]; - drivers = with pkgs; [ + drivers = with pkgs; [] + ++ (optionals (!desktopCfg.minimal) [ hplipWithPlugin gutenprint splix @@ -92,13 +93,13 @@ in { cups-drv-rastertosag-gdi # cups-kyocera-ecosys-m552x-p502x canon-cups-ufr2 - ]; + ]); webInterface = mkDefault true; }; - services.system-config-printer.enable = mkIf desktopCfg.enable true; + services.system-config-printer.enable = mkIf (desktopCfg.enable && !desktopCfg.minimal) true; hardware.sane = mkIf desktopCfg.enable { - enable = true; + enable = !desktopCfg.minimal; netConf = "192.168.0.0/24"; extraBackends = with pkgs; [ hplipWithPlugin @@ -190,10 +191,10 @@ in { programs.ssh.startAgent = false; # SmartCards - services.pcscd.enable = true; + services.pcscd.enable = mkDefault (!desktopCfg.minimal); services.avahi = { - enable = true; # .lan/.local resolution + enable = !desktopCfg.minimal; # .lan/.local resolution nssmdns = true; # .lan/.local resolution openFirewall = true; reflector = true;