You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
5.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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** - датчики чипсета, там и вентиляторы