My Softwares on Linux

Japanese page is here.
MMX/3DNow! patch for xmms is here.



athcool is a small utility, enabling/disabling Powersaving mode for AMD Athlon/Duron processors.

Since enabling Powersaving mode, you can save power consumption, lower CPU temperature when CPU is idle.

Powersaving works if your kernel support ACPI (APM not work), because athcool only set/unset "Disconnect enable when STPGNT detected" bits in the Northbridge of Chipset. To really save power, someone has to send the STPGNT signal when idle. This is done by the ACPI subsystem when C2 state entered.

WARNING: Depending on your motherboard and/or hardware components, enabling powersaving mode may cause:

If you met those problems, you should not use athcool. Please use athcool AT YOUR OWN RISK!

Supported Chipsets

I have tested VIA KT266A (EPoX EP-8KHA+) and nVIDIA nForce2 (EPoX EP-8RDA+). Some chipsets have received the report from users.

VIA KX133, KT133/KM133/KL133/KN133(A)OK (KT133)Thanks X
OK (KX133)Thanks Brainstorm (EPoX EP-7KXA)
OK (KT133A)Thanks Masa (ABIT KT7A)
VIA KT266/333(A), KM266, P/KN266OK (KT266)Thanks Sargeant (MSI K7T266, on-board AC97, NVIDIA FX5200)
OK (KT333A)Thanks Kronos (EPoX EP-8K3A)
OK (KM266)Thanks Connelly (Biostar M7VIQ)
OK (KN266)Thanks Schachtschabel
VIA KT400(A)/600, KM400OK (KT400)Thanks Fiedler (MSI KT4V-L)
OK (KT600)Thanks Campbell (Gigabyte 7VT600)
Thanks Pittich (Microstar KT6)
Thanks Larson (Soyo KT600 DRAGON Ultra Platinum)
OK (KM400)Thanks toki (GA-7VM400M)
NG (KM400A)Seeing freezes (Thanks Jacobson. athcool-0.3.10, A7V400-MX SE, Duron 1GHz)
VIA KT880OK (KT880)Thanks VBird (ASUS A7V880, Athlon XP 3000+)
SiS 730/733OK (SiS730)SiS730 with Mobile Athlon XP, Thanks Mueller
SiS 735/740/745/755OK (SiS740)Some sound skipping issues occurred. And it is almost eliminated by setting the PCI latency timer of the sound card to 64 using the setpci tool (Thanks Herrmann)
OK (SiS740)works fine, no problem with sound card. (Thanks Kronos. ASUS L3D series)
NG (SiS735)'athcool on' causes a high frequent constant noise from the mainboard(ECS K7S5A) - not via speakers - and CRT flickers (Thanks Carlo)
NG (SiS740)Enabling athool, the system begins to perform apparently random I/O on the disk and after a while the system crashes. On reboot, large parts of the filesystem are gone, and the kernel panics for being unable to find init, libc and so on. (Thanks bonacci. ASUS L3350M)
SiS 741/741GX/M741OK (741)Thanks Bezerra
NG (741GX)Freeze immediately (Thanks Fausto. athcool-0.3.10, PCChips M863G)
SiS 746(FX)/748OK (746)Disc I/O seems to be slowed a bit. (Thanks Michaelsen, ECS L7S7A2)
OK (746FX)Thanks toki (Iwill K7S2)
OK (SiS748)Thanks Peichl (ASRock K7S8XE+)
nVIDIA nForce seriesOKThanks Herrmann
nVIDIA nForce2OKThanks Herrmann
NGHard drive is locking and sometimes it gets corrupted (Thanks Santos. athcool-0.3.9, ASUS A7N8X-E Deluxe)
OKdid not experience problems for roughly 8 months (Thanks Werner. athcool-0.3.11 w/ SuSE 10.0, ASUS A7N8X-E Deluxe)
AMD-751/761OK (AMD751)Thanks Smith
NG (AMD751)system freezes (Thanks Bornemann, Asus A7M)
NG (AMD760)PC hangs shortly (from 2 minutes to 2-3 hours) (Thanks Krecicki, Asus A7M-266)
OK (AMD761)Thanks Nakata
AMD-762OKChipset has not support HALT disconnect, so Powersaving only enables when S1 or S3 state entered.
HALT disconnect is worked (Thanks Lorenz. ASUS A7M-266D)

