2012. március 22., csütörtök

HP4530s Linux - 20 Watt megtakarítás


Nem rég vettem egy új laptopot: a címben is szereplő HP4530s-t, nagyon jó áron sikerült hozzájutnom, és rendkívül elégedett vagyok vele; a várakozásokkal ellentétben nagyon rövid idő alatt sikerült minden hardvert életre kelteni. Természetesen nem véletlenszerűen választottam ki ezt a gépet, SUSE Linux Enterprise 11 rendszerrel is árulják, és a neten egy kis utánaolvasgatás után úgy láttam, hogy elég szépeket írtak a gépről és meglepően kevés hibáról olvashattam.
A legújabb Backports verzióját tettem fel a Crunchbang-nek, a telepítés után minden hardver tökéletesen működött, azonban rövid idő után észleltem, hogy rendkívűl forró a gép és már nagyon hangosak a ventillátorok. Egy rövid pillantással a Conky-ra láttam, hogy majdnem 70 fokos a gép: úgy döntöttem, hogy a rendszer finomhangolásába kezdek. Ekkor a rendszer 28 W-ot fogyasztott, ami miatt körülbelül 40 perc alatt le is merült.

Egy hőmérséklet teszt után láttam, hogy a gép legforróbb része a dedikált AMD Radeon HD 6470M videókártya. Első lépésként tehát ezt kell kikapcsolni:

1. lépés: Radeon HD 6470 videókártya kikapcsolása

Ezt egy vgaswitcheroo nevű programmal tehetjük meg. Ahhoz, hogy ez a program elérhető legyen a gépen (/sys/kernel/debug mappában); először csatoljuk ezt a könyvtárat:
echo "none /sys/kernel/debug debugfs defaults 0 0" | sudo tee -a /etc/fstab
Adjuk hozzá kernel paraméterként Grubhoz a következőt:
modeset=1
Ehhez
sudo gedit /etc/default/grub
és a GRUB_CMDLINE_LINUX_DEFAULT részhez írjuk be az idézőjelek közé.
Ahhoz, hogy a változtatásokat érvénybe léptessük generáljunk új Grubot:
sudo update-grub2
És a biztonság kedvéért, hogy láthassuk majd a vgaswitcheroo programot:
sudo chown $USER /sys/kernel/debug/
és rakjuk be blacklistbe a videókártyát:
echo "blacklist radeon" | sudo tee -a /etc/modprobe.d/blacklist.conf
Majd végül kapcsoljuk ki a rendszer indulásakor a videókártyát:
sudo gedit /etc/rc.local
majd az "exit 0" elé írjuk be a következőt:
modprobe radeon
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
Ezzel a lépéssel több, mint 10 W-ot nyerhetünk, nálam a fogyasztás itt 17,7 W-ra csökkent.

2. lépés: További kernel paraméterek hozzáadása

Továbbiakban néhány további kernel paramétert adunk a Grub-hoz, amik alapesetben ki vannak kapcsolva, mert néhány hardverkonfigurációnál elméletileg hibákat okozhatnak.
Ezt ugyanúgy tehetjük meg, mint az előző részben:
sudo gedit /etc/default/grub
és a GRUB_CMDLINE_LINUX_DEFAULT részhez idézőjelek közé írjuk be a következőket:
pcie_aspm=force
i915.i915_enable_rc6=1
i915.i915_enable_fbc=1
i915.lvds_downclock=1
Ezek sorban: az első a PCI Express Active-State Power Management bekapcsolása, mely egyes hardvereknél nagy energiamegtakarítást eredményezhet, a második az Intel videókártya RC6 energiatakarékos üzemmódjának engedélyezése, a harmadik a Frame-Buffer Compression engedélyezése, mellyel az Intel videókártya tömöríti a képernyő frissítéséhez használt buffert, így kevesebb memóriát használ a videókártya, az utolsó pedig downclockolja az integrált Intel videókártyát. Az ilyen sorrendben történő alkalmazással lemértem, melyikkel mennyi energiát lehet megtakarítani:
Így változott a fogyasztás: 16,8W -> 11,6W -> 10,8W -> 10,6W. Láthatjuk, hogy ezekkel összesen több, mint 7 W-ot spóroltunk meg.
A kernel paraméterek érvénybe léptetéséhez, új Grub-ot kell generálni:
sudo update-grub2
Majd indítsuk újra a gépet.

3. lépés: Liquorix kernel telepítése

Korábban is használtam ezt a kernelt, tapasztalataim szerint gyorsabb vele a rendszer (és kicsit kevesebbet is fogyaszt). A Crunchbang startup scriptjében (cb-welcome) ugyan már nincs benne, de ezt megoldhatjuk mi magunk is. Az egyszerűség kedvéért találtam egy csomagot, ami .deb csomagként tartalmazza a kernelt és függőségeit. LETÖLTÉS ITT. (32 bit)

Végeredményben 17,6 W-al csökkentettük a rendszer fogyasztását, ami szerintem bárkinek jól jöhet, konnektor szegényes időkben.
További ~2 W-ot nyertem egy korábban már itt az oldalon bemutatott scripttel, amit tovább fejlesztettem, hamarosan azt is publikálom.
Addigis itt a végereményt mutató screenshot, a fogyasztásmérő program a powertop volt:


A fogyasztást tehát 28W-ról 8,4W-ra csökkentettem, ami 19,6W nyereség. Ugyanez használati időben kifejezve: a gép 40 perc helyett 5 és fél órát bír ki. :)
Sok sikert a változtatásokhoz!

Update: [Energiaspóroló szkript]
Update2: CrunchBang 11 "Waldorf" fogyasztása kicsit megnőtt, induláskor 38W-ot fogyasztott, az oldalon leírt optimalizáció során végül 9.63W-ra sikerült lefogyasztani ezt:

Újabb Liquorix kernel telepítése itt.

Források:
Cikk a kernel paraméterekről
Rövid leírás a Vgaswitcheroo-ról (+ kisebb továbbfejlesztés, pl.: igényesebb vgaswitcheroo állító script, magyarázatok)
Liquorix kernel honlapja
A Liquorix kernel: .deb csomagok forrása + 64 bites változat is

2012. március 2., péntek

Transmission magnet link


A piratebay-en már egy ideje magnet linkekkel működik alapértelmezetten a torrent letöltés, bár még a régi hagyományos .torrent fájl letöltő mechanizmus is működik. Elvileg egy idő után, csak a magnet linkek lesznek már használhatóak, ezt a váltást többféleképpen magyarázzák: a hivatalos indoklás, hogy így csökken az oldal terhelése, mert nem kell fájlokat az oldalról letölteni. Azonban a valós magyarázat az lehet, hogy a magnet linkeket nem lehet még jogilag behatárolni, így ellenük tenni se nagyon, valamint a magnet linkek a szerver működése nélkül is funkcionálnak.
Ennyi bemelegítés után keltsük életre a magnet linkeket Firefox-ban, a következő parancsokat kell kiadni terminálban:

gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "/usr/bin/transmission '%s'"
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/needs_terminal false
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true
A Transmission oldalán egy bővebb leírás is található.
Több infó a magnet linkekről: Wikipedia