📚 LinuxDocs
Topics:
All Pages8021X HOWTOACP ModemACPI HOWTOADSL Bandwidth Man..ATA RAID HOWTOATM Linux HOWTOAX25 HOWTOAccessibility Dev ..Accessibility HOWTOAdv Bash Scr HOWTOAdv Routing HOWTOAntares RAID sparc..Apache Compile HOWTOApache WebDAV LDAP..Assembly HOWTOAstronomy HOWTOAthlon Powersaving..Authentication Gat..Autodir HOWTOAviation HOWTOAvr Microcontrolle..BRIDGE STP HOWTOBTTVBackspaceDeleteBandwidth Limiting..Bangla HOWTOBash Prompt HOWTOBattery PoweredBelarusian HOWTOBelgian HOWTOBeowulf HOWTOBocaBogoMipsBootdisk HOWTOBridgeC++ dlopenC C++Beautifier HO..C editing with VIM..CDROM HOWTOCDServer HOWTOCable ModemCaudium HOWTOClone HOWTOCompaq Remote Insi..Compaq T1500 HOWTOConexant+Rockwell ..Cryptoloop HOWTODB2 HOWTODHCPDSL HOWTODVD Playback HOWTODebian Binary Pack..Debian JigdoDebian and Windows..Disk Encryption HO..Disk on Chip HOWTODocBook Demystific..DocBook InstallDocBook OpenJade S..Ecology HOWTOEmacspeak HOWTOEncourage Women Li..Encrypted Root Fil..Euro Char SupportEvent HOWTOFedora Multimedia ..Finnish HOWTOFirewall PiercingFlash Memory HOWTOFont HOWTOFramebuffer HOWTOGCC HOWTOGIS GRASSGlibc Install HOWTOHOWTO HOWTOHOWTO INDEXHP HOWTOHandspring VisorHard Disk UpgradeHardware HOWTOHighQuality Apps H..Home Electrical Co..IBM7248 HOWTOIO Perf HOWTOIP AliasIP Masquerade HOWTOIRCImplement Sys Call..Indic Fonts HOWTOInfrared HOWTOIngresII HOWTOInstall StrategiesInstallation HOWTOInstallfest HOWTOIntkeybItalian HOWTOJabber Server Farm..JavaStation HOWTOKerberos Infrastru..Kernel HOWTOKerneldKodak Digitalcam H..LDAP HOWTOLDP Reviewer HOWTOLILO crash rescue ..LVM HOWTOLeased LineLegoLinksys Blue Box R..Linux+Win95Linux+Win9x+Grub H..Linux+Windows HOWTOLinux Complete Bac..Linux Crash HOWTOLinux Gamers HOWTOLinux Modem SharingLinux Promise RAID..Linux i386 Boot Co..LinuxGL QuakeWorld..Lotus DominoR5MILO HOWTOMMBase Inst HOWTOMP3 CD BurningMail User HOWTOMajordomo MajorCoo..Man PageMasquerading Simpl..Medicine HOWTOMindTerm SSH HOWTOMobile IPv6 HOWTOMock MainframeModule HOWTOModulesMotorola Surfboard..Mozilla OptimizationMulti Distro DevNCURSES Programmin..NFS HOWTONFS Root Client mi..NIS HOWTONetMeeting HOWTONetwork boot HOWTONvidia OpenGL Conf..OLSR IPv6 HOWTOOnline Troubleshoo..Oracle 9i Fedora 3..PA RISC Linux Boot..PCTel MicroModem C..PHP Nuke HOWTOPPP HOWTOPagerPalmOS HOWTOPartitionPartition Mass Sto..Partition Mass Sto..Partition RescuePine ExchangePortSlavePost Installation ..Postfix Cyrus Web ..Pre Installation C..Print2WinPrinting HOWTOProcess AccountingProgram Library HO..Proxy ARP SubnetQmail ClamAV HOWTOQmail VMailMgr Cou..Querying libiptc H..RPM HOWTOReading List HOWTORedHat CD HOWTOReliance HOWTORemote BridgingRemote Serial Cons..SCSI 2.4 HOWTOSCSI Generic HOWTOSLIP PPP EmulatorSRM HOWTOSSL Certificates H..Scanner HOWTOScientific Computi..Scripting GUI TclTkSecure CVS PserverSecure Programs HO..Security HOWTOSecurity Quickstar..Security Quickstar..Serial Laplink HOWTOSerial Programming..Slovak HOWTOSmall MemorySmart Card HOWTOSoftware Proj Mgmt..Software Release P..Sound HOWTOSpam Filtering for..Speech Recognition..SquashFS HOWTOSybase ASA HOWTOSybase ASE HOWTOSybase PHP ApacheTCP Keepalive HOWTOTamil Linux HOWTOTimePrecision HOWTOTimeSys Linux Inst..Token RingTraffic Control HO..Traffic Control tc..UPS HOWTOUnix Hardware Buye..Unix and Internet ..UpgradeUsenet News HOWTOUser Authenticatio..VB6 to TclVMS to Linux HOWTOVPN HOWTOValgrind HOWTOVideoLAN HOWTOVim HOWTOVirtual WebWebcam HOWTOWikiText HOWTOWindows Newsreader..Wireless Link sys ..Wireless Sync HOWTOXDM XtermXDMCP HOWTOXFree Local multi ..XFree86 HOWTOXFree86 R200XFree86 Second MouseXFree86 Video Timi..XML RPC HOWTOXWindow Overview H..XWindow User HOWTOXinerama HOWTOXterminalsHtml singleI810 HOWTOLibdc1394 HOWTOOpenMosix HOWTOPhhttpd HOWTOPpp sshText

