Řízení otáček ventilátoru

Instalace OpenMediaVault

Při instalaci OMV na desku ASUS s chipsetem B250 ( Kaby Lake ) jsem narazil na problematiku se senzory otáček a teploty. Ventilátor chladiče procesoru měl nepříjemné otáčky a bylo je nutné snížit. Po instalaci
lm-sensors
a spuštění příkazu
sensors-detect
jsem obdržel tento výpis

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no):
Silicon Integrated Systems SIS5595...                        No
VIA VT82C686 Integrated Sensors...                           No
VIA VT8231 Integrated Sensors...                             No
AMD K8 thermal sensors...                                    No
AMD Family 10h thermal sensors...                            No
AMD Family 11h thermal sensors...                            No
AMD Family 12h and 14h thermal sensors...                    No
AMD Family 15h thermal sensors...                            No
AMD Family 15h power sensors...                              No
AMD Family 16h power sensors...                              No
Intel digital thermal sensor...                              Success!
 (driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                          No
VIA C7 thermal sensor...                                     No
VIA Nano thermal sensor...                                   No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...                No
Trying family `SMSC'...                                      No
Trying family `VIA/Winbond/Nuvoton/Fintek'...                Yes
Found unknown chip with ID 0xd121
 (logical device B has address 0x290, could be sensors)
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...                No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'...                No
Trying family `ITE'...                                       No

Po chvilce hledání na internetu jsem našel označení kernel modulu nct6775, který má mít podporu pro sensory na této desce. Upravíme soubor /etc/modules, aby se nám modul nahrál při startu systému
nano /etc/modules
a na konec souboru zadáme následující text

# Sensors
nct6775

Po uložení souboru přidáme tento modul do jádra příkazem
modprobe nct6775
Zadáním příkazu
sensors
dostaneme výpis, kde máme uvedeny všechny hodnoty

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +28.0°C (high = +80.0°C, crit = +100.0°C)

acpitz-virtual-0
Adapter: Virtual device
temp1: +27.8°C (crit = +119.0°C)
temp2: +29.8°C (crit = +119.0°C)

asus-isa-0000
Adapter: ISA adapter
cpu_fan: 0 RPM

nct6793-isa-0290
Adapter: ISA adapter
in0: +0.34 V (min = +0.00 V, max = +1.74 V)
in1: +1.01 V (min = +0.00 V, max = +0.00 V) ALARM
in2: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in3: +3.39 V (min = +0.00 V, max = +0.00 V) ALARM
in4: +1.03 V (min = +0.00 V, max = +0.00 V) ALARM
in5: +0.16 V (min = +0.00 V, max = +0.00 V) ALARM
in6: +0.90 V (min = +0.00 V, max = +0.00 V) ALARM
in7: +3.38 V (min = +0.00 V, max = +0.00 V) ALARM
in8: +3.18 V (min = +0.00 V, max = +0.00 V) ALARM
in9: +1.00 V (min = +0.00 V, max = +0.00 V) ALARM
in10: +0.15 V (min = +0.00 V, max = +0.00 V) ALARM
in11: +0.13 V (min = +0.00 V, max = +0.00 V) ALARM
in12: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
in13: +0.13 V (min = +0.00 V, max = +0.00 V) ALARM
in14: +0.14 V (min = +0.00 V, max = +0.00 V) ALARM
fan1: 827 RPM (min = 0 RPM)
fan2: 1200 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
fan6: 0 RPM
SYSTIN: +118.0°C (high = +98.0°C, hyst = +95.0°C) sensor = thermistor
CPUTIN: +27.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN0: +31.0°C sensor = thermistor
AUXTIN1: +112.0°C sensor = thermistor
AUXTIN2: +111.0°C sensor = thermistor
AUXTIN3: +110.0°C sensor = thermistor
PECI Agent 0: +29.0°C (high = +98.0°C, hyst = +95.0°C)
 (crit = +100.0°C)
PECI Agent 0 Calibration: +27.0°C
PCH_CHIP_CPU_MAX_TEMP: +0.0°C
PCH_CHIP_TEMP: +0.0°C
intrusion0: ALARM
intrusion1: ALARM
beep_enable: disabled

Z výpisu je zřejmé, že sensor je nct6793 a ventilátor procesoru je fan2, který má 1200 RPM. Nyní musíme zjistit, ve kterém adresáři máme nastavení pwm2_enabled pro fan2, viz info zde. To zjistíme zadáním
ls /sys/class/hwmon
kde si vypíšeme jednotlivé podadresáře, které obsahují jednotlivá nastavení (hwmon0, hwmon1, hwmon2 …). Nyní zjistíme, ve kterém adresáři máme potřebná nastavení opakovaným zadáním příkazu
cat /sys/class/hwmon/hwmon0/name
kdy měníme jednotlivé adresáře (hwmon0, hwmon1 …) až najdeme náš senzor (v mém případě nct6793). Po nalezení adresáře (v mém případě hwmon1) zadáme příkaz
echo 2 | tee /sys/class/hwmon/hwmon1/pwm2_enable
Tím nastavíme řízení otáček podle teploty, detaily zde.

Okamžitě bychom měli slyšet, že se nám otáčky ventilátoru změnily. To zjistíme zadáním příkazu
sensors
a kontrolou výpisu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *