Months ago, with Debian Squeeze, I tried to control the speed of my fans, but I had no luck: pwmconfig said There are no pwm-capable sensor modules installed. It's the same now with ArchLinux.
I'm using a custom kernel, compiled from the linux-ck AUR package, with ACPI enabled. The funny thing is that disabling ACPI in boot options (i.e. acpi=off) leaves the fan at its maximum speed; that way, the temperature is stable around 60 ºC. With ACPI enabled (both with and without the fan ACPI module) the fan is off until the temperature reaches 95ºC; then it starts at maximum, downgrades it to about 70ºC and offs again.
My question is the following: is ACPI needed in some way? I never suspend/hybernate the system. I don't need power management since -although it's a laptop- my computer is always connected to the AC without battery. I don't want CPU frequency scaling; I want my system to be full performance.
Or, if disabling ACPI is not recommended (as I have read somewhere), is there any way to tell the kernel to start with the fan when the temperature reaches a certain value?
My laptop is HP 6735s. The output of sensors is the following:
k10temp-pci-00c3 Adapter: PCI adapter temp1: +88.8°C (high = +70.0°C) (crit = +100.0°C, hyst = +95.0°C)
The processor is an AMD Turion (tm)X2 Dual Core Mobile RM-70. I use the kernel module to fetch temperature information about it.
P.S.: With the core repo kernel, there are no such problems with the temperature, although I would still prefer the fan to be more active. I believe there's no problem with that, is there? I bet it's better having the fan working at full speed than burning the CPU or the graphics card (the hottest components of my PC).
Thanks in advance. Best regards,
I've just found this thread, very close to mine. So I have some files in /sys, that seem to define the limits and the behavior of the fan according to CPU temperature values. I've tried modifying them (as root, of course), but got Permission denied! Maybe that's not the way to go? How can I tell the kernel I want fan speed at maximum until the CPU is about 50ºC? Aren't there any tweaks, configuration files...?
Last edited by Kalrish (2013-04-03 15:44:23)
I've solved it by enabling ACPI (ironies of life) in kernel configuration, and also CPU frequency scaling (oh, I hate this; why can't I just leave the processor at the maximum frequency, and make the fan work a bit? I don't like them being idle...).
I've added the 'acpi_cpufreq' module, which was only available after enabling 'processor' in ACPI modules. I also added 'thermal', and that way, another input device has been added to the output of sensors:
k10temp-pci-00c3 Adapter: PCI adapter temp1: +69.0°C (high = +70.0°C) (crit = +100.0°C, hyst = +95.0°C) acpitz-virtual-0 Adapter: Virtual device temp1: +69.0°C (crit = +105.0°C)
It's not the solution I was looking for, but, at least, the fan is not off now, so the temperature is about 70ºC. I will continue compiling and trying, though; I'm not going to mark this as 'solved' as my question is still not clear. I bet there *must* be a way of getting the clocks at maximum frequency, without frequency scaling, and the fan working. And there must also be a way of telling the kernel I want the fan faster. It's not sweet to get up every morning and have to go to the freezer, take some ice and put it under the laptop (whose CD-ROM and down-covers have already been put off...).
Why do you want to run the processors at maximum all of the time whether needed or not? Are your power bills too low or something?
You can use the "performance" CPUFreq governor. Or don't load acpi_cpufreq at all. Or just boot with acpi=off if it works for you.
I have finally found the issue.
Con Kolivas suggests having no CPU frequency scaling and letting the BFS do all the stuff (I may have misunderstood something…). It's here (I followed several desktop configuration suggestions as I do not use the battery at all).
So I disabled everything related to the processor and frequency scaling: the cpufreq kernel architecture *and* the ACPI processor module, which, in fact, implicitly disables the [ACPI] thermal module. That module was responsible of creating a virtual device, whose output was the same as 's.
With that 'device', the fan works "properly" (as I said, I'd like it to be more *active*). Without it… well, 95 celsius.
There must be a problem with . I thought the kernel was responsible of choosing the speed of the fan according to the temperature it read from the appropiate modules/drivers… or maybe it's ACPI!
I'm confused. For now, I'm going to check the source code and try to understand a bit (sensors outputs some limits related to the kernel module, that I tried to edit via /sys without luck).
Thanks to everyone!
P.S.: I just want my system to have the best performance it can offer. Of course, I don't want to damage it (no overclock. Never) but… is it harmful to let the processor run at its maximum frequency? I think not, with the appropiate cooling support.
Last edited by Kalrish (2013-04-01 15:53:47)
The k10temp driver is never used for power management. It only reads temperature directly from a sensor embedded in the CPU and makes this reading available to userspace.
Thermal is a driver for ACPI "Thermal Zones". TZ is an abstract thermal sensor and cooling device - the BIOS provides a black box code which reads current temperature from some source (in this case it seems to read it from CPU's sensor), another code which controls some cooling device (in this case it's the fan) and a table describing how the cooling device should be controlled depending on temperature. Kernel monitors temperature by periodically executing the first piece of code and controls fan using the second one.
Thanks for the explanation!
I have nothing to do, then. It's unlikely that I'm able to modify something related to the BIOS (neither I'd like to; too... risky, I guess). Sorry for the late response; marking as [Solved].
Thank you all!