summary refs log tree commit diff
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-11-09 17:24:08 +0300
committerNikolay Amiantov <ab@fmap.me>2015-11-09 17:29:59 +0300
commit23845d7084583a87ca30bb937d4c44b3c203b3af (patch)
tree264f6bc66324725599cc44f4ef6186763dfa9ccc
parent265718c9854957a5f724416429a4a208e33f7726 (diff)
downloadnixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar.gz
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar.bz2
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar.lz
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar.xz
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.tar.zst
nixlib-23845d7084583a87ca30bb937d4c44b3c203b3af.zip
tlp: add x86_energy_perf_policy, refactor
-rw-r--r--nixos/modules/services/hardware/tlp.nix11
-rw-r--r--pkgs/tools/misc/tlp/default.nix33
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 25 insertions, 21 deletions
diff --git a/nixos/modules/services/hardware/tlp.nix b/nixos/modules/services/hardware/tlp.nix
index 9bd246bfb637..23b6edcefd1a 100644
--- a/nixos/modules/services/hardware/tlp.nix
+++ b/nixos/modules/services/hardware/tlp.nix
@@ -6,7 +6,12 @@ let
 
 cfg = config.services.tlp;
 
-tlp = pkgs.tlp.override { kmod = config.system.sbin.modprobe; };
+enableRDW = config.networking.networkmanager.enable;
+
+tlp = pkgs.tlp.override {
+  inherit enableRDW;
+  kmod = config.system.sbin.modprobe;
+};
 
 # XXX: We can't use writeTextFile + readFile here because it triggers
 # TLP build to get the .drv (even on --dry-run).
@@ -90,13 +95,15 @@ in
     environment.etc = [{ source = confFile;
                          target = "default/tlp";
                        }
-                      ] ++ optional tlp.enableRDW {
+                      ] ++ optional enableRDW {
                         source = "${tlp}/etc/NetworkManager/dispatcher.d/99tlp-rdw-nm";
                         target = "NetworkManager/dispatcher.d/99tlp-rdw-nm";
                       };
 
     environment.systemPackages = [ tlp ];
 
+    boot.kernelModules = [ "msr" ];
+
   };
 
 }
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
index 5210a07d7ffa..52d79a9bd5d2 100644
--- a/pkgs/tools/misc/tlp/default.nix
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -1,11 +1,10 @@
-{ stdenv, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils, kmod
-, pciutils, smartmontools
-, enableRDW ? true, networkmanager }:
+{ stdenv, lib, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils
+, kmod, pciutils, smartmontools, x86_energy_perf_policy
+, enableRDW ? false, networkmanager
+}:
 
 let version = "0.8";
 in stdenv.mkDerivation {
-  inherit enableRDW;
-
   name = "tlp-${version}";
 
   src = fetchFromGitHub {
@@ -27,10 +26,11 @@ in stdenv.mkDerivation {
 
   buildInputs = [ perl ];
 
-  paths = with stdenv.lib;
-          concatMapStringsSep ":" (x: "${x}/bin")
-          ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools ]
-           ++ optional enableRDW networkmanager
+  paths = lib.makeSearchPath "bin"
+          ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools
+             x86_energy_perf_policy
+           ]
+           ++ lib.optional enableRDW networkmanager
           );
 
   installTargets = [ "install-tlp" ] ++ stdenv.lib.optional enableRDW "install-rdw";
@@ -41,13 +41,6 @@ in stdenv.mkDerivation {
       wrapProgram "$i" \
         --prefix PATH : "$paths"
     done
-    if [ "$enableRDW" = "1" ]; then
-      for i in $out/etc/NetworkManager/dispatcher.d/*; do
-        sed -i "s,/usr/lib/,$out/lib/,g" "$i"
-        wrapProgram "$i" \
-          --prefix PATH : "$paths"
-      done
-    fi
 
     for i in $out/lib/udev/rules.d/*; do
       sed -i "s,RUN+=\",\\0$out,g; s,/usr/sbin,/bin,g" "$i"
@@ -56,10 +49,14 @@ in stdenv.mkDerivation {
     for i in man/*; do
       install -D $i $out/share/man/man''${i##*.}/$(basename $i)
     done
+  '' + lib.optionalString enableRDW ''
+    for i in $out/etc/NetworkManager/dispatcher.d/*; do
+      sed -i "s,/usr/lib/,$out/lib/,g" "$i"
+      wrapProgram "$i" \
+        --prefix PATH : "$paths"
+    done
   '';
 
-  passthru = { inherit enableRDW; };
-
   meta = with stdenv.lib; {
     description = "Advanced Power Management for Linux";
     homepage = "http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2ec4ba03ceed..a91d3da88b89 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13103,7 +13103,7 @@ let
   tla = callPackage ../applications/version-management/arch { };
 
   tlp = callPackage ../tools/misc/tlp {
-    enableRDW = config.networking.networkmanager.enable or false;
+    inherit (linuxPackages) x86_energy_perf_policy;
   };
 
   todo-txt-cli = callPackage ../applications/office/todo.txt-cli { };