daniel@nofftz.net.NOSPAM
2004.04.24
Verziótörténet | ||
---|---|---|
Verzió: 1.1.4 | 2004.04.24 | Átdolgozta: dn |
A sis lapkakészlet parancssori hackje változott, új javítás az ugráló hanghoz, új folt a 2.6.5 rendszermaghoz. | ||
Verzió: 1.1.3 | 2004.04.01 | Átdolgozta: dn |
Kisebb frissítés. | ||
Verzió: 1.1.2 | 2004.03.30 | Átdolgozta: dn |
KT600 parancssoros hack hozzáadva, további bizonyítékok arra, hogy a hangprobléma javítása működik! | ||
Verzió: 1.1.1 | 2003.12.18 | Átdolgozta: dn |
Japán és portugál fordítás hozzáadva, a hangproblémák lehetséges javítása hozzáadva. | ||
Verzió: 1.1.0 | 2003.10.04 | Átdolgozta: dn |
Egy adag új információ és hivatkozás. |
Hogyan tegyük aktívvá bizonyos alaplapok/lapkakészletek esetén az Athlon/Duron/AthlonXP processzor energiatakarékos üzemmódját. Ez hatékonyan csökkenti a CPU és a rendszer energiafelhasználását, és a hőkibocsátást. (A zajt is csökkentheti, ha hővezérlésű ventilátort használsz a számítógép házban vagy a CPU-n.)
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 lekapcsolódik a front-side-bus-ról (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). Utoljára frissítve 2004.05.07.-én. 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: , ésAz új 2.4.22 rendszermag esetében:
+ . Legalább a következő opciót engedélyeznünk kell: .Néhány lapkakészlet az STPGNT szolgáltatást is támogatja, ha HLT jelzést észlel. Ezek az alaplapok/lapkakészletek nem igénylik az ACPI engedélyezését! Jelenleg visszajelzésre várok arra vonatkozóan, mely lapkakészletek működnek/nem működnek ACPI nélkül. Talán tesztelhetnéd az alaplapot, majd elküldhetnéd nekem az eredményt.
A parancssoros hackelés használatához a rendszermagban engedélyezni kell az ACPI támogatást rendszerint, de egyes esetekben ez nem szükséges. Az energiatakarékos üzemmódot közvetlenül parancssorból, újraindítás nélkül ki- és bekapcsolhatjuk. Ezt a következő parancsokkal tehetjük meg:
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) | 0x0003)))
kikapcsolás: setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) & 0xfffc)))
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 rendszermag-folt 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:
2.4.21 rendszermag-folt (köszönet Thomas Reinhardt-nak, amiért átírta 2.4.21-re)
2.6.5 rendszermag-folt amely támogatja az összes VIA lapkakészletet a KT600-ig (köszönet érte Sebastian Droege-nek amiért átírta a 2.6.5 rendszermaghoz, továbbá egyéb lapkakészlet támogatást adott hozzá)
Jelentkezzünk be root felhasználóként
cd /usr/src
Rakjuk fel a foltot: cat $path-to-patch/amd_cool.diff | patch -p0 (Az új 2.6.5 folt esetében: lépjünk be a linux könyvtárba, majd patch -p1)
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 a megoldás nem igényel ACPI támogatást.
Íme egy másik energiamegtakarító program, amely számos lapkakészletet támogat. Én nem teszteltem, de úgy hallottam működik. Ellenőrizd le... Ez is egy olyan program, amely képes használni az alaplapon lévő monitorozó lapkákat (úgy mint az lm-sensors csomag).
Ez egy olyan rendszermag modul, amely engedélyezi az energiamegtakarítást a 760MP többprocesszoros lapkakészleten. Megtalálod itt. Nem tudom milyen jól működik, de valaki küldött olyan levelet, miszerint működik. Azért ellenőrizd.
Rendben ... használjuk az egyik energiamegtakarítási lehetőséget, és ellenőrizni szeretnénk annak működését. Íme két módszer:
Ha hővezérlésű processzor ventilátorunk van, akkor a működést ellenőrizhetjük zaj hangosságával. Néhány percnyi üresjárat után újra működésbe hozhatjuk a processzort.
Körülbelül 20-30 másodperc múlva a ventilátor zajának erősödését kell észlelnünk, mialatt az gyorsabb menetbe kapcsol. Ne felejtsük el leállítani a while-loop ciklust egy kis idő elteltével (néhány perc), a Ctrl-C billentyűkombinációval.Én rendszerint ezt teszem:
lépj be root felhasználóként (root)
cd /usr/src/linux
majd adjuk ki a következő parancsot: while true; do make clean; make bzImage; done
A fenti eljárás a processzor hőmérsékletének monitorozására is használható (mint az lm-sensors vagy xmbmon).
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
USB problémák
valaki csipogásról számolt be
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 ...
Köszönet Michael Hamilton-nak, amiért bemutatta az ötlet működési elvét.
Ennek a javításnak a működését két ember jelentette, szóval úgy néz ki működik, de nem biztos, hogy mindig. Ha ismersz más megoldásokat, kérlek tudasd velem!
Lássuk hát: úgy néz ki, hogy a hang akadozása javítható az eszköz pci latecy timer maximális értékre állításával.
Először keressük meg a hangkártyához tartozó "pci-address"-t. Ezt a lspci-vel tehetjük meg. Keressünk valami "Multimedia audio controller" vagy "AudioPCI"-hoz hasonlót. Majd állítsuk be a (ehhez hasonlóan kellene kinéznie: 01:06.0 -> it stands for: bus:slot.function) hozzá tartozó latency timer-t a maximális értékre. This is done by setpci:
setpci -v -s "pci-address" latency_timer=ff
A Latency Timer-ről további információt itt található.
Talán más problémák megoldására is használhatjuk, mint például az USB, vagy a merevlemez-átviteli-lassulás problémák, de ezt jelenleg még nem próbáltuk. Nyugodtan próbálhatod ezt, (de ne tégy szemrehányást, ha nem működik, vagy valamimás romlik el) és jelentheted, ha működik. Az a legnagyobb probléma, hogy nekem nem jelentkezik ilyen hiba, így kipróbálni sem tudom a javítást.
Ha működik, akkor ezt a setpci parancsot a számítógép minden induláskor/újrainduláskor ki kell adnunk. A megoldás az lehet, hogy az init szkriptek egyikébe rakjuk be (az eszközvezérlő modul betöltése után!).
Köszönet Wijatmoko Prayitno-nak amiért bemutatta ezt!
Ez a javítás csak KT/KM333 és KT/KM400 lapkakészleteknél működik. Talán más VIA lapkakészletek esetében is működik. Kérlek értesíts, ha más VIA lapkakészleteknél is működik!
Ez elég egyszerű, a parancssoros hackhez hasonlóan működik:
bekapcsolás: setpci -v -H1 -s 0:0.0 70=$(printf %x $((0x$(setpci -H1 -s 0:0.0 70) | 0x08)))
kikapcsolás: setpci -v -H1 -s 0:0.0 70=$(printf %x $((0x$(setpci -H1 -s 0:0.0 70) & 0xf7)))
Ha működik, akkor ezt a setpci parancsot a számítógép minden induláskor/újrainduláskor ki kell adnunk. A megoldás az lehet, hogy az init szkriptek egyikébe rakjuk be (az eszközvezérlő modul betöltése után!).
Még több lapkakészlet leírásával és információval bővíteni a dokumentumot.
Információ közzététele az Athlon64 és Opteron processzorok energiamegtakarító rendszeréről.
Fordítások is készültek különféle nyelvekre. Néhányuk nem teljesen naprakész (értsd: erősen elavultak).
A spanyol fordítást Carlos Mayo készítette.
A brazíliai portugál fordítást Bruno Buys 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).
A japán fordítást Seiji Kaneko készítette.