If you have sound skipping problem, it may be improved by changing the following BIOS settings:

  1. Enable PCI Delayed Transaction
  2. Enable PCI Master Read Caching
  3. Change PCI Latency Timer to 64 of your sound card

Download & Installation

Download source file, and unpack it. move source directory, and make, and make install.
If you want to make rpm package, rpm -tb athcool-0.x.x.tar.gz (rpmbuild -tb athcool-0.x.x.tar.gz (rpm-4.x)).

Note: required libraries and header files of pciutils, when building athcool. If you installed Red Hat Linux, you should install pciutils and pciutils-devel packages before making athcool.


/usr/sbin/athcool [options]

supported option:

onenable Athlon Powersaving mode
offdisable Athlon Powersaving mode
statquery Athlon Powersaving mode
listlist supported chipsets
fixupfixup some problems for specific hardwares (EXPERIMENTAL)

Note: install and use athcool, you need super user privilege.

Related and Useful links

Change Log

0.3.12 : 2007/11/05
  • fix freeze problem on SiS741 series chipsets
    (I cannot test, but it seemed to work. Thanks Aisenbrey and Gajownik)
0.3.11 : 2005/06/18
  • replace 'Copyright' to 'License' in athcool.spec (for Fedora Core 4)
    ( program has no change. )
0.3.10 : 2005/02/19
  • use TP_WORD instead of TP_LONG (for AMD-751/761/762).
    TP_LONG (32bit addressing) didn't work? (Thanks Lorenz)
  • add 'Halt Disconnect' support on AMD-762 (Thanks Lorenz)
  • 'Coolon' web site was moved
0.3.9 : 2004/12/31
  • rewrite 'read & write register'
    • check register value after writing
  • fix compilation problem with Fedora Core 3
0.3.8 : 2004/09/04
  • add VIA KT880 support (Thanks Rjeousski)
  • rewrite WARNING messages
    I received a bug report that hard disk was massively corrupted when tried athcool on ASUS L3350M (SiS 740 based laptop).
  • rewrite manpage (Thanks Boullis)
0.3.7 : 2004/06/26
  • add SiS 741/741GX/M741 support (Thanks Bezerra)
0.3.6 : 2004/06/12
  • fix nVIDIA nforce2 fixup value (Thanks Nakamura)
0.3.5 : 2004/05/15
  • add fixup option (EXPERIMENTAL)
    • fixup nVIDIA nForce2 C1 HALT disconnect problem (Thanks Herrmann)
    • fixup VIA audio problem
  • fix a bug in forceid (Thanks Boullis)
0.3.4 : 2004/04/24
  • merge Prayitno's Patch. This change can on some systems fix the audio issues experienced with VIA chipsets. (Thanks Prayitno)
  • if you want to disabled it, comment-out "#DEFS += -DFIX_AUDIO=1" in Makefile
0.3.3 : 2004/01/24
  • add VIA P/KN266 support (Thanks Schachtschabel)
  • clean up Makefile etc.
  • add init.d script (not installed by default)
    (experimental. You should check working athcool fine, before enabling init.d script)
  • add forceid option (manual specification of chipsets. disabled by default)
    athcool on|off|stat force RegID
    DANGEROUS. Must not use this option, unless it is sure that it has same config as your chipsets.
0.3.2 : 2003/12/20
  • add VIA KM400 support (Thanks mikell)
  • add simple man page
0.3.1 : 2003/09/23
  • add WARNING message
  • add 'DESTDIR' variable in Makefile
  • merge Zuckschwerdt's patch
    • fix compilation problem with gcc-3.3
0.3.0 : 2003/06/21
  • add SiS 748 support (not tested) : register info from CoolOn 1.2.2 beta3
  • display values before and after changing the register
  • merge Nakata Patch (Thanks Nakata)
    • fix bug which may fail in recognition of a chipset
    • clean up whole codes for improving readability and removing hidden bugs
0.2.0 : 2003/03/01
  • add listing supported chipsets
  • add nVIDIA nForce/nForce2 support (not tested) : register info from CoolOn 1.2.2 beta2
  • separate Chipset ID and Register configuration (because some chipsets has different ID, but same config)
0.1.1 : 2002/10/12
  • fix a bug (cannot disable powersaving)
  • first release


