Samozřejmě každé chlazení je poruchové – ventilátory montované na žebra chladičů se mohou zadřít, otvory pro cirkulaci vzduchu se zanesou prachem. Je tedy vhodné sledovat provozní podmínky počítače, abychom mohli být včas upozorněni na možné problémy a zabránit tak neplánovanému výpadku serveru nebo dokonce zničení hardware a ztrátě dat.
Moderní základní desky mají tedy integrované obvody, které nám mohou sdělit údaje jako třeba otáčky ventilátorů, kvalita napájecího napětí nebo teploty v různých částech počítače. Ke zpřístupnění těchto informací v Linuxu používáme program lm_sensors.
Hlavní součástí lm_sensors jsou ovladače jednotlivých monitorovacích obvodů a čipových sad, které se vyskytují na základních deskách. Současná verze lm_sensors podporuje většinu běžných součástek. Podporované čipové sady jsou:
Intel PIIX4 (LX, ZX, BX, aj.); Intel I801 (810, 815, 820, 840); SiS 5595; VIA 82C586B, 82C596A/B, 82C686; ALi M153×; AMD 756; Apple Hydra.
Mezi vlastními monitorovacími obvody jsou pak podporovány:
Analog Devices ADM102×, ADM9240; Asus AS99127F; Dallas DS75, DS1621, DS1625, DS1775, DS1780; HP Maxilife; Genesys Logic GL518SM, GL520SM, GL523SM; Maxim MAX1617; Myson MTP008; LM7×, LM8×; SiS 5595; TelCom TCN75, TI THMC10, 50; VIA VT82C686A; Winbond W83781D, W83782D, W83783S, W83627HF.
Kromě toho je možné taktéž získávat informace z SPD EEPROM na čipech DIMM procesorů Intel Xeon a monitorů DDC, které pracují na stejném principu. V budoucnosti bude lm_sensors obsahovat i podporu pro generátory hodinových pulsů PLL, které umožňují například zjišťovat i měnit taktovací frekvenci procesoru pomocí změny FSB za chodu počítače. Současná podoba ovladače icspll je však zatím ještě nepoužitelná.
Aktuální výpis všech podporovaných obvodů je možné získat tady. Program samotný pak najdete zde.
Veškerá komunikace mezi čipovou sadou a sensory probíhá po speciální sběrnici podobné i2c. Proto je potřeba mít do kernelu Linuxu zabudovánu ještě podporu této sběrnice. K tomu slouží paralelně vyvíjený balík i2c, který je možné získat na stejném místě jako lm_sensors.
Instalace se provádí nejlépe tak, že se pomocí stažených souborů i2c a lm_sensors opatchuje jádro. To lze provést vykonáním příkazu:
mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux
v rozbalených adresářích i2c a lm_sensors.
Tím vám v nabídce konfiguračních parametrů přibude větev „Character devices->I2C support“ a „Hardware sensors support“. Pokud nevíte jaké obvody používá vaše základní deska, tak doporučuji zatrhnout všechny ovladače jako moduly a výběr toho konkrétního svěřit autodetekci. Podrobné informace jsou součástí obou balíků. Cenným pomocníkem může být i manuál k základní desce.
Jestliže máte nějaké hodně nestandardní nebo nové jádro (2.4.0, aj.), případně málo podporovaný hardware, je možné, že vám s ním distribuční veze lm_sensors nebude fungovat. V takovém případě doporučuji stáhnout si nejčerstvější zdrojové kódy pomocí cvs. Postup naleznete na již zmíněné adrese. Je také možné, že ve vašem jádře již bude zahrnuta podpora i2c a budete moci vynechat instalaci balíku i2c.
Kromě toho je nutné zkompilovat dodávané podpůrné programy, což se provádí zcela běžným způsobem (make; make install). Pokud instalujete podpůrné programy do /usr/local (standardně ano), tak je někdy potřeba přidat ještě adresář /usr/local/lib do souboru /etc/ld.so.conf a pustit ldconfig, aby bylo možné ze zmíněného adresáře zavádět dynamické knihovny.
Po nastavení, kompilaci a zavedení jádra a nainstalování podpůrných programů pusťte program sensors-detect. Ten vám zavede potřebné moduly do paměti a poradí jak modifikovat startovací skripty a /etc/modules.conf. Někdy je potřeba též zkalibrovat výstupy měřených veličin pomocí dobře dokumentovaného souboru /etc/sensors.conf.
Tím je instalace hotova a nyní můžeme přistoupit ke zkoumání přiložených programů.
-
Program sensors slouží k jednoduchému výstupu údajů získaných od všech sensorů. Můžeme jej použít na konzoli k jednoduchému zjištění například aktuální teploty procesoru.
- sensord je démon, který umožňuje nastavit si v souboru /etc/sensors.conf limitní stavy u všech měřených veličin, a pokud dojde k překročení, zapíše o tom zprávu do logu. Můžeme jej také použít k periodickému logování měřených dat.
- decode-dimms.pl je skript, který nám vypíše informaci o parametrech paměti DIMM, které jsou zaznamenány v SPD EEPROM čipu. Můžeme tak například zjistit jaké jsou vybavovací rychlosti paměti (přístupová doba, CAS latence), certifikace (PC 100, PC133), výrobce modulu, aj.
- healtd.sh je jednoduchý skript, který v pravidelných informacích kontroluje měřené veličiny a v případě limitních stavů pošle mail správci systému. Jistě nebude problém upravit si jej tak, aby například v případě překročení teploty procesoru udělal cokoliv jiného – třeba pustil shutdown.
Pokud hledáte grafický program pro prezentaci měření pod X Window, budete se muset poohlédnout na Freshmeatu nebo v jiném sw archivu, protože v distribuci jsou pouze jednoduché konzolové aplikace. Proto na závěr uvedu výčet těch nejzdařilejších:
- Na této stránce naleznete pěkný příklad demonstrující spojení lm_sensors s okamžitou prezentaci měření v grafické podobě na webové stránce.
- Pokud používáte Gnome, pravděpodobně se vám zalíbí Gnomesensors – applet, který lze umístit do taskbaru. Program vypadá jako LCD displej, který ukazuje různé výstupy z lm_sensors.
- Uživatelé KDE pravděpodobně sáhnou po klm.
- Z programů pro holá X jmenujme například hardmon.