Laptop energiaellátás - Linux alatt

Sziasztok!

Még mindig ezzel szenvedek, de már jutottam előrébb. Leírom a tapasztalatokat, és a fennmaradó hibákat. Hátha másnak is szüksége lesz rá, illetve talán együtt meg tudjuk oldani.

Szóval a noti fő paraméterei:
CPU - P8600 @ 2,4GHZ
RAM - 2GB 800MHZ DDR2
VGA - Radeon HD4330 512MB
Fő OS: CrunchBang (Debian)

1. Videokártya energiatakarékos üzemmód

Az új Linuxokban szívtam a videokártya támogatással 2 dolog miatt is. Az egyik, hogy ez egy 2 éves kártya és júniusban megszűnt a támogatás az AMD részéről. Ha leszedem a Restricted driver-t, akkor nem működik, csak VESA módban megy. Kb. a 3.0 kernel óta a Mesa hajtja meg a kártyát, amivel igazából nem is lenne gond, de mivel notebookról van szó, így fontos a kis fogyasztás és hogy kevésbé melegedjen. Amikor leszedtem a hivatalos AMD drivert (az előző, támogatott verziót vagy az újat, ami elvileg már nem támogatott), akkor telepítés után olyan hibába ütköztem mindig, hogy a radeon driver be van töltve és nem lehet kikapcsolni. Megpróbáltam rmmod-al, de nem reagál. Próbáltam úgy is, hogy blacklist-re teszem a kms_helpert, a drm-et, a radeont... de semmi. A Mesával és ezekkel az új nyílt cuccokkal egyszerűen nem tudtam mit kezdeni.
Feltettem a CrunchBang Linuxot (6.0 Debian alapú) és megnéztem mi van, ha eltávolítom az xorg-video-radeon és az összes ilyen drivert... de ezzel együtt le akarja szedni az xorg-ot is. Próbáljuk másképp..

kms - hasonló, mint a Catalist COntrol Centerben a PowerPlay opció
Ha telepítve van az xorg-video-radeon, akkor elvileg magától bekapcsol, ha ilyen kártyát észlel. (legalábbis nálam ez automatikusan működésbe lépett) A KMS-el lehetőség adódik arra, hogy szabályozzuk a videokártya energiagazdálkodását. Igaz, hogy nincsen hozzá grafikus felület, de nem egy bonyolult dolog.

Parancssorban root jogosultságokra lesz szükségünk.
Ha kiadjuk a következő parancsot:
echo dynpm > /sys/class/drm/card0/device/power_method
akkor a videokártya dinemikus üzemmódba lép, ami annyit jelent, hogy ha tápon lóg akkor mindig maximum teljesítményt ad le (így jobban melegszik és többet fogyaszt) ha pedig érzékeli a gép az akkumulátoros üzemmódot, akkor átvált közepes fogyasztásra. Ez annyit jelent, hogy 1-2W-al csökken a fogyasztás és valamivel lejjebb megy a teljesítmény is.

Ha a következő parancsot adjuk ki:
echo profile > /sys/class/drm/card0/device/power_method
akkor különböző profilokból választhatunk, hogy a videokártya milyen frekvencián üzemeljen.

A következő módok vannak: default, low, mid, high, auto

A default azt jelenti, hogy a videokártya a BIOS által beállított, bootolás közben is használt frekvenciát használja továbbra is. Magyarul nem változik semmi. Amikor bekapcsoljuk a profile üzemmódot az előző paranccsal, akkor alapból ez a profil van beállítva.

Low a legalacsonyabb frekvencia, legkisebb teljesítménnyel és fogyasztással. Videokártya függő, van akinek a flash videók már szaggatnak vagy a teljes képernyős videók, 3D alkalmazások, van akiknek még elmegy. Nálam még nem volt gond vele, 3D-t em használok.

Mid: közepes frekvencia, közepes fogyasztással és teljesítménnyel.
High: legmagasabb órajel, legjobb teljesítmény és legnagyobb fogyasztás illetve hőtermelés.
Auto: olyasmi, mint a cpu frekvencia szabályzásnál az ondemand. Amikor szükséges, akkor feljebb viszi a frekvenciát, amikor nincs rá szükség, akkor lecsökkenti mid-re. Az én kártyám nem támogatja úgy vettem észre, mindig high-on marad.

A beállítás:

Miután kiválasztottuk a profile üzemmódot, meg kell adnunk egy általunk választott profilt is, mert alapból a default van beállítva.

A különböző profilokat így aktiválhatjuk: (értelem szerűen az echo után áll mindig a kívánt profil neve)
echo low > /sys/class/drm/card0/device/power_profile
echo mid > /sys/class/drm/card0/device/power_profile
echo high > /sys/class/drm/card0/device/power_profile
echo auto > /sys/class/drm/card0/device/power_profile
echo default > /sys/class/drm/card0/device/power_profile

Én a low profilt használom, az eredmény: alapból 77-78 fokos volt a kártya, jelenleg 67-68. Ez még nem az igazi, de már jobb a semminél.
Összehasonlíásképpen: win alatt 55 fok fölé nem ment. Talán a zárt driver megoldaná, de azt egyelőre nem tudm felrakni.

