Package: thinkfan
Version: 0.7.1-2
Severity: important
Tags: patch
I have a lenovo thinkpad x201. I am able to make the cpu
overheat if I run processes that are very intensive.
This is because the level 7 fan speed (~4500RPM)
is much lower than level disengaged speed (~5500RPM).
It is not possible to specify explicitly in thinkfan.conf
something like:
(disengaged, 75, 32767)
However, on my machine, I can enter disengaged mode by:
echo level 127 /proc/acpi/ibm/fan
thinkfan does accept the definition:
(127, 75, 32767)
but if the temperature ever rises sufficiently so that it
gets called, it dies with the error:
/proc/acpi/ibm/fan: Invalid argument
When I echo level 127 directly from the commandline I do not
get this error, so I think thinkfan is actually sending some
other string.
My C is very rusty, but in system.c:setfan_ibm(), I see that
write is hardwired to be precisely 8 bytes. Won't this also
have a problem when buf contains level disengaged ?
I guess there are two bugs/problems:
1. It should be possible to set maximum fan speed, either by
level disengaged (preferred) or something like level 127.
2. thinkfan dies instead of just warning about this error.
A fix for the first problem seems to be to change system.c:
--- system.c2010-06-14 00:31:18.0 +0100
+++ system.c.new2011-01-21 17:50:38.0 +
@@ -83,7 +83,7 @@
else {
if (unlikely(cur_lvl == INT_MIN)) strcpy(buf, level
disengaged\n);
else snprintf(buf, 10, level %d\n, cur_lvl);
- if (unlikely(write(ibm_fan, buf, 8) != 8)) {
+ if (unlikely(write(ibm_fan, buf, strlen(buf)) != strlen(buf))) {
showerr(IBM_FAN);
message(LOG_ERR, MSG_ERR_FANCTRL);
errcnt++;
After I recompile with this change, thinkfan no longer dies
when I use the 127 config line and the cpu gets hot, and if I
cat /proc/acpi/ibm/fan, level is reported as disengaged.
(This is also obvious from the increased fan volume.)
-jonathan
-- System Information:
Debian Release: 6.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages thinkfan depends on:
hi libc6 2.11.2-9 Embedded GNU C Library: Shared lib
thinkfan recommends no packages.
thinkfan suggests no packages.
-- Configuration Files:
/etc/default/thinkfan changed:
START=yes
DAEMON_ARGS=-q
/etc/thinkfan.conf changed:
(0, 0, 45)
(1, 40, 50)
(2, 45, 54)
(3, 49, 58)
(4, 53, 61)
(5, 56, 63)
(6, 58, 65)
(7, 60, 80)
(127, 75, 32767)
-- no debconf information
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org