|
4 months ago | |
---|---|---|
README.md | 4 months ago | |
fancontrol.sh | 1 year ago |
README.md
fanControlLinux
Скрипт, регулирующий скорость вращения вентиляторов на основе температуры процессора и жестких дисков.
Оценивает температуру 4х дисков, определяет самый горячий.
Работает на основе линейной функции, например при температуре 40 градусов нужны обороты 40%, а при температуре 45 градусов уже 65%, как понять какие обороты поставить в промежуточной точке 43 градуса?
Нужно по двум координатам графика просчитать коэффициенты Y=(kx+b) (K и B), Y в данном случае обороты, а X - температура, т.е., зная коэффициенты графика можно подставить любой X и посчитать Y.
Но график меняет своё ускорение, на малых температурах можно понизить обороты, но вот если слишком жарко на улице и нагрузка на систему большая, то температура может приближаться к критичной и в этом случае нужно сильнее прибавлять с каждым градусом.
Terramaster F4-423 - датчики
modprobe coretemp
modprobe drivetemp
modprobe it87 force_id=0x8620
Для вашего конкретного устройства добивайтесь, чтобы команда sensors
выводила все датчики, пример,
когда детектятся все жесткие диски, процессор и обороты вентилятора.
drivetemp-scsi-3-0
Adapter: SCSI adapter
temp1: +38.0°C (low = +0.0°C, high = +60.0°C)
(crit low = -40.0°C, crit = +70.0°C)
(lowest = +25.0°C, highest = +41.0°C)
drivetemp-scsi-1-0
Adapter: SCSI adapter
temp1: +41.0°C (low = +0.0°C, high = +60.0°C)
(crit low = -40.0°C, crit = +70.0°C)
(lowest = +26.0°C, highest = +43.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +43.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +38.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +38.0°C (high = +105.0°C, crit = +105.0°C)
Core 2: +38.0°C (high = +105.0°C, crit = +105.0°C)
Core 3: +38.0°C (high = +105.0°C, crit = +105.0°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.7°C
it8620-isa-0a30
Adapter: ISA adapter
in0: 1.88 V (min = +0.00 V, max = +3.06 V)
in1: 1.37 V (min = +0.00 V, max = +3.06 V)
in2: 2.23 V (min = +0.00 V, max = +3.06 V)
+5V: 5.59 V (min = +0.00 V, max = +6.12 V)
in4: 2.27 V (min = +0.00 V, max = +3.06 V)
in5: 2.21 V (min = +0.00 V, max = +3.06 V)
in6: 1.34 V (min = +0.00 V, max = +3.06 V)
3VSB: 5.06 V (min = +0.00 V, max = +6.12 V)
Vbat: 3.36 V
fan2: 0 RPM (min = 0 RPM)
fan3: 1875 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
temp1: +34.0°C (low = -128.0°C, high = +127.0°C) sensor = thermal diode
temp2: +35.0°C (low = -128.0°C, high = +127.0°C) sensor = thermal diode
temp3: +40.0°C (low = -128.0°C, high = +127.0°C)
temp4: +40.0°C
temp5: +40.0°C
temp6: +40.0°C
intrusion0: ALARM
drivetemp-scsi-2-0
Adapter: SCSI adapter
temp1: +41.0°C (low = +0.0°C, high = +60.0°C)
(crit low = -40.0°C, crit = +70.0°C)
(lowest = +26.0°C, highest = +43.0°C)
drivetemp-scsi-0-0
Adapter: SCSI adapter
temp1: +39.0°C (low = +0.0°C, high = +60.0°C)
(crit low = -40.0°C, crit = +70.0°C)
(lowest = +26.0°C, highest = +42.0°C)
nvme-pci-0300
Adapter: PCI adapter
Composite: +37.9°C (low = -273.1°C, high = +81.8°C)
(crit = +84.8°C)
Sensor 1: +37.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +34.9°C (low = -273.1°C, high = +65261.8°C)
Определение датчиков в sys/class/hwmon
for f in $(ls -1 /sys/class/hwmon/); do echo $f" - "$(cat /sys/class/hwmon/${f}/name); done
Данная команда выведет следующее
hwmon0 - acpitz
hwmon1 - nvme
hwmon2 - coretemp
hwmon3 - drivetemp
hwmon4 - drivetemp
hwmon5 - drivetemp
hwmon6 - drivetemp
hwmon7 - it8620
- hwmon2 - температура процессора
- hwmon7 - датчики чипсета, там и вентиляторы