mp3lib is a MP3 decoding library, based on MPlayer-0.90pre7 (great movie player). MPlayer's mp3 decoding engine is very fast, and optimized SIMD instructions (SSE/MMX/3DNow!Ex/3DNow!).

mp3lib provides as follows:

MP3 decode library (
tiny MP3 player
tiny input plugin for xmms (under working)
If you want to use this library from MPlayer, apply this patch, and type './configure --enable-external_mp3lib' before compiling MPlayer.

Download & Installation

Download source file, and unpack it. move source directory, and make; make install, or rpm -tb mp3lib-x.x.x.tar.gz

Note: mp3lib is required x86cpucaps.

0.2.1 : 2003/12/20
fixed noisy sound problem if SIMD decoder selected
fixed pentium optimized decoder problem (now it can be used, but disabled by default)
not compatible with current MPlayer-1.0prex
affected changes from MPlayer-1.0pre2 (not affected from 1.0pre3)
add layer1 support
move dct36_3dnow, dct36_k7 into gcc assembly
update layer3.c
some small changes
0.2.0 : 2003/02/15
update layer2.c MPlayer-0.90rc4
update MPlayer patch (for using this library) for MPlayer-0.90rc4
fix mp3lib.spec (change requires and BuildRequires, etc.)
(xmms plugin) add configuration dialog for selecting SIMD/FPU decoders
0.1.11 : 2003/02/01
update dct64_k7.c, decod386.c from MPlayer-0.90rc3
rename 'decwin[s]' to 'mp3lib_decwin[s]' from MPlayer-0.90rc3
(decod386.c, decode_MMX.c, decode_i586.c, tabinit.c tabinit_MMX.c)
fix some problems (sr1.c)
update MPlayer patch (for using this library) for MPlayer-0.90rc3
update dct64_MMX.c, decod386.c, decode_i586.c, tabinit_MMX.c from MPlayer-0.90rc2 (also sr1.c partially updated)
update MPlayer patch (for using this library) for MPlayer-0.90rc2
0.1.9 : 2002/12/22
update dct64_3dnow.c, dct64_k7.c from MPlayer-0.90rc1
update MPlayer patch (for using this library) for MPlayer-0.90rc1
0.1.8 : 2002/11/09
update sr1.c, decod386.c from MPlayer-0.90pre9
update MPlayer patch (for using this library) for MPlayer-0.90pre9
0.1.7 : 2002/10/05
change public variables (MP3_samplerate, etc.) to struct MP3Info
update MPlayer patch
change mp3_gettag(), stripping spaces in title, artist, etc.
rewrite MP3_PrintTAG(), now you can call this when playing
removed MP3_GetSongLength(), added MP3_GetSongInfo()
(mp3dec) setlocale
(xmms plugin) fix incorrect song_time and song_info problems
0.1.6 :
added jconv(Japanese Kanji Conversion) support
(mp3dec) fix bug, mp3dec cannot play plurality mp3 files (with esound)
0.1.5 : 2002/09/28
rewrite mp3_read() in sr1.c
MPlayer patch (for using this library) is enclosed
0.1.4 :
added MP3_GetSongLength()
(import dxhead etc. from xmms-1.2.7)
0.1.3 :
mp3dec and xmms_plugin split into each directories.
* cannot play with 'mplayer' ....
0.1.2 :
added Xmms input plugin
0.1.1 :
rewrite switching each of simd functions in fastmemcpy
0.1.0 :
(mp3dec)added esound support
fix bug, mp3dec cannot play plurality mp3 files.
update dct64_k7.c, decod386.c from MPlayer-0.90pre8
added mp3 decoder sample 'mp3dec'
import 'getlopt' and 'playlist' from mpg123-pre0.59s
implement -z and -Z options
implement --force-sse, --force-mmx, --force-3dnow, --force-3dnowex
(find a bug, only one file could play)
separate from sr1.c to tabinit.c getbits.c
0.0.7: (based on 0.0.5)
extern cpucaps(and decoding mode), and use them other modules.
enabled fastmemcpy
testing not including any files from 'sr1.c'
some files ok, but some not
* slightly noisy, giving up
unified synth_1to1xxx functions data type.
fix SIGSEGV problem even if select FPU decoders
(1to1_pent still SIGSEGV, so disabled 1to1_pent)
rewrite debug message 'printf' to 'DBGMSG'
remove cpudetect, add x86cpucaps
fastmemcpy(aclibXXX.c) moved into src directory
modified for enabling all SIMD decoders (automatic and force selecting)
cpudetect moved into src directory.
remove mp_msgXXX
* SIGSEGV, if select FPU decoders (MMX/SSE/3DNOW/3DNOWex are OK)
imported from MPlayer-0.90pre7
simply shared version
(I found mp3lib(MPlayer-0.90pre7) disabled RUNTIME_CPUDETECTION for selecting SIMD decoders, always using generic FPU decoder)


sensor_applet is a GNOME applet that displays lm_sensors statistics.


Download & Installation

Download source file, and unpack it. move source directory, and ./configure; make and make install (become root if necessary).
Or rpm -tb sensor_applet-xxx.tar.gz, and rpm -ivh (your RPMS/i386/ directory)/sensor_applet-xxx-1.i386.rpm


x86cpucaps is a library, which investigates CPU information using 'cpuid' in assembler. This library can detect CPU IDs (Family-Model-Stepping), vender name strings ("GenuineIntel", "AuthenticAMD", and so on), and SIMD capabilities. Furthermore, there are functions, estimating optimal Processor Type (for building kernel), and estimating optimization flags for gcc.

More detail, see README in source files.

Download & Installation

Download source file, and unpack it. move source directory, and make; make install, or rpm -tb x86cpucaps-x.x.x.tar.gz

cpucaps (sample application)

running on Athlon XP

$ cpucaps

CPU info : 6 - 6 - 2 (AuthenticAMD)
CPU Model Name : AMD Athlon XP/MP/4 (Palomino)
Recommended Kernel building option : CONFIG_MK7
Recommended gcc (3.1100) target : -march=athlon-xp -m3dnow
checking Intel SIMD capability : SSE
checking AMD 3DNow! capability : 3DNow! extensions

Testing OS support for SSE... yes.
Testing OS support for SSE unmasked exceptions... yes.
Tests of OS support for SSE passed.

SIMD capabilities checking results
SSE2:0 SSE:1 MMXext:1 MMX:1 3DNow!Ex:1 3DNow!:1

$ cpucaps -k

$ cpucaps -gs
-march=athlon-xp -m3dnow

$ cpucaps -gs -w2.95

$ cpucaps -h
Usage: cpucaps [OPTIONS]
-h, --help this help
-w, --withgccversion=GCCVER specify gcc version.
'cpucaps -w 2.953', if you use gcc-2.95.3
-g, --outgccopt print optimal gcc target only
-s, --outsimdopt print optimal gcc SIMD options only
-k, --outkernelopt print optimal ProcessorType for
kernel building only
-v, --version print version and exit

running on Pentium III (Katmai)
$ cpucaps

CPU info : 6 - 7 - 2 (GenuineIntel)
CPU Model Name : Pentium III/Pentium III Xeon/Celeron
Recommended Kernel building option : CONFIG_MPENTIUMIII
Recommended gcc (3.1100) target : -march=pentium3 -msse
checking Intel SIMD capability : SSE
checking AMD 3DNow! capability : none
0.3.6: 2004/04/24
support new optimization flags in GCC-3.4 (not tested)
0.3.5: 2003/03/01
fix compilation problem (check_sse.c) (Thanks Mr. Zagorac)
0.3.4: 2002/12/22
fix some bugs (check_sse.c) (Thanks Mr. Lichvar)
0.3.3 : 2002/11/17
fix getting wrong result of CPU SSE support (Mr. Vladimir, Dr.K)
0.3.2 : 2002/10/05
support MingW environment (makes static library and cpucaps.exe)
0.3.1 : 2002/09/14
add 'x86cpucaps_simdall' function
merge 'check_sse.c' from MPlayer
0.3.0 : 2002/09/07
add 3DNow!ex detection
minor version up (incompatible previous versions)
0.2.2 : 2002/08/31
fix getting value when 'cpucaps -w `gcc -dumpversion`' with pgcc or egcs
0.2.1 : 2002/08/24
add -w option (specify gcc version)
add automatic detection of optimal gcc arch
add automatic detection of optimal gcc SIMD flags
0.1.8 : 2002/08/16
add automatic detection of optimal processor type for kernel building
making shared library and console util for checking x86 CPU SIMD support

I don't receive any mail from free providers ( etc.), because of rejecting SPAM
Return to topReturn to top (all other pages are written in Japanese).