Snížení spotřeby Ubuntu na Dell Latitude D630
Modern PCs are horrible. ACPI is a complete design disaster in every way. But we’re kind of stuck with it. If any Intel people are listening to this and you had anything to do with ACPI, shoot yourself now, before you reproduce.
Linus Torvalds
Dlouhou dobu jsem používal distribuci Gentoo s prostředím KDE. Prošla se mnou dva stolní počítače a dva laptopy (momentálně Dell D630) Nikdy jsem si nestěžoval, systém dělal opravdu to, co jsem po něm chtěl. Problémem ale je, že mnohdy člověk neví, co chtít může. Svět Linuxu se vyvíjí stále rychleji a sledovat nové možnosti není snadné a efektivní. Proto jsem si s koupením většího disku řekl, proč nevyzkoušet něco jiného – v tomto případě Ubuntu.
Po vyzkoušení Kubuntu, které bych subjektivně popsal jako ve výchozím stavu škaredé a objektivně jako nestabilní, jsem zakotvil u Ubuntu. Všechno hezky spolupracuje, veškerý HW funguje bez nastavování (což jsem jinak viděl jen u Mac OS X, který ovšem jede jen na stejných HW sestavách), pouze velkou část aplikací z Gnome jsem nahradil protějšky z KDE (Amarok, Krusader, Digikam, Kopete, Yakuake…). Přeci jen úmyslné omezování uživatele má smysl u samotného prostředí, ale u složitějších aplikací je kontraproduktivní (a skoro bych sáhl k známému Torvaldsovu citátu o dělání z uživatelů idioty). No a Qt aplikace v Gnome vypadají nesrovnatelně lépe, než GTK aplikace v KDE.
Jak už jsem řekl, používám laptop. Dell D630 je pro mne kompromisem mezi dobrou přenositelností a použitelností i bez externích periférií (jde o 14″ laptop, při běžné práci k němu mám připojen 22″ monitor, ergonomickou externí klávasnici a myš), nikdy bych si nekoupil 17″ přenosné topící těleso, které jsou dnes z pro mě nepochopitelných důvodů tolik v módě. Z důvodu výdrže při provozu na baterii, ale i toho, jak moc nebo málo topí při běžné práci, jsem si oblíbil nástroj PowerTop (který Intel vyvinul asi proto, aby odčinil své ACPI hříchy – viz citát výše a text níže). Při otestování spotřeby Ubuntu jsem ale narazil na dost nelichotivé srovnání s Gentoo.
S Gentoo byla má zkušenost vždy taková, že na baterii vydrží na stejném stroji při srovnatelných podmínkách déle, než Windows (ať už XP nebo Vista). Ubuntu se ale dle praktických zkušeností a i informacích o spotřebě z PowerTopu projevilo pěkně nenažraně. Konkrétně tam, kde jsem měl s Gentoo spotřebu kolem 20W, vzalo si Ubuntu 30W. A to je u laptopu opravdu velký rozdíl. Pokud by to nešlo řešit, tak bych se k Gentoo vrátil velmi rychle.
Vypínání všech možných i nemožných služeb a hledání po internetu nic moc neobjasnilo. Nicméně má posedlost logy něco odhalila. V starovacím logu se totiž objevilo pár chyb s ACPI. A to jsem u Gentoo na základě návodu řešil poskytnutím vlastní ACPI tabulky (a jsme zpět u výše uvedeného citátu – výrobci počítačů totiž často implementují ACPI zmršeně, tak, že to projde jen na Windows). To je postup sice obecně nedoporučovaný, cílem ACPI implementace na Linuxu (a ostatních UNIX platformách) je všechny tyto deviace řešit bez podobných hacků, ale bohužel někdy nezbytný. Tonoucí se stébla chytá, spotřeba mohla a nemusela s ACPI souviset, ale radši jsem to zkusil.
Zhýčkaný dokumentací Gentoo, kde člověk najde i postup pro konfiguraci konkrétního typu laptopu, jsem hledal postup pro update DSDT v Hardy Heronu. Našel jsem jen obecný postup týkající se úplně jiného problému. Uživatelé Ubuntu pravděpodobně podobné věci jako šílená spotřeba neřeší. Naštěstí postup zafungoval, DSDT tabulka je nahrazena. A co se týče spotřeby, problém byl vyřešen, opravou ACPI došlo ke snížení spotřeby na úroveň, která panuje pod Gentoo.
A tady je celý postup:
- Stáhněte si nezkompilovanou DSDT tabulku pro Dell D630 (i přes příponu gz jde o obyčejný texťák, tak se ho nesnažte rozbalovat) z adresy:
http://acpi.sourceforge.net/dsdt/dl.php?id=956 - Nainstalujte do Ubuntu nezbytné balíky pro kompilaci a kompilátor iASL:
sudo apt-get install build-essential iasl - Vlezte do adresáře se staženou tabulkou a zkompilujte ji kompilátorem iasl:
iasl Dell-Latitude_D630-A03-original.asl.gz - Nemělo by dojít k žádným chybám a výsledkem by měl být soubor
dsdt.aml. Ten je potřeba zkopírovat do adresáře/etc/initramfs-tools/pod názvemDSDT.aml(nezkoušel jsem, ale prý je nutné mít název velkými písmeny):
sudo cp dsdt.aml /etc/initramfs-tools/DSDT.aml - Nyní je potřeba překonfigurovat jádro, aby novou tabulku používalo. Při budoucích upgradech jádra by to snad již mělo proběhnout automaticky:
sudo dpkg-reconfigure linux-image-$(uname -r) - Po dlouhé době restartujte. Ve
/var/log/messagesby měly chybět chyby ACPI a někde se objeví upozornění o náhradě DSDT tabulky.
To je vše, problémy s ACPI by měly být vyřešeny!
