Yes – to answer your question – cat /proc/acpi/ibm/fan does …

Thursday, 28th March 2024

Comment on Controlling fan with Thinkfan on Lenovo Thinkpad R61 on Debian GNU/Linux (adjusting proper fan cycling) by Alan Chambers.

Yes – to answer your question – cat /proc/acpi/ibm/fan does show level 7 and the fan speed is about 3500, which is consistent with my various tests. The only setting I’ve found that drives the fan faster is “level disengaged”.

So, in a spirit of adventure, I’ve made a very small mod to your code, adding a line that tests for a new level 99 in the config file which I’ve set to cover the range 70 to 999. In the code where the level is set (in system.c in the function setfan_ibm()) I’ve copied the code you have that sets “level disengaged” if cur_lvl == INT_MIN, adding a line that also checks for cur_val == 99, and also setting “level disengaged” in that case too.

Now, when I do my backup, the fan quickly notches up to level 7 (3500rpm) and then after a couple of minutes as the temperature rises, sets “level disengaged”, which puts the fan speed to 5000rpm, which manages to keep the temperature in the low 80s, rather than the high 90s as before.

If I only understood the purpose of “level disengaged”, I’d be happy!

(By the way, this is the first C code I’ve ever compiled on a Linux system – I’ve been writing Java for so many years now. I was surprised how easy it was.)

Alan Chambers Also Commented

Controlling fan with Thinkfan on Lenovo Thinkpad R61 on Debian GNU/Linux (adjusting proper fan cycling)
Hi – yes – thanks for these ideas. I’ve just played with setting ionice to 3 (I hadn’t come across that possibility before) and also setting nice to 19, to reduce it’s priority all round. I tried another backup the temperature was still well into the 90s. I guess as not much else was running lowering priorities wasn’t going to make much difference.

My biggest puzzle is why setting Level 7 doesn’t drive the fan at full speed as it’s supposed to. I think if Thinkfan could somehow persuade the fan to go at full speed (rather than the 3500rpm that seems to correspond to Level 7), my troubles would be over!

Thanks again for your suggestions.

Alan


Controlling fan with Thinkfan on Lenovo Thinkpad R61 on Debian GNU/Linux (adjusting proper fan cycling)
Hi. My recent upgrade to Ubuntu 11.10, which now has DejaDup built-in quite nicely as its backup tool, caused me to discover that my T500 is running too hot – in fact, when doing a backup it frequently shuts down because it’s reached 100C. I discovered all this gradually from looking at the logs for the reason for the shutdown, then googling and finding a lot written about ThinkPads overheating with Linux.

So, having understood the issues better, and played with setting different values to /proc/acpi/ibm/fan, I realised I needed a utility to automatically manage temperature and Thinkfan seems perfect (well, actually, the perfect solution would be for the Linux kernel to manage temperature better but I can’t make that happen!).

I noticed, when playing with setting “level” in /proc/acpi/ibm/fan, that the value of “disengaged” causes the fan to run at about 5000rpm, whereas level 7 only results in around 3500rpm. By the way, before I touched any of these things, it never went about about 3100rpm.

My problem is that Thinkfan has a series of fan speeds that one sets in the conf file, of which the maximum is 7, which on my machine results in a fan speed of 3500rpm. During a backup, this still wasn’t enough to keep the machine cool – some of the sensors still reached well into the 90s before I stopped the backup. With the fan manually controlled to 5000rpm (i.e. “disengaged”), the temperature remained in the 60s and 70s.

Do you know why Level 7 doesn’t result in the maximum fan speed? Is there anything I can do in Thinkfan to access the higher speeds automatically when needed?

It’s a potentially very useful tool – thanks for sharing it.

Alan


Share this on:

Comments are closed.