2024. március 28., csütörtök

Gyorskeresés

Hőmérők, kijelzők, pörgettyűk Linuxon

Írta: | Kulcsszavak: linux . lm-sensor . applet . cpu . fan . speed

[ ÚJ BEJEGYZÉS ]

Frissítve: 2008. 04.03

Felmerült az igény egy csendesebb gépre. Egy ideje foglalkoztat a kérdés, hogyan lehet megoldani, hogy a cpu ventilátor a processzor hőmérsékletéhez alkalmazkodva dinamikusan állítsa a sebességét.

Ebben a bejegyzésben ezt a kérdés igyekszem körüljárni, remélve, hogy hasznos lesz az utókor számára.

2008. Március 7.
Rendszer:
Az alaplap, amivel dolgozok egy Abit KN8-ultra. Ebben van egy AMD Athlon 64 3500+ Processzor Venice magos.
Íme:

[oleg@localhost ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3500+
stepping : 2
cpu MHz : 1000.000
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm ts fid vid ttp tm stc
bogomips : 2009.90
clflush size : 64

[oleg@localhost ~]$

Az Amd C'n'Q linuxos változata automatikusan dolgozik már évek és Fedóra kiadások óta a powernow-k8 személyében. Tessék:

[oleg@localhost ~]$ dmesg | grep power
powernow-k8: Found 1 AMD Athlon(tm) 64 Processor 3500+ processors (1 cpu cores) (version 2.20.00)
powernow-k8: 0 : fid 0xe (2200 MHz), vid 0x6
powernow-k8: 1 : fid 0xc (2000 MHz), vid 0x8
powernow-k8: 2 : fid 0xa (1800 MHz), vid 0xa
powernow-k8: 3 : fid 0x2 (1000 MHz), vid 0x12
[oleg@localhost ~]$

Ez a része OK a dolognak. Most kellene egy kijelző, ami megmondja hány fokosak az eszközök. Ehhez az lm_sensors és a GNOME Sensors Applet csomagokra volt szükségem. Jah acpi támogatás nem árt a dologhoz.

Most már van kijelző, de csak néhány értéket ír. Kis fórumozás után kiderült, hogy a

[root@localhost ~]# sensors-detect

Programot kell futtatni root joggal. Ez végignyálazza a kernel modulokat, és ha valamelyiket működőképesnek találja a rendszerrel, mindjárt be is veti. Jó windowsos reflexszel elég bólogatni a kérdéseire. (yes-yes-t tessék gyakorolni. :DDD )

A folyamat végén elmenti a beállításait a

/etc/sysconfig/lm_sensors

fájlba. Legalább is Fedorán. Más disztrókon máshova. De biztos, hogy a /etc könyvtárba lm_sensors néven.

sok szép érzékelő :C

A sensors-applet programmal beállíthatjuk, hogy mely értékeket jelezze, illetve, hogy milyen hőmérsékleten riasszon. Viszont a ventilátorok sebességét nem tudja szabályozni.

Bios:

Az alaplap biosában nézelődve találtam ezeket a beállítási lehetőségeket:

CPU FanEQ Speed Control 60% speed
Active temeperature 50 C

Az első értékkel lehet szabályozni, hogy milyen sebességgel pörögjön a ventilátor. Az alatta lévővel pedig azt, hogy milyen hőmérsékleten emelje ezt a sebességet a maximumra.

Ez nem az ami nekem kell, de egy dolgot bizonyít: az alaplap, és a ventilátor is alkalmas a dinamikus szabályozásra, mivel a fordulatszám növekedett ill. csökkent a beállítással és szemmel láthatóan változott a lapátok sebessége. Most már csak egy rendes hűtőventilátor kell és egy szoftveres megoldás Linux alá.

Megyek boldogítom a Léghűtés topik olvasóit. :DD

Folyt köv...

Ahogy ígértem, most a ventilátor fordulatszámának szabályozását fogjuk beállítani.

Fancontrol

Figyelmeztetés! Program beállítása közben a processzor ventilátor leáll. Valamint helytelen beállítás esetén végig állva maradhat! Ezért csak körültekintően fogjunk hozzá a beállításhoz! A túlmelegedés a processzor károsodását okozhatja!

Lehetőleg ne 40 fokos melegben, kernel forgatás közben végezzük ezt a műveletet.

A ventilátor forgási sebességét a fancontrol program szabályozza. Ez az lm_sensors csomag része, így beszerzésével nem lesz gont. A program a processzor hőmérsékletéhez igazodva állítja a ventilátor fordulatszámát. Ehhez a

/etc/fancontrol

fájlból veszi ki az értékeket. Ennek beállításában segít a pwmconfig program. Ez egy konzolos program. Kissé fapados, de legalább interaktív. A kérdéseit mindenképpen érdemes alaposan elolvasni és értelmezni.

Indítás után a program leteszteli a kernel modulokat, valamint a kontrollálható ventilátorokat és azok eszközfájljait.

Modulok:

Found the following devices:
hwmon0/device is k8temp
hwmon1/device is w83627hf

Kontrollálható ventilátorok:

Found the following PWM controls:
hwmon1/device/pwm1
hwmon1/device/pwm2

Fordulatszám értékek:

Found the following fan sensors:
hwmon1/device/fan1_input current speed: 1875 RPM
hwmon1/device/fan2_input current speed: 0 ... skipping!
hwmon1/device/fan3_input current speed: 0 ... skipping!

Ezeket az elérési útvonalakat fogja használni a konfig fájlban. Érdemes tehát ezeket megjegyezni, mert később szükség lehet rájuk.

Ezután leteszteli a fordulatszám értékeket:

Would you like to generate a detailed correlation (y)? y
PWM 255 FAN 1962
PWM 240 FAN 1917
PWM 225 FAN 1962
PWM 210 FAN 1917
PWM 195 FAN 1917
PWM 180 FAN 1962
PWM 165 FAN 1834
PWM 150 FAN 1654
PWM 135 FAN 1480
PWM 120 FAN 1360
PWM 105 FAN 1222
PWM 90 FAN 1054
PWM 75 FAN 835
PWM 60 FAN 634
PWM 45 FAN 0
Fan Stopped at PWM = 45

Ezek szerint 45-ös pwm értéken kapcsol ki a ventilátor. 255-ös értéken pedig eléri a maximális 1962 rpm-es fordulatszámot. Ezeket az értékeket is érdemes megőrizni. Hogy mi a pwm, arról fogalmam sincs. Ez valamilyen energia érték, ami beállítja a fordulatszámot. FIXME

Ha elkészült elmenti a beállítást, majd egy egyszerű menüt kapunk:

Select fan output to configure, or other action:
1) hwmon1/device/pwm2 3) Change INTERVAL 5) Save and quit
2) hwmon1/device/pwm1 4) Just quit 6) Show configuration
select (1-n): 1

