Apr 9, 2011

Hp nx6325 (and friends) thermal problems solved

Hp nx6325 (and friends) thermal problems solved

Update 06-03-2007: You won’t need this script with a kernel >= 2.6.21.

Update 04-21-2007: I heard that you won’t need this script with a 2.6.21 kernel, I´m using a 2.6.20 kernel and the problem still exists.

Update 12-25-2006: Renamed the script as fancontrol-bd, because there already exists a program called fancontrol, written in perl

Update 12-14-2006: this method has been tested under various distros (Archlinux, Sabayonlinux, Fedora, Mandriva, Ubuntu) and it really works!

First of all, sorry for my bad English, I didn’t write this article in Italian just because a lot of people could benefit from it (lol).

Unfortunately it has been known that some Hp notebooks powered by AMD Turion 64 X2 / Sempron CPUs have got thermal problems. There are a lot of very good tutorials on how to install Linux on the Hp Nx6325 notebook (see Tuxmobil for details), and everybody has his own “solution” to the problem. What I found, following all the tutorials and applying all possible kernels and patches, is that the problem still persists, or is just reduced. My personal solution works and is tested with kernels >= 2.6.17 (I tried 2.6.17,, 2.6.19 with all possible patchsets [mm, ck, beyond, ..]).
I noticed that, with every proposed solution, even with a correct DSDT, there was still a big problem:sometimes the fans “forget” to start or to increase their speed. While I was trying several kernels and patchsets, I read this tutorial on tuxmobil, that suggests to add the following lines to /etc/rc.local:

With this lines you force your system at boot to set the polling frequency of the fans every 1 second. On my notebook that didn’t work.
Well, I was playing with echo and the polling frequency, and I noticed that a

Does refresh the state of the fans. Everytime. No matter if the temp is either rising or diminishing. No matter which value you set to the polling frequency.
The solution I propose is the following (I didn’t try it with the broken original DSDT, but I know a friend with my same notebook and the original DSDT, I’ll let you know ;-) ) yes it works even with a broken original DSDT!:

Create this bash script, as root, called fancontrol-bd, in /usr/bin

Make it executable:

Then add it to the startup of your system, for example in /etc/rc.local

Up from the next system start, your fan state will be updated every 20 seconds (you can play with this number, but I suggest to set it above 15 seconds because of the infinite loop). Maybe it won’t be perfectly synchronized with the temp state (i.e., it could rise the fan speed at 62 degrees instead of 60 degrees, or it could work at 60 degrees precise), but it works. Really. A smaller refresh-number will rise the precision, but I believe that you will be happy anyway ;-)
This method works even with a broken dsdt, but I remember you that a broken dsdt will keep your CPU temp very high anyway.
Please mail me if you find some problems with this method.

written by dgraziotin

Dr. Daniel Graziotin received his PhD in computer science, software engineering at the Free University of Bozen-Bolzano, Italy. His research interests include human aspects in empirical software engineering with psychological measurements, Web engineering, and open science. He researches, publishes, and reviews for venues in software engineering, human-computer interaction, and psychology. Daniel is the founder of the psychoempirical software engineering discipline and guidelines. He is associate editor at the Journal of Open Research Software, academic editor at the Research Ideas and Outcomes (RIO) journal, and academic editor at the Open Communications in Computer Science journal. He is the local coordinator of the Italian Open science local group for the Open Knowledge Foundation. He is a member of ACM, SIGSOFT, and IEEE.

  • nitro2k01 Sep 6, 2012 Reply

    Hooray! Finally something that works! Still doesn’t work OoB as of latest Debian. Though, I’m wondering if this is simply a software bug, or if the ultimate cause is a hardware-related fault that is just very common on nx6325s. (Ie, it would happen only on some units where something broke.)

    One comment on your instructions. My /etc/rc.local contained an exit 0 statement, and a note that the script should return exit 0 to indicate success. So, it’s safer to edit the file rather than just appending to it, to make sure the command is actually executed.

Leave a comment