4. Energiagazdálkodás

Sajnálatos módon ezek a funkciók egyáltalán nem mondhatóak jól támogatottnak FreeBSD alatt. Ha szerencsénk van, akkor egyes funkciók jól működnek, mások pedig egyáltalán nem.

Hogy még bonyolultabb legyen a helyzet, két szabvány is létezik az energiagazdálkodásra: az APM és az ACPI, ahol az utóbbi bővebb és kiterjedtebb szabvány, mint az előbbi, de több problémát is felvet.

Egyes laptopok az APM-et és az ACPI-t is támogatják (adott mértékig), mások pedig csak az egyik szabványt ismerik. Emiatt mind a kettővel kísérletezni kell egy elfogadható energiagazdálkodási séma kialakításához.

Megjegyzés: Egyszerre nem lehet bekapcsolni az APM-et és az ACPI-t, még akkor sem, ha a laptop mind a kettőt támogatja.

4.1. APM

Az APM (Advanced Power Management) BIOS támogatást ad a különféle energiagazdálkodási jellemzőkhöz, mint mondjuk a készenléti állapot, hibernálás, a processzor órajelének csökkentése stb., amelyek el is érhetőek FreeBSD 4.X és FreeBSD 5.X alatt.

Az APM támogatás bekapcsolásához fordíthatunk energiagazdálkodásra felkészített rendszermagot (device apm0 FreeBSD 4.X esetén és device apm FreeBSD 5.X esetén) is, de a FreeBSD 5.X vonal rendszermagjához már létezik külön APM modul is, amelyet az indítás során tudunk betöltetni úgy, hogy /boot/loader.conf állományhoz hozzávesszük az apm_load="YES" sort.

Ezen felül FreeBSD 5.X esetén még be kell írni a hint.apm.0.disabled="0" sort is a /boot/device.hints állományba.

Az APM-et minden indítással együtt aktivizálhatjuk, ha megadjuk az apm_enable="YES" sort a /etc/rc.conf állományban. Ezen kívül még hasznos lehet elindítani a apmd(8) daemont is, méghozzá a apmd_enable="YES" sor hozzávételével. Ez a daemon felügyeli a BIOS-nak küldött különböző APM-eseményeket, így készenléti állapotba tudjuk helyezni a laptopunkat gombnyomásra, vagy akár összecsukással is.

A APM-parancsok a apm(8) kézikönyvében szerepelnek. Például, az apm -b paranccsal le lehet kérdezni az akkumulátor töltöttségét (vagy 255-öt ad vissza, ha nem támogatott ez funkció), a apm -Z energiatakarékos állapotba, ill. a apm -z (vagy a zzz) parancs készenléti állapotba helyezi a laptopot. A számítógép kikapcsolásához és áramtalanításához a shutdown -p parancsot kell használni. Még egyszer megemlítjük, hogy a tárgyalt funkciók közül nem mindegyik működik megfelelően vagy akár egyáltalán nem működik.

Esetenként tapasztalhatjuk, hogy a laptop energiatakarékos vagy készenléti állapotba helyezése ugyan működik konzolon, de X alatt viszont nem (vagyis nem kapjuk vissza a képet). Ha FreeBSD 5.X-et használunk, erre egy megoldás lehet, ha beletesszük a options SC_NO_SUSPEND_VTYSWITCH sort a rendszermagunk konfigurációs állományába és újrafordítjuk azt. Másik lehetőség, hogy átváltunk egy virtuális konzolra (a Ctrl+Alt+F1 lenyomásával, vagy ugyanígy egy másik funkcióbillentyűvel), majd elindítjuk az apm(8)-et. Ha apmd(8)-t használunk, automatizálhatjuk is ezt a rendszert a vidcontrol(1) segítségével. Ehhez nem kell mást tennünk, csupán átírni a /etc/apmd.conf állományt az alábbiak szerint:

apm_event SUSPENDREQ {
 exec "vidcontrol -s 1 < /dev/console";
 exec "/etc/rc.suspend";
}

apm_event USERSUSPENDREQ {
 exec "vidcontrol -s 1 < /dev/console";
 exec "sync && sync && sync";
 exec "sleep 1";
 exec "apm -z";
}

apm_event NORMRESUME, STANDBYRESUME {
 exec "/etc/rc.resume";
 exec "vidcontrol -s 9 < /dev/console";
}

4.2. ACPI

Az ACPI (Advanced Configuration and Power Management Interface) nem csak energiagazdálkodást tesz lehetővé, hanem hardver-felderítést is (ezzel szinte feleslegessé téve a PnP-t és a PCI BIOS-t). Az ACPI támogatása csak FreeBSD 5.X alatt érhető el, és alapértelmezés szerint aktív. Ilyenkor tehát nem kell semmit se csinálni, hogy működésre bírjuk. Az ACPI viselkedését az acpiconf(8)-al tudjuk vezérelni.

Sajnos azonban, a gyártók gyakorta hibás ACPI-implementációval szállítják a laptopokat, aminek következtében az ACPI bekapcsolása több gondot okoz, mint hasznot, egészen annyira, hogy akár a FreeBSD bizonyos gépeken képtelen elindulni aktív ACPI támogatással.

Ha az ACPI használata gondokat okoz, ajánlott érdeklődni a laptopunk gyártójánál, hogy vajon készült-e ACPI-vel kapcsolatos BIOS-frissítés az utóbbi időben. Mivel a FreeBSD ACPI implementációja is még gyerekcipőben jár, ezért érdemes még frissíteni a rendszerünket is, elképzelhető ugyanis, hogy a problémánkat azóta már megoldották.

Az ACPI kikapcsolásához egyszerűen ki kell bővíteni a /boot/device.hints állományt a hint.acpi.0.disabled="1" sorral. Ha gondunk lenne egy ACPI-t használó gép indításával, ideiglenesen ki tudjuk kapcsolni az ACPI-t az indítás során aktiválható paranccsoron keresztül is, az unset acpi_load parancs kiadásával. A FreeBSD 5.1-RELEASE kiadásától kezdve már egy rendszerindító menüben is kiválaszthatjuk, hogyan induljon a rendszer: itt az egyik menüpont az ACPI kikapcsolása. Ekkor tehát az ACPI kikapcsolásához válasszuk a 2. Boot FreeBSD with ACPI disabled (2. A FreeBSD indítása ACPI támogatás nélkül) pontot a menüben.

4.3. A monitor energiagazdálkodása

Az X ablakkezelő rendszer (Xorg) is tartalmaz energiagazdálkodást a megjelenítő eszközök számára (ajánlott ezzel kapcsolatosan megnézni a xset(1) man oldalt, rákeresve a “dpms” szóra). Valószínűleg ezt is hasznos lesz megismerni. Azonban vegyük figyelembe, hogy sokszor nem következetesen működik a laptopokon: előfordulhat, hogy kikapcsolja ugyan a megjelenítőt, de nem kapcsolja ki a háttérvilágítást.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.