2. CPU - frekvencia kezelés

Ez az a rész, ami nekem nem működik. Feltettem a cpufrequtils-t, cpufreqd-t, cpudyn-t, acpi-t, de csak annyi a változás, hogy amikor kihúzom a tápot, akkor lemegy a CPU 1,6GHz-re, de ha b van dugva, akkor folyamatosan maxon megy és melegszik és pörög a venti. Szóval valahogy azt kéne megoldani, hogy a CPU ondemand-on menjen. Ebben kérem a segítségetek.

Egy kis adalék, hogy amikor akkurl megy a gép, hiába 1,6GHz-en megy a CPU és hiába vanlow profilon a vga, mégis 1,5 órát bír csak. Windowssal 3-at is bírt, illetve így 29-32W között van a fogyasztás, winnel pedig 14-16 körül volt. Mi lehet a probléma még? Déli híd is melegszik eléggé.. valami driver problémára gyanakszom.

Hozzászólások

rengeteg egyéb dolog van, ami kellhet még, USB energiatakarékos üzemmód, ugyanezek SATA, PCIe, stb, mind az északi, mind a déli hídban.
Nézd meg PowerTop-al, hogy mi fogyaszt sokat, mellesleg az tippeket is ad, mit kellene beállítani.
És még rengeteg.

off:
Mivel a 2008-as MacBookomra már nem jön ki a Mountain Lion, gondoltam a Lion mellé felteszek egy Linuxot, megnézem mizu vele.

De szerencsére megláttam ezt a topicot, így hamar letettem önmagam szivatásáról.

A cpufreq-nél a governor-t kell ondemand-ra, de inkabb a conservative-ra állítani ha jót akarsz. Ezt mindíg be lehet lőni, mert ha nekiáll valami tekerni (pl. tömörítesz) akkor úgyis felkapcsolja, viszont alapból mindíg visszaveszi.

Ondemand az alapértelemezett a kernelben, és kellően jó is lesz. Ezzel nincs is baj, ha kevés az akkuidő, akkor inkább a többi részegység fogyasztásának kell utánanézni. A CPU-n kívüli többi cucc simán megeszik idle módban 20-25 W-ot egy mai laptopon is. Egy Core2-es NVidia-s ThinkPad-en HDD-vel az idle fogyasztás lenyomható kb 8 W-ig Linuxon, így nagyjából a Windows-os akkuidőt lehet összehozni, talán egy picit többet bizonyos alkalmazásoknál (pl filmnézés). Sajnos azonban a mainstream linuxok közül mindegyiket állítani kellett ehhez, míg a Win7-en nem kellett semmit.
Úgy látszik nem csak a "linux desktop éve" nem jön el, de sajnos a "linux mobil éve" sem - mert azt már Androidnak hívják.

Sajnos... egyszerűen nem tudom mit kezdjek vele.

Végre sikerült feltenni a zárt Ati drivert, így olyan 6-8W-al csökkent a fogyasztás és kb. 20 fokkal a vga hőmérséklete, de még mindig 28W körüli a fogyasztás. Pedig a powertoppal is megnéztem és javítottam mindent. 1W-ot sikerült lefaragni. Win alatt 14-16W a fogyasztás.

Lehet, hogy egy kernel fordítás megoldaná a problémát, de eddig még nem sikerült olyan kernelt forgatnom, amivel minden működött volna :P

Inkább valami ubuntu alapú disztróra váltok, mert ott már fejlettebb az energiagazdálkodás, de alapból ott sem tökéletes. Mindenképpen konfigurálni kell.
Zorin OS régóta tetszik. Az 5-ös verzió jó is volt, csak ott elavultak a csomagok. 6-ost fogom megpróbálni.

Sub

"Belépés díjtalan, kilépés bizonytalan."

Most konfigurálom a kernelt make menuconfiggal. Vannak kérdéses dolgok :P
Most például ott akadtam el, hogy van sok bluetooth driver, de én nem akarok semmit feleslegesen, viszont az enyémet nem találom sehol. Sem az lsusb, sem pedig az lspci nem listázza, pedig működik.

Le tudtam vinni a fpgyasztást 15w-ra.

Feltettem a zárt ATI drivert (apt-get purge radeon*, és utána felment hiba nélkül, amit az ubuntu ajánlott), a PowerPlay-t belőttem powersave-re, powertop-ban optimalizáltam, kiiktattam az update notifiert, eltávolítottam a compizt és a unityt, helyette felkerült az xfce.

Egyelőre itt tartok, de még egy kernel fordítást megpróbálok :)

Szerintem közelíted a minimumot erőteljesen. Kijelző háttérvilágítás tud még sok wattot elvinni.
Nekem a rekordom idle módban amit mértem, ThinkPad Edge, Core i3, integrált vga, SSD, minimum fényerőn: 6W (minden szirszart lekapcsoltam). Közepes fényerőn már nem emlékszem, de olyan 9W lehet. Filmnézés HDD-vel (720p MKV) ilyen beállításokkal, 14/16-os fényerőn ~20W, 14 és 25W között ingadozik, igazából nem számít, GPU-val kicsit kisebb (persze itt a GPU is a CPU-ban van)