daniel@nofftz.net.NOSPAM
2003.08.29
Verziótörténet | ||
---|---|---|
Verzió: 1.02 | 2003.08.29 | Átdolgozta: dn |
Új honlap, új e-mail cím -> frissített hivatkozások! | ||
Verzió: 1.01 | 2003.07.09 | Átdolgozta: dn |
Hibajavítás! Az AMD-lapkakészlet parancssoros hackelés rossz volt! | ||
Verzió: 1.0 | 2003.06.20 | Átdolgozta: tm |
Első kiadás, az LDP átnézte. | ||
Verzió: 0.12 | 2003.06.13 | Átdolgozta: dn |
Kissebb mértékű xml forráskód átdolgozás, végső tervezet az ldp kiadáshoz. |
A Linux rendszermag tétlen állapota esetén alapértelmezetten használt HLT szignál nem eredményez jelentős energiamegtakarítást az Athlon/Duron processzorcsalád esetén (ezek után csak Athlon processzoroknak nevezzük őket). Athlon processzoroknál valódi energiatakarékosság eléréséhez a processzort STPGNT-módba (Stop Grant Mode) kell átkapcsolni. Ebben a módban a processzor nem kapcsolódik a front-side-bus-hoz (FSB), a CPU bizonyos részeit kikapcsolhatja, és csökkentheti az órajelet is az energiamegtakarítás érdekében.
This document, Athlon Powersaving HOWTO, is copyrighted (c) 2003 by Daniel Nofftz.
A dokumentum másolása, terjesztése és/vagy módosítása engedélyezett a Free Software Foundation (Szabad Szoftver Alapítvány) által közzétett GNU Free Documentation License 1.2 vagy későbbi változatában leírt feltételek szerint; állandő fejezetek, előoldali és hátoldali szövegek nélkül. A licenc egy másolata megtalálható a http://www.gnu.org/copyleft/fdl.html honlapon.
Linux is a registered trademark of Linus Torvalds.
A dokumentum tartalmáért nincs felelősségvállalás. Az elgondolásokat, példákat és információkat a saját felelősségedre használd. Előfordulhatnak hibák és pontatlanságok, amelyek a rendszered sérülését okozhatják. Minden óvatosság ellenére bármily hihetetlen, a szerző(k) semmilyen felelősséget nem vállal(nak).
Minden szerzői jog fenntartva az eredeti tulajdonosának, amennyiben másként nincs jelölve. A dokumentumban használt szakkifejezések semmilyen párhuzamot nem képviselnek védjegyekre, szervíz márkákra vonatkozólag. Egyedi alkotások vagy védjegyek nevesítése nem hozzájárulások.
A visszajelzések a dokumentum szempontjából nagyon fontosak. Különösképp szükségesek az új megoldások az új lapkakészletekhez. Ezen kívül a megjegyzéseket is szívesen veszem, melyekből megtudható, hogy a megadott megoldások működtek-e vagy sem. A kiegészítéseket, megjegyzéseket és kritikákat a <daniel@nofftz.net.NOSPAM> e-mail címre várom.
Angol és német nyelvű e-mailt egyaránt küldhettek!
A magyar fordítást Mócza Zsolt készítette (2003.10.20). A lektorálást Daczi László végezte el (2003.10.21). A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.
Ebben a részben különféle módszereket mutatok be egyetlen cél elérése érdekében: ez pedig az energiatakarékosság Athlon-alapú rendszerünkön. Jelen pillanatban az én javaslatom az, hogy a "parancssoros hackelést" használjuk, mert a rendszermagfolt elavult és már nem fejlesztik tovább, az LVCool folt pedig csak egy lapkakészlet családot támogat. Az athcool program ígéretes, de én még nem teszteltem.
Ezen módszerek mindegyike beállítja a lapkakészlet északi hídjának "Lekapcsolódás engedélyezve STPGNT esetén" bitjét. Se többet se kevesebbet nem tesznek. Minden más feladatot a rendszermag ACPI alrendszere végez, mely elküldi az STPGNT szignált a processzornak, amikor acpi-c2 tétlen módba lép. (Egyedül az LVCool csinálja más módon...)
Ha jelenlegi rendszermagunk nem tartalmaz ACPI támogatást, engedélyezzük azt, és fordítsuk újra a rendszermagot. Az ACPI-beállításokat a
+ -> menüpontban találjuk. A következő beállításokat mindenképpen engedélyeznünk kell: , ésA parancssoros hackelés használatához a rendszermagban engedélyezni kell az ACPI támogatást. Ennek módja a A saját rendszermagfoltom fejezetben kerül bemutatásra. Ha rendszermagunk már tartalmazza az ACPI-processzor támogatást, az energiatakarékos üzemmódot közvetlenül parancssorból, újraindítás nélkül ki- és bekapcsolhatjuk.
bekapcsolás: setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) | 0x80)))
kikapcsolás: setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) & 0x7f)))
bekapcsolás:
setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) | 0x80)))
setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) | 0x02)))
kikapcsolás:
setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) & 0x7f)))
setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) & 0xfd)))
bekapcsolás:
setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) | 0x80)))
setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) | 0x02)))
kikapcsolás:
setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) & 0x7f)))
setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) & 0xfd)))
bekapcsolás: setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) | 0x01)))
kikapcsolás: setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) & 0xfe)))
bekapcsolás: setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) | 0x0001)))
kikapcsolás: setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) & 0xfffe)))
bekapcsolás:
setpci -v -H1 -s 0:0.0 E7=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) | 0x06)))
setpci -v -H1 -s 0:0.0 6D=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6D) | 0x80)))
kikapcsolás:
setpci -v -H1 -s 0:0.0 E4=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) & 0xf9)))
bekapcsolás: setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) | 0x10)))
kikapcsolás: setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) & 0xef)))
bekapcsolás: setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) | 0x06)))
kikapcsolás: setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) & 0xf9)))
Az athcool egy aprócska program, mely ugyan azt a feladatot látja el, mint a fenti setpci parancsok. Ugyanazokat a lapkakészleteket támogatja, és felismeri, hogy milyen lapkészletünk van. Működésre bírja az energiatakarékos üzemmódot, a lapkakészletnek megfelelő beállításokkal.
A programról további információkat szerezhetünk (és le is tölthetjük) a honlapról.
Az újabb alaplapok némelyikéhez a gyártó olyan BIOS frissítést biztosít, mely beállítja az alaplap lapkakészletének megfelelő bitjét vagy bitjeit (esetleg lehetővé teszi a BIOS-setup-ban annak beállítását). Látogassuk meg alaplapunk gyártójának honlapját az ilyen BIOS frissítések beszerzéséhez.
A saját rendszermagfoltom egy, a Newsnet-en talált másik folton alapul, mely Jan Niehusmann-tól származik. Módosítottam a foltot, hogy a KT266/266A lapkakészleteket is támogassa. Egyébként a saját foltom ugyanazt csinálja, mint a parancssoros hackelés, csak a rendszermagból. Ezért javaslom a hackelést parancssorból, hiszen azt nagyon egyszerű használni.
Ok... most nézzük lépésenként, hogyan használjuk a foltot:
Először le kell töltenünk a foltot: Rendszermagfolt 2.4.17-es rendszermaghoz
Jelentkezzünk be root felhasználóként
cd /usr/src
Rakjuk fel a foltot: cat $path-to-patch/amd_cool.diff | patch -p0
cd linux
Fordítsuk le az új rendszermagot
Indítsuk újra a számítógépet, majd a boot-prompthoz írjuk be a amd_disconnect=yes sort. Erre azért van szükség, mert az Athlon processzor ismert hibái több alaplap esetén problémákat okozhatnak. Így először kipróbáljuk a foltot, és ha működik, a amd_disconnect=yes sort beírhatjuk az /etc/lilo.conf fájlba.
Az LVCool a Windowsos VCool program Linuxos változata. Csak a KT133/133A és a KX133 lapkakészletet támogatja, de nem tudok ezzel kapcsolatban segítséget nyújtani. Letölthető innen. Ez az egyetlen olyan megoldás, mely nem a Linux rendszermag ACPI rendszerét használja.
Két hibáról tudunk az Athlon/Duron processzorokban. Ezek 11-es és 14-es sorszámmal szerepelnek AMD Athlon Processor Revision Guide-ban. Úgy tűnik, az Athlon XP processzort jóval ritkábban érintik ezek a hibák. Így ha Athlon XP-vel rendelkezünk, szerencsénk van (mint nekem).
A következő problémák léphetnek fel (melyeket a processzor hibái okoznak):
ugrások hanglejátszás közben
ugrások és lelassulás video lejátszás közben
az ultra-DMA merevlemezes adatátvitel lelassulása
a rendszer nem reagál
Néha a BIOS frissítés segíthet ezen (a 11-es hiba kikerülésére létezik egy megoldás, mely a BIOS-t használja). De tudomásom szerint csak kevés alaplap BIOS-ban található meg ez a megoldás.
Az Asus A7V133-C alaplap esetén ismeretes, hogy a PCI master read caching BIOS beállítás engedélyezése a legtöbb problémát megoldja. Nézzük meg, hogy van-e ilyen funkciója az alaplapunkon lévő BIOS-nak.
Azt is tudjuk, hogy néhány alaplap esetén a Delayed Transaction BIOS beállítás a problémák egy részét kiküszöböli. Ezt az opciót is érdemes lehet kipróbálni.
FIGYELEM: A KT133A lapkakészlettel ellátott alaplapok esetén ez előhozhatja a híres VIA-Southbridge hibát!
Egy Newsnet levelezésből, az Asus A7V-vel kapcsolatban:
delayed transaction nélkül: ugrások hanglejátszás és TV-nézés közben
delayed transaction bekapcsolva: nincsenek ugrások hanglejátszás közben és csak kisebb problémák TV-nézéskor
mind a delayed transcation mind a master read caching bekapcsolva: szinte semmilyen probléma TV-nézéskor és egyáltalán nem jelentkeznek ugrások hanglejátszás közben
Más okai is lehetnek a problémáknak:
a tápegység nem elég erős ahhoz, hogy a processzor/alaplap energia felvételének ingadozását kezelni tudja
néhány alaplapi feszültség-szabályozónak ugyanaz a hibája, mint a tápegységnek ;)
az alaplapunk típusa K7S5A (tudomásom szerint ez az alaplap nagyon furcsán tud viselkedni, amikor az energiatakarékos üzemmód be van kapcsolva)
Ha rendszerünket energiatakarékos üzemmódban használva csak kisebb problémák adódnak, és ennek ellenére szeretnénk használni azt használni, alapértelmezésként engedélyezhetjük. Ha zenét akarunk lejátszani vagy TV-t akarunk nézni akkor pedig kikapcsoljuk ...
Még több lapkakészlet leírásával és információval bővíteni a dokumentumot.
Lehetne készíteni egy listát az alaplapokról "működik" és "nem működik" jelölésekkel.
Fordítások is készültek különféle nyelvekre. A legtöbbjük ezen dokumentum XML előtti verziójának fordítása.
A spanyol fordítást Carlos Mayo készítette.
A francia fordítást Mathieu Pillard készítette.
Az olasz fordítást Maurizio Fantino készítette.
A német fordítást Fabian Mohren készítette (csak részletek).