Alapvetően három dolog motivált.
- Notebook merevlemez idegesítő kattogása, illetve ennek megszüntetése.
Erről több topik is született már itt a HUP-on. Nem feltétlen hardver hibára kell gondolni a kattogás alatt. A notebook merevlemez energiagazdálkodás céljából X másodpercenként lekapcsolja magát, azonban mivel naplózó fájlrendszert használok (ext3), a naplókhoz legalább 5 másodpercenként hozzányúl a rendszer, ergo a lemez visszakapcsol. IMHO viszonylag hamar le lehet rövidíteni a merevlemez élettartamát napi pár száz ki- bekapcsolással. Jó lenne ezt a folyamatot is szabályozni. - Ha kell a "lóerő" akkor az álljon rendelkezésemre. :)
Azért vettem notebookot, hogy használjam. Ergo a túlzott korlátozásnak nálam nincs helye, nem egy a fogyasztás érdekében "visszafogott" gépre van szükségem, hanem egy olyanra, amely azt nyújtja amit elvárok tőle. - Tetszőlegesen állítható dolgokat akartam, lehetőleg valami szkript formájában.
Az utolsó pontról annyit, hogy jobb szeretem, ha a egy program csak azt csinálja amit én akarok, akkor amikor én akarom, és lehetőleg grafikus felülettől függetlenül működjön. Plusz egyedi igényeket is képes legyen lekezelni.
A következő lépéseket követtem el az ügy érdekében.
- Hardveres hangolás.
Elsősorban BIOS szinten engedélyezett ACPI és HPET beállításokra van szükségünk. Mivel ahány hardver annyi féle beállítás, tételezzük fel, hogy ezen mindenki túl van :) - Kernel szintű buherálás
Itt elsősorban a HPET, Tickless kernel és "CPU frequency scaling" beállításokra gondolok. Ezek is kellőképpen dokumentáltak, de azért leírom (lásd cikk végén), hogy én milyen beállításokat használtam a kernelben. - Tesztelés Powertop-pal
A fogyasztás aktuális állapotát és a másodpercenkénti felébredések számát a powertop segítségével monitoroztam. Ez azért is hasznos mivel a program használata során rengeteg tippet ad, amivel befolyásolhatjuk a rendszerünk energia használatát. Célszerű ezeket a tippeket megvalósítani! A powertop-ról többek közt itt olvashatunk bővebben. - Userspace alkalmazás
Igazából ez itt a "saját munka". Ez a szkript végzi el a finomhangolást. Egyrészt lefut minden bootkor, másrészt maga az acpi démon is elindítja két bizonyos esemény bekövetkeztekor. Amikor hálózati feszültségre dugom a gépet, illetve ha lehúzom arról.A szkript 3 fájlból áll:
/etc/acpi/actions/standby_hdd.sh (chmod 755 !)
/etc/acpi/events/pmg_ac_adapter
/etc/acpi/events/pmg_batteryA telepítése ezt követően csak ennyi (Gentoo Linux rendszeren):
echo "/etc/acpi/actions/standby_hdd.sh && echo" >> /etc/conf.d/local.start
rc-update add acpid boot
Tesztkörnyezet
Az alábbi beállításokat egy "AMD Turion(tm) 64 X2 Mobile Technology TL-52" processzorral ellátott Asus A6M szériás notebookon követtem el.
Szoftver környezet az alábbi lényeges részekből áll fel:
- Gentoo Linux - 32 bit / 2007.0 profil
- sys-kernel/gentoo-sources-2.6.24-r3 (2.6.24.3 vanilla + gentoo patchset)
- sys-power/acpid-1.0.6-r1
- sys-power/powermgmt-base-1.22 (ebben a csomagban található az on_ac_power parancs)
- sys-apps/hdparm-7.7
- gnome-base/gnome-applets-2.20.1 (cpufreq-selector ebben található)
Felhasznált irodalom
A szkript írásakor nagy segítségemre voltak a már eddig feljebb is belinkelt oldalak, valamint a Gentoo Power Management Guide és a Gentoo Wiki. :)
A szkriptek és egyék kiegészítő fájlok.
A szkript arra épít, hogy meghív egy segédprogramot -ez lenne az on_ac_power-, amelynek a lehetséges kimenetelei (1 / 0) azt mondják meg, hogy a notebook hálózatról vagy akkumulátorról működik. A továbbiakban már ennek függvényében cselekszik. Sok mindent nem csinál. Egyrészt a hdparm segítségével beállítja a merevlemez energia gazdálkodását, kiválasztja az illő CPU órajel ütemezőt (governor) illetve pár dolgot állít még a /proc fájlrendszeren keresztül.
Terjedelmi és technikai okok miatt nem tudtam beilleszteni a fájlokat, ezért akit érdekel, az egy tar.gz-ben letöltheti innen.
- A hozzászóláshoz be kell jelentkezni
- 5143 megtekintés
Hozzászólások
Ha van rá igény, akkor lehet, hogy a hup wiki-be is átírom.
--
http://kac.duf.hu/~balage/blog
- A hozzászóláshoz be kell jelentkezni
Persze hogy van!
- A hozzászóláshoz be kell jelentkezni
Szerintem is jó ötlet lenne. Előre is köszi!
- A hozzászóláshoz be kell jelentkezni
Jöjjön csak az a leírás!
- A hozzászóláshoz be kell jelentkezni
sokat szórakozhattál ezekkel, nekem nem lenne hozzá kitartásom.
laptopom kattogó hangját még sosem hallottam.
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
nálam még benne van a szkriptben a képernyő brightnessének fel vagy leállítása, amikor bedugom vagy kihúzom az AC hálózatból. (ezt AFAIK csak gyártófüggő módszerekkel lehet megcsinálni).
amúgy én azt sajnálom, hogy AMD64es laptokokon általában a dynticks felejtős, utánaolvasva pedig a developerek hozzáállása az, hogy erre nincs "energia", vegyek inkább inteles laptopot. hát a következő valószínűleg az lesz, de most ez van.
- A hozzászóláshoz be kell jelentkezni
2.6.24-től van dyntick amd64-re is.
- A hozzászóláshoz be kell jelentkezni
ami a turionokon nem megy http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg240676.html
- A hozzászóláshoz be kell jelentkezni
Akkor most már tudom, hogy miért ugrott közel a kétszeresére a felébredések száma a 2.6.23 kernelen tapasztaltaktól.
Bár függ ez attól, hogy 32, vagy 64bites rendszert használok?
--
http://kac.duf.hu/~balage/blog
- A hozzászóláshoz be kell jelentkezni
szerintem függ, mert a patch ha jól látom a setup_64.c filera vonatkozik... (amd_apic_timer_broken).
Ha rátettem a patchet, működött (2.6.24.2), de a suspend-to-ram után nem indult :(
- A hozzászóláshoz be kell jelentkezni
[off]csak feliratkozom :)[/off]
- A hozzászóláshoz be kell jelentkezni