fabokzs összeütött egy howtot, melynek segítségével lekérdezhetővé válik a CPU, System hőmerséklet linux alatt. Lássuk:
Hogy ezen információhoz hozzájussunk szükség van egy olyan alaplapra, ami tartalmaza megfelelő szenzorokat. Ezt megtudhatjuk a BIOS-ból, ha van olyan opció, hogy CPU health status és azon belül kiírja a hőmérsékletet akkor sirály. De az, hogy mindig kilépjünk a BIOS -ba nem éppen a leghatékonyabb módszer. Linux alatt a következő két dologra van szükség: i2c, és lm-sensors.
A kernelnek legalább 2.4.13-asnak kell lennie!!!
Aki 2.5 -ös kernellel rendelkezik annak nagyon ajánlott a lenti címre ellátogatni, mert másképpen kell eljárni, mint a 2.4 -es kernel szériánál!!!Az lm-sensors hivatalos oldala
A gépem:
Alaplap: Abit kg7-raid
Processzor: AMD athlon 1333Mhz
kernel: 2.4.19-rc1-ac3
Ezt az oldalt érdemes azért átnézni mielőtt bármit is tennénk. Mert ha nincs az oldalon az alaplapunk
chipsetje (BUS drivere) akkor nem nagyon valószínű, hogy menni fog a dolog. Ha nem tudod hirtelen, hogy milyen a chipset akkor nézd meg az alaplap dobozát, vagy a kézikönyvét. Ha nem találod akkor az lspci paranccsal megtudhatod.
Csak pár a támogatott chipsetek közül:
Acer Labs M1533, M1535, and M1543C
AMD 756, 766, and 768
Apple Hydra (used on some PPC machines)
DEC 21272/21274 (Tsunami/Typhoon - on Alpha boards)
Intel I801 ICH/ICH0/ICH2/ICH3 (used in Intel 810, 810E, 815E, 820, 840 chipsets)
Intel PIIX4 (used in many Intel chipsets)
Intel I810/I815 GMCH
Intel 82443MX (440MX)
NVidia nForce
ServerWorks OSB4, CSB5
SiS 5595
SMSC Victory66, 74M1xx
3Dfx Voodoo 3 and Banshee
VIA Technologies VT82C586B, VT82C596A/B, VT82C686A/B, VT8231, VT8233, és VT8233A.
stb.
Nálam:
/home/fabokzs $ lspci | grep SMBus | cut -f3 -d':'
VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
/home/fabokzs $
Hasonló van a listán, jó esélyem van, hogy fog menni.
(Ez az oldal segíthet, ha nem esetleg kesőbbiekben nem talalja meg a SMBus vezérlőt, vagy nem tudod milyen chipseted van.)
Fontos, hogy mind i2c -ból és lm-sensors -ból a verziószámnak meg kell egyezni, és érdemes mindkettőből a legújabb verziót feltenni (most a legújabb verzió a 2.6.4-as).
Feltehetjük csomagból:
apt-get install i2c-source lm-sensors-source
(/home/fabokzs $ apt-cache show i2c-source | grep ^Version
Version: 2.6.3-5
/home/fabokzs $)
Letölthetjük őket:
lm_sensors-2.6.4.tar.gz
i2c-2.6.4.tar.gz
(Itt a verzió már 2.6.4 !!!)
CVS
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs login
jelszó "anonymous"
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout lm_sensors
cvs -d :pserver:anon@cvs.lm-sensors.nu:/home/cvs checkout i2c
Én a második verziót választottam, és a /usr/src be tettem a két forrást, majd:
/usr/src # tar fxz lm_sensors-2.6.4.tar.gz
/usr/src # tar fxz i2c-2.6.4.tar.gz
/usr/src # ls
i2c-2.6.4 lm_sensors-2.6.4 NVIDIA_kernel-1.0-2880 patch-2.4.19-rc1
i2c-2.6.4.tar.gz lm_sensors-2.6.4.tar.gz patch-2.4.19-pre10 patch-2.4.19-rc1-ac3
linux NVIDIA_GLX-1.0-2880 patch-2.4.19-pre10-ac2
Mielőtt bármit is tennél győződj meg arról, hogy ezen bejegyzések szerepelnek-e a .config fájlban:
CONFIG_I2C_PROC=m
CONFIG_PROC_FS=y
Ha esetleg nem, akkor fordítsd újra a kernelt a fenti két opcióval.
Ahhoz, hogy be lehessen üzemelni a sensor-okhoz szükséges modulokat 3 mószer van:
Modulok lefordítása a "kernelen kívűl"
(én ezt a mószert használtam)
/usr/src # cd i2c-2.6.4/
/usr/src/i2c-2.6.4 # make clean all install
...
/usr/src/i2c-2.6.4 # cd ../lm_sensors-2.6.4/
/usr/src/lm_sensors-2.6.4 # make clean all install
A kernel patchelése:
(Ezt akkor érdemes választani, ha tudod pontosan milyen modulokra lesz szükség, vagy ha ha konkrét modulokat szeretnél a kernelbe belefordítani)
/usr/src # cd i2c-2.6.4/
/usr/src/i2c-2.6.4 # mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux
...
/usr/src/i2c-2.6.4 # cd ../lm_sensors-2.6.4/
/usr/src/lm_sensors-2.6.4 # mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux
Ha ez készen van, mehet a make menuconfig.
Ott a Character devices-ban lehet beállítani mindent.
A fenti két módszer keveréke
Részletesebben lásd az INSTALL fájlt a /usr/src/lm_sensors-2.6.4/ -ban, vagy a /usr/src/i2c-2.6.4/-ban.
Ha mindent jól csináltál, akkor a sensors és sensors-detect programokkal bővült az
arzenálod.
Ha kész vannak a modulok akkor meg kell keresni a megfelelő modulokat. Erre a legalkalmasabb:
/root # sensors-detect
Itt lehetőség szerint mindent "detektáltass fel", majd a végén kiirja, hogy mely modulokra lesz szükség ahhoz, hogy a sensors parancs megfelelően működjön.
Részlet az én sensors-detect végeredményemből:
WARNING! If you have some things built into your kernel, the below list will contain too many modules. Skip the appropriate ones! To load everything that is needed, add this to some /etc/rc* file:
#----cut here----
# I2C adapter drivers
modprobe i2c-isa
# I2C chip drivers
modprobe via686a
#----cut here----
To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:
#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----
Előfordulhat, hogy a sensors-detect nem talál semmit. Ekkor a chipseted nem támogatott ezen i2c illetve lm-sensors verziókkal, vagy csak nem találta meg.
Ilyenkor érdemes ezt az oldalt átolvasni.
Tehát nekem az i2c-isa, via686a modulokat kell betölteni, hogy le tudjam majd kérdezni az értékeket.
Először irjuk be a " alias char-major-89 i2c-dev " sort a /etc/modutils/aliases-ba:
/root # cat >> /etc/modutils/aliases
alias char-major-89 i2c-dev
/root #
(editorral is megcsinálhatjuk)
Majd:
/root # update-modules
/root #
Ezzel a sensors-detect által javasolt két müvelet közül a másodikkal meg is lennénk. Most gondoskodjunk arról, hogy indításnál a modulok betöltödjenek.
/root # cd /etc/init.d
/etc/init.d # cat > sensors
echo A sensors mukodesehez szukseges modulok betoltese
modprobe i2c-isa
modprobe via686a
echo betoltes befejezve
/etc/init.d # cd /etc/rcS.d
/etc/rcS.d # ln -s /etc/init.d/sensors S80Sensors
/etc/rcS.d #
A fenti műveletek elvégzése előtt se a /etc/init.d/sensors se a /etc/rcS.d/S80Sensors
NEM LÉTEZETT !!!!!!!!
És lássuk, hogy miért szenvedtünk eddig:
/home/fabokzs $ sensors
via686a-isa-6000
Adapter: ISA adapter
Algorithm: ISA algorithm
CPU core: +1.74 V (min = +1.79 V, max = +2.18 V) ALARM
+2.5V: +2.60 V (min = +2.24 V, max = +2.74 V)
I/O: +3.44 V (min = +2.95 V, max = +3.62 V)
+5V: +4.97 V (min = +4.47 V, max = +5.49 V)
+12V: +12.16 V (min = +10.79 V, max = +13.18 V)
CPU Fan: 0 RPM (min = 3000 RPM, div = 2)
P/S Fan: 4720 RPM (min = 3000 RPM, div = 2)
SYS Temp: +40.3°C (limit = +60°C, hysteresis = +50°C)
CPU Temp: +52.2°C (limit = +60°C, hysteresis = +50°C)
SBr Temp: +23.8°C (limit = +60°C, hysteresis = +50°C)
Ha szertnék, hogy a hőmérséklet értékeket loggolja a rendszer akkor telepítsd fel a sensord programot. (az adatok lekérdezéséhez NEM szükséges a sensord)
/root # apt-get install sensord
Az értékeket le lehet kerdezni grellm-mel is. Van beépített modulja, ami le tudja kerdezni.
Készítette: fabokzs [ZiB]
Utolsó módosítás dátuma: 2002-07-20