Értelem szerűen válasszunk. A lényeg, hogy az 1 és 2 opció a szabályozható ventilátort jelenti. Ezeket tudjuk konfigurálni. Figyeljünk oda, hogy a megfelelőt válasszuk!

A pontos konfigurálást itt is elvégezhetjük, de a konfig fájlt kézzel is szerkeszthetjük. Mindkét esetben ugyan azokra a kérdésekre kell választ adnunk.:

(A saját értékeimet is mutatom, hogy könnyebb legyen kiigazodni. Az interaktív beállítás esetén természetesen pontos leírást ad a program, hogy mit állítunk éppen.)

Milyen időközönként ellenőrizze a program a hőmérsékletet és a fordulatszámot. Másodpercben.

INTERVAL=10

Mely eszköz hőmérsékleti adatait használja fel.

FCTEMPS=hwmon1/device/pwm1=hwmon0/device/temp1_input

Mely ventilátort állítsa az előzőnek megfelelően.

FCFANS= hwmon1/device/pwm1=hwmon1/device/fan1_input

Minimális hőmérséklet, amin a minimális pwm értékre állítja a ventilátort. Beállítástól függően le is állítja, ha kell.

MINTEMP=hwmon1/device/pwm1=30

A processzor megengedett maximális hőmérséklete, amin a ventilátort maximális sebességre állítja.

MAXTEMP=hwmon1/device/pwm1=60

Az a minimális érték, amin a ventilátor pörögni kezd. Erre jó a korábban elvégzett teszt.

MINSTART=hwmon1/device/pwm1=45

Az az érték, amin a ventilátor biztosan leáll.

MINSTOP=hwmon1/device/pwm1=40

Az a minimális sebesség, amire a minimális hőmérséklet alatt a ventilátort állítja. (Nálam itt leállítja.)

MINPWM=hwmon1/device/pwm1=40

Az a maximális sebesség, amire a maximális hőmérsékletet elérve a ventilátort állítja. (Érdemes a maximális 255-ös értékre állítani.)

MAXPWM=hwmon1/device/pwm1=255

Lényegében ennyi! Természetesen ezt bármely ventilátorral és hőmérsékleti értékkel beállíthatjuk, amit szabályozhatónak talált a program. Tapasztalatom szerint van még egy kellemes tulajdonsága a programnak, mégpedig az, hogy a fordulatszámot dinamikusan állítja a hőmérsékletnek megfelelően. Erről nem kell külön gondoskodnunk. Tehát 32 c fokon 700 rpm-en forgatja a lapátokat, de 45 c fokon már felmegy 1200-ra. :C

Ezután lehet tesztelni a fancontrol parancs kiadásával. Ezt érdemes terminálban indítani és valami probléma esetén Ctrl-C billentyű kombinációval megszakítani a futását. Ekkor a ventilátor visszakapcsol a maximális sebességre és lehet elölről kezdeni a beállítást hiba után kutatva. :DDD

Ha minden prímán működik és a beállítások megtarthatók hosszú távon, akkor már csak a program automatikus indítását kell beállítani. De ezt csak legközelebb.

Folyt. köv...

Hozzászólások

(#1) BaliJack


BaliJack
aktív tag

Köszönjük! :R :R :R

És gratula a cikkhez: lényegre törő, és teljesen követhető :C .

Egy apró észrevétel: a cikk elején lehetne egy összefoglaló a szükséges csomagokról :).

Szuperul működik az ezeréves sólymommal :DD.
Olyan csendes lett a gép kiszedve a helyéről, mint még soha.

Várom a folytatást! :)

(#2) tbs


tbs
addikt

PWM -> Pulse Width Modulation

Egy négyszögjel kitöltési tényezőjét változtatja. Egyenáramú motorok fordulatszámvezérlésére többnyire tök jó. Meg egy csomó minden másra. :DDD

Tök jó az írás..! :K

(#3) lapa


lapa
veterán

szép összefoglaló. jól értem, hogy a k8-at is csak 1000mhz-ig lehet downclockolni? vagy ez linux-függő?

(#4) Vladi


Vladi
nagyúr
LOGOUT blog

Nos köszönöm az érdeklődést. :)

BaliJack!

Ezeréves Sólyom? :F
Amúgy egyszerű:
- lm_sensors és cpuspeed kell csak. Abban minden benne van. Valamint egy desktop alkalmazás. Ez ízlés szerint lehet gkrellm, gdesklet, adesklet, conky, gnome-sensors alapú.

tbs!

Köszi a fixet. Nem állítom, hogy egészen értem, de azért köszi. :DDD

lapa!

Ez beállítás függő. A beállításait a

/etc/sysconfig/cpuspeed

fájlban tárolja. Én nem nyúltam hozzá, de ahogy nézem, lehet állítgatni kézzel. AMD guruk tudják, hogy mivel jár ez. (feszállítás stb.)
Egyszóval szerintem lehet állítgatni.

man cpuspeed

:D

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#5) BaliJack válasza Vladi (#4) üzenetére


BaliJack
aktív tag

Köszi a listát :).

Ezeréves Sólyom? :F
Az adataimnál szereplő gépemet méltattam :)

[ Szerkesztve ]

(#6) 04ahgy válasza lapa (#3) üzenetére


04ahgy
nagyúr

Nem!

K8-at 5-ös szorzóig lehet az automatikus szorzó szabályzással visszavenni! Ha tuningolsz, és 250MHz az external clock, akkor 5*250MHz = 1250MHz...
Ez K8 függő. :D
Egyes K8-ak még a 4-es szorzót is szeretik. További részletek valamelyik K8 topikban.

HGyu

7855.94MHz CPU-Z valid \ Pulchra tibi facies, oculorum acies, capillorum series; o quam clara species! Rosa rubicundior, lilio candidior, omnibus formosior; semper in te glorior!

(#7) 04ahgy


04ahgy
nagyúr

Vladi, remek cikket hoztál össze! :R (A címen meg fél percig röhögtem, annyira jól eltaláltad. :DDD )

Szerinted ez ugyanilyen jól működik laptop + Mandriva kombinációval is? Az a program ami nálad az órajelszabályzást végzi, szerintem az én Intel SpeedStepes mobil procimat is felismerte. Ez tud feszültséget is szabályozni? (A windowsos CNQ az tud.) Van conf fájlja? Mert menten megszerkesztem. :D

HGyu

[ Szerkesztve ]

7855.94MHz CPU-Z valid \ Pulchra tibi facies, oculorum acies, capillorum series; o quam clara species! Rosa rubicundior, lilio candidior, omnibus formosior; semper in te glorior!

(#8) 04ahgy


04ahgy
nagyúr

Te, Vladi!

Ejnye-bejnye! :((( Ez hogy-hogynem sikeredett címlapos írásra! Energaitakarékossággal (powernow) és csenddel foglalkozik. Ráadásul open-source! Kéretik gyorsan kitenni a címlapra, vagy kénytelen leszek szólni egy modinak. :D:D

HGyu

7855.94MHz CPU-Z valid \ Pulchra tibi facies, oculorum acies, capillorum series; o quam clara species! Rosa rubicundior, lilio candidior, omnibus formosior; semper in te glorior!

(#9) Vladi válasza 04ahgy (#8) üzenetére


Vladi
nagyúr
LOGOUT blog

Cpuspeed progi. Azt írják, hogy megy Intelekkel is (Intel Pentium 4M, the Intel Centrino, Mobile). Elvileg feszültséget és szorzót is állít. Erről is nézd a manualt.

man cpuspeed

Meg lehet próbálni. Az, hogy mandriva mindegy, mert a kernelben biztos benne vannak a szükséges modulok. Ha mégsem akkor be lehet forgatni. Az érzékelőknél ugyanez. Modul kell és lm_sensors.

Az írás még nincs egészen kész. Lehet kiegészítem akkor Intellel is. Amúgy meg nem gondoltam, hogy ilyen szépen meghízik. :D

Nem félünk! Nem félünk! Itthon vagyunk e földön. Nem félünk! Nem félünk! Ez nem maradhat börtön!

(#10) 04ahgy válasza Vladi (#9) üzenetére


04ahgy
nagyúr

Köszönöm, meg is nézem. Az lm_sensors már fenn is van. Felraktam a KDE frontendjét, a KSensor-t is. Milyen frontend már, ami nem teszi be magát a menübe? Terminálból kellett indítanom, de le is szedtem, mert a hülye min problémázott? Fájltársítás-hozzárendeléseken.
Ja, és neked köszönhetően tanultam meg a grep használatát igazándiból. :R

A cikk meg remek, csak így tovább!

A régi aláírásod viszont sokkal jobb volt, már-már összeforrt a neveddel. :DDD

HGyu

7855.94MHz CPU-Z valid \ Pulchra tibi facies, oculorum acies, capillorum series; o quam clara species! Rosa rubicundior, lilio candidior, omnibus formosior; semper in te glorior!

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.