2. The Different Approaches

In the following section I present different approaches to achieve the same goal: power-saving on your Athlon/Athlon-XP based system. My recommended approach at the moment is to use the "command-line hack" or the athcool programm (the kernel patch is outdated and will not be developed any further, and the LVCool patch supports only one chipset family.)

Nearly all of these approaches will set the " Disconnect enable when STPGNT detected" bit in the north bridge of the chipset. All other work is done by the ACPI subsystem of the kernel which sends a STPGNT signal to the processor, when it enters the acpi-c2 idle mode.

If you haven't already got a kernel with ACPI support, you have to enable it in the kernel setup and then recompile the new kernel. You'll find the ACPI-options under General Setup+Power Management Setup->ACPI. You must have at least the following options: ACPI Bus Manager, System and Processor.

Or for the new 2.4.22 Kernel: General Setup+ACPI Support. You must have at least the following option: Processor.

2.6.x Kernel: Powermanagment options+ACPI. You must have at least the option Processor enabled. You shouldn't enable Thermal Zone !!

Some Chipsets also support a STPGNT if a HLT signal is detected. This Motherboards/Chipsets don't need ACPI to be enabled! At the moment i look for feedback which Chipsets work without ACPI and which need ACPI. Maybee you could test it on your Motherboard and send me a mail. (see Section 3.1)

2.1. The Command-line Hack (recommended)

To use the command-line hack you normaly have to enable ACPI in the kernel, otherwise it is mentioned. No reboot is needed to enable the Powersaving. You could enable/disable it from the command line with this commands:

on KT133/133A, KX133, KL/KLE133, KM/KN133, ...: (needs definitively acpi enabled)

enable: setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) | 0x80)))

disable: setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) & 0x7f)))

on KT266/266A/333,KM266/266A/333, ...:

enable:

setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) | 0x80))) .:: slides.com ::.

setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) | 0x02)))

disable:

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)))

on KT333CF/KT400/KT400A/KM400/KM400A/KT600:

enable:

setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) | 0x80))) .:: www.hogwartsishere.com ::.

setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) | 0x02)))

disable:

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)))

on KT880:

enable:

setpci -v -H1 -s 0:0.0 82=$(printf %x $((0x$(setpci -H1 -s 0:0.0 82) | 0x80)))

setpci -v -H1 -s 0:0.0 85=$(printf %x $((0x$(setpci -H1 -s 0:0.0 85) | 0x02)))

disable:

setpci -v -H1 -s 0:0.0 82=$(printf %x $((0x$(setpci -H1 -s 0:0.0 82) & 0x7f))) .:: sub4sub.net ::.

setpci -v -H1 -s 0:0.0 85=$(printf %x $((0x$(setpci -H1 -s 0:0.0 85) & 0xfd)))

on SIS730/733:

enable: setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) | 0x01)))

disable: setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) & 0xfe)))

on SIS735/740/745/755:

enable: setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) | 0x0003)))

disable: setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) & 0xfffc)))

on SIS741/741GX/746/748:

setpci -v -H1 -s 0:0.0 6C=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6C) | 0x0003)))

disable:

setpci -v -H1 -s 0:0.0 6C=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6C) & 0xfffc)))

on Nforce:

enable:

setpci -v -H1 -s 0:0.0 E7=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) | 0x06))) [React Community]

disable:

setpci -v -H1 -s 0:0.0 E7=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) & 0xf9)))

on Nforce2: (works without acpi enabled)

enable: setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) | 0x10))) .:: mangatoto.org ::.

disable: setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) & 0xef)))

on AMD751 and AMD760/761:(not for the 760MP!!!)(works without acpi enabled)

enable: setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) | 0x06)))

disable: setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) & 0xf9)))

2.2. The coolrun shellscript (recommended)

coolrun is a small shellscript which uses the command line hacks and does all the work for you. It is developed/maintened by Grozdan Nikolov and based on this HOWTO.

You can read more about it (and download it) here: https://sourceforge.net/projects/coolrun/

2.3. The Athcool Program (recommended)

Athcool is a small program which performs the same task as the [ASP.NET Definition] setpci commands above. It supports the same chipsets and detects what chipset you have, issuing the right settings in the chipset to get the power-saving to work.

You can read more about it (and download it) here: http://members.jcom.home.ne.jp/jacobi/linux/softwares.html I am not the Author of this program!

2.4. BIOS updates

On some newer boards the manufacturer provides a BIOS update which sets the needed bit/bits in the chipset of the board (or let you choose in the BIOS-setup whether it should be enabled). Refer to the homepage of your motherboard manufacturer to see if such a BIOS-update is available.

2.5. Kernel Patches

The patch is based on another patch (from Jan Niehusmann) I found on the Newsnet. I modified the patch to also support the KT266/266A chipset. By the way, my patch does the same as the command-line hack, except that the Patch does it from within the kernel. This is why I recommend using the command-line hack, which is really simple to use and you don't have to modify your kernel.

Ok... now step by step, here's how to apply the patch:

  1. First you have to download the patch:

    Kernel Patch for 2.4.17

    Kernel Patch for 2.4.21 (thx to Thomas Reinhardt for porting it to 2.4.21)

    Kernel Patch for 2.6.5 which supports all Via Chipsets up to the KT600 (thx to Sebastian Droege for porting it to 2.6.5 and adding the other Chipsets) .:: vortexgenics.co.uk ::.

    Kernel Patch for 2.6.9 which supports all Via Chipsets up to the KT600 (thx to Alexander Hug for porting it from 2.6.5 to 2.6.9)

  2. Login as root

  3. cd /usr/src

  4. Apply the patch: cat $path-to-patch/amd_cool.diff | patch -p0 (The new 2.6.5 Patch: cd to linux and patch -p1)

  5. cd linux

  6. Make the new kernel

  7. Reboot, and at the kernel boot-prompt, enter the statement amd_disconnect=yes . This is because there are known bugs within the Athlon processor, which could cause problems on several boards. You should test the patch, and if it works, you can append the statement .:: participer.valdemarne.fr ::. amd_disconnect=yes to the file /etc/lilo.conf.

2.6. The LVCool Solution

LVCool is a small port of the Windows programm VCool. It only supports the KT133/133A and KX133 chipset and I can't provide support for it. You can download it here. This solutions needs no ACPI compiled in the kernel.

2.7. The FVCool Program

Here is another Powersaving program which supports several chipsets. I didn't test it by myself but i heared it works. Check it out ... There is also a program provided with which you could use the onboard monitoring chips on some motherboards (like the lm-sensors package).

2.8. AMD 760MP Powersaving

There is a kernel module which enables powersaving on the 760MP multiprocessor chipset. You could find it .:: www3.uwsp.edu ::. here. I don't know how good it works, but i got at least one mail from someone who said it works for him. So check it out.

Share or Research:

Share on FB Post to X LinkedIn 🤖 Ask AI about this