|
|
|
@ -28,11 +28,14 @@ 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 +44,6 @@ let |
|
|
|
|
# All numbers are integers. |
|
|
|
|
# |
|
|
|
|
|
|
|
|
|
sensor ${cfg.sensor} (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) |
|
|
|
|
|
|
|
|
|
${cfg.levels} |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
@ -53,20 +54,52 @@ in { |
|
|
|
|
services.thinkfan = { |
|
|
|
|
|
|
|
|
|
enable = mkOption { |
|
|
|
|
type = types.bool; |
|
|
|
|
default = false; |
|
|
|
|
description = '' |
|
|
|
|
Whether to enable thinkfan, fan controller for IBM/Lenovo ThinkPads. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
sensor = mkOption { |
|
|
|
|
default = "/proc/acpi/ibm/thermal"; |
|
|
|
|
sensors = mkOption { |
|
|
|
|
type = types.lines; |
|
|
|
|
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 { |
|
|
|
|
type = types.str; |
|
|
|
|
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. |
|
|
|
|
A sysfs fan would be specified like this: |
|
|
|
|
pwm_fan /sys/class/hwmon/hwmon2/device/pwm1 |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
levels = mkOption { |
|
|
|
|
type = types.lines; |
|
|
|
|
default = '' |
|
|
|
|
(0, 0, 55) |
|
|
|
|
(1, 48, 60) |
|
|
|
@ -76,8 +109,12 @@ in { |
|
|
|
|
(7, 60, 85) |
|
|
|
|
(127, 80, 32767) |
|
|
|
|
''; |
|
|
|
|
description ='' |
|
|
|
|
Sensor used by thinkfan |
|
|
|
|
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. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|