From d9f52b3aedda8c28e29ad360d90919bd1e4b71b5 Mon Sep 17 00:00:00 2001 From: CommunicationAnimale Date: Sat, 19 May 2018 13:21:33 +0200 Subject: nixos/thinkfan: use non-deprecated keywords in config file. --- nixos/modules/services/hardware/thinkfan.nix | 53 ++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 7 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/services/hardware/thinkfan.nix b/nixos/modules/services/hardware/thinkfan.nix index 5a898631e0903..ef932440dd9c4 100644 --- a/nixos/modules/services/hardware/thinkfan.nix +++ b/nixos/modules/services/hardware/thinkfan.nix @@ -28,11 +28,15 @@ let # temperatures are read from the file. # # For example: - # sensor /proc/acpi/ibm/thermal (0, 0, 10) + # tp_thermal /proc/acpi/ibm/thermal (0, 0, 10) # will add a fixed value of 10 °C the 3rd value read from that file. Check out # http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may # want to add to certain temperatures. + + ${cfg.fan} + ${cfg.sensors} + # Syntax: # (LEVEL, LOW, HIGH) # LEVEL is the fan level to use (0-7 with thinkpad_acpi) @@ -41,8 +45,6 @@ let # All numbers are integers. # - sensor ${cfg.sensor} (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) - ${cfg.levels} ''; @@ -59,10 +61,42 @@ in { ''; }; - sensor = mkOption { - default = "/proc/acpi/ibm/thermal"; + sensors = mkOption { + default = '' + tp_thermal /proc/acpi/ibm/thermal (0,0,10) + ''; + description ='' + thinkfan can read temperatures from three possible sources: + + /proc/acpi/ibm/thermal + Which is provided by the thinkpad_acpi kernel + module (keyword tp_thermal) + + /sys/class/hwmon/*/temp*_input + Which may be provided by any hwmon drivers (keyword + hwmon) + + S.M.A.R.T. (since 0.9 and requires the USE_ATASMART compilation flag) + Which reads the temperature directly from the hard + disk using libatasmart (keyword atasmart) + Multiple sensors may be added, in which case they will be + numbered in their order of appearance. + ''; + }; + + fan = mkOption { + default = "tp_fan /proc/acpi/ibm/fan"; description ='' - Sensor used by thinkfan + Specifies the fan we want to use. + On anything other than a Thinkpad you'll probably + use some PWM control file in /sys/class/hwmon. + Remember that fan levels range from 0 to 255 and that + they're just a number, not including the word "level" + as seen below. + A sysfs fan would be specified like this: + pwm_fan /sys/class/hwmon/hwmon2/device/pwm1 + + Remember you can only have one fan. ''; }; @@ -77,7 +111,12 @@ in { (127, 80, 32767) ''; description ='' - Sensor used by thinkfan + Syntax: + (LEVEL, LOW, HIGH) + LEVEL is the fan level to use (0-7 with thinkpad_acpi) + LOW is the temperature at which to step down to the previous level + HIGH is the temperature at which to step up to the next level + All numbers are integers. ''; }; -- cgit 1.4.1 From 92c82e0933a0b3caa73226555c5c8d6d2f516538 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Sun, 15 Jul 2018 23:28:14 +0200 Subject: nixos/thinkfan: add types & fix formatting --- nixos/modules/services/hardware/thinkfan.nix | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/services/hardware/thinkfan.nix b/nixos/modules/services/hardware/thinkfan.nix index ef932440dd9c4..d17121ca1c5bf 100644 --- a/nixos/modules/services/hardware/thinkfan.nix +++ b/nixos/modules/services/hardware/thinkfan.nix @@ -32,7 +32,6 @@ let # will add a fixed value of 10 °C the 3rd value read from that file. Check out # http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may # want to add to certain temperatures. - ${cfg.fan} ${cfg.sensors} @@ -55,6 +54,7 @@ in { services.thinkfan = { enable = mkOption { + type = types.bool; default = false; description = '' Whether to enable thinkfan, fan controller for IBM/Lenovo ThinkPads. @@ -62,6 +62,7 @@ in { }; sensors = mkOption { + type = types.lines; default = '' tp_thermal /proc/acpi/ibm/thermal (0,0,10) ''; @@ -79,28 +80,26 @@ in { S.M.A.R.T. (since 0.9 and requires the USE_ATASMART compilation flag) Which reads the temperature directly from the hard disk using libatasmart (keyword atasmart) + Multiple sensors may be added, in which case they will be numbered in their order of appearance. ''; }; fan = mkOption { + type = types.str; default = "tp_fan /proc/acpi/ibm/fan"; description ='' Specifies the fan we want to use. On anything other than a Thinkpad you'll probably use some PWM control file in /sys/class/hwmon. - Remember that fan levels range from 0 to 255 and that - they're just a number, not including the word "level" - as seen below. A sysfs fan would be specified like this: pwm_fan /sys/class/hwmon/hwmon2/device/pwm1 - - Remember you can only have one fan. ''; }; levels = mkOption { + type = types.lines; default = '' (0, 0, 55) (1, 48, 60) @@ -110,13 +109,12 @@ in { (7, 60, 85) (127, 80, 32767) ''; - description ='' - Syntax: - (LEVEL, LOW, HIGH) - LEVEL is the fan level to use (0-7 with thinkpad_acpi) - LOW is the temperature at which to step down to the previous level - HIGH is the temperature at which to step up to the next level - All numbers are integers. + description = '' + (LEVEL, LOW, HIGH) + LEVEL is the fan level to use (0-7 with thinkpad_acpi). + LOW is the temperature at which to step down to the previous level. + HIGH is the temperature at which to step up to the next level. + All numbers are integers. ''; }; -- cgit 1.4.1