Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

My fan doesn't run in Linux. I'm worried that the laptop might turn off if the temperature gets critically high.

I ran the following command:

dmesg | grep -I fan

This gave me:

ACPI: Fan [FAN0] (off)
ACPI: Fan [FAN1] (off)

The directory /proc/acpi/fan doesn't exist. What can I do to get my fan working?

share|improve this question
    
I think this would depend on your kernel and hardware. Are there any ACPI related kernel modules that you need to insert to get them up? I, for example, have the thinkpad_acpi module which makes all these things appear in /proc. Also. I don't think your fan will be off (unless it's got a hardware problem). –  Noufal Ibrahim May 4 '11 at 7:10
    
Is this only in Linux ? Have you taken a look at what your bios say about this ? –  Coren Jan 27 '12 at 10:05
add comment

migrated from superuser.com Jan 26 '12 at 3:33

This question came from our site for computer enthusiasts and power users.

3 Answers

The fan gets usually controlled not by the CPU and OS, but by the System Managagement controller. This way it works even if the OS is failing.

Unfortunately this means that "fan off" errors ususally are hardware problems. Read: The fan (assembly) needs replacement.

The only exception would be a very broken ACPI implementation that can shut down the fan. In this case the fan will run in BIOS. I have not heard of such a configuration, though.

share|improve this answer
1  
I don't think that's the case. For example, on my macbook pro the fan control spins up much much more even after a cold boot compared to windows and then later gets slowed down. After an update to linux it seems to run a little closer to the way windows does now. Definitely fan speed is software driven. –  Matt H Jan 26 '12 at 2:27
    
@MattH, often times motherboard vendors have Windows software you can install to control the fans, but by default, they are controlled by the hardware. –  psusi Feb 26 '12 at 19:38
add comment

It's possible to control the fan using the embedded controller. Some of the cpu temperature and fan control register may be exposed to the ec. In Linux you can get very easy access and dump those register. My laptop didn't work either and the ACPI is broken by design and the fan is mainly controlled by the BIOS and turns on forever. In Windows you can download the RW everything tools to check the ec. With the RW everything tool you can also try to modify some values. This worked for my box and I can control the fan automatic and manual mode and speed.

share|improve this answer
add comment

Fans are supposed to be managed by ACPI, which allows the kernel to cooperate with the bios to monitor temperature and adjust the fan speed automatically using bios provided rules. Unfortunately, I have yet to see a single bios vendor actually comply with the standard. You might look in /sys/class/thermal and see if there are any fans that show up under there and if they can have their settings changed. Generally the bios ACPI tables don't provide the fan interfaces and just leave it up to a hardware controller to manage.

Many of these hardware controllers can be detected by the lm-sensors package. You run sensors-detect and it will probe for known controllers and can configure the correct driver to be loaded to manipulate it. This often results in sensors being able to report various temperature and voltage readings, and the fancontrol script ( packaged separately in Debian/Ubuntu ) can be configured to manipulate the fan speed in response to the temperature readings.

Many of these modules require you to add acpi_enforce_resources=lax to the kernel command line to load.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.