Fan not working; Acer Aspire 5710
I have installed Slackware 12.2 on a Acer Aspire 5710 laptop.
The cooling fan never runs. The laptop came with MS Vista installed, which I used (or tried to) for a while; during that time the fan was working. Now when the machine gets warm enough to have started the fan under Vista, nothing happens. The directory /proc/acpi/fan is empty so it looks like a ACPI problem. I have read about the fan problem with the 5720 model when using 64-bit Linux. see http://ubuntuforums.org/showpost.php...&postcount=117 I am using 32-bit on a different model, however I did try the script supplied there. It appears to work, and gives the expected output without any errors. However, the fan still does nothing. Perhaps the memory address is wrong for my machine? If so, I have no clue how to find the correct address. I have to do something before my laptop fries. Any ideas, please? |
First, make sure '/etc/rc.d/rc.acpid' is executable.
Next, make sure to 'modprobe' the following modules: thermal processor fan if that works, put the modprobe commands in '/etc/rc.d/rc.local' to make them occur on every boot. |
Thank you very much for the reply.
I have checked that acpid is running. I should perhaps have mentioned in my original post that all other ACPI events are working normally. The modules "processor" and "thermal" are loaded automatically. I did notice some time ago however that the module "fan" was not being loaded. I modprobed it, but it made no difference. I believe that ACPI is simply not able to "see" the fan. I have downloaded and decompiled (using aisl) the DSDT from /proc/acpi/dsdt, and cannot find any method for operating the fan in the source code. However, temperature is being probed and updated, as I get a valid reading from /proc/acpi/thermal_zone/TZ01/temperature when I cat it. Yesterday I flashed the BIOS to the latest version available, hoping that might help. It didn't. I have also tried all kernel boot options that might possibly help, but nothing does. Also I have tried booting a different kernel. That did not help either. I am beginning to think that ACPI is simply broken as far as Linux is concerned on this computer. But I cannot begin to re-write the DSDT myself as I do not know enough about it. Perhaps there are alternatives online somewhere? This is getting serious. My laptop will be useful only as a paperweight if I cannot get this stupid fan working. I am completely out of ideas. |
Does it have an option in the BIOS to use APM instead of ACPI ? If so, try turning it on and use the 'acpi=off' kernel parameter (append it in lilo.conf).
|
Ah, no. I wish...
There is very little configurable in the BIOS. Nothing relevant to ACPI at all. APM seems to be completely unsupported. |
I dunno maybe try updating the kernel ?
|
I just wrote a kernel module to control fan speeds based on the Wistron LED control module for Acer laptops. It might work with your system.
Just build it with make and insmod wistron_fan.ko force=1 If it works your dmesg should say something like wistron_fan: 8 sensors and 2 fans detected |
Thanks for the kernel module.
I tried it. "insmod: error inserting 'wistron_fan.ko': -1 No such device" from dmesg: "wistron_fan: unknown BIOS detected: Acer - V1.50" Sorry, but many thanks! Getting desperate here. Does anyone have experience of those "laptop coolers" that plug in to USB for the power and have one or more fans to remove heat from the bottom of the machine? I'm thinking of buying one, in the hope it could keep it cool enough, perhaps, to stay below shutdown temperature. |
Maybe update your BIOS, it looks like that may be a factor.
I have a cooling plate, but its usefulness is mediocre, if you do got one make sure it has some serious fans. |
Did you load the module with force=1 ? I've coded it to only recognize my system at the moment so it will fail if you don't set force=1.
The only other time it should return an ENODEV error should be if it says "BIOS entry point not found" in dmesg |
Re BIOS: I have already updated it to the latest available -- which is more than a year old, but still the only one on the Acer site (version 1.5). It has not made any difference.
So, I have the latest BIOS, have tried several different kernels, have tried 2 alternative distributions of Linux, have tried every kernel boot option which might possibly help -- and nothing has made that crazy fan want to run. ACPI simply does not believe there is a fan device, and therefore assumes there is nothing to control. There is no /proc/acpi/fan, until I manually insert the fan module; then, the directory exists, but is empty. This tells me there is no fan device at all, as ACPI sees it. So it can never control a fan it does not believe to exist! I need a way to force it to run. ACPI has always been a huge pain in the butt. Life was so simple back in the good old APM days, and then Micro$oft had to come up with something "better" so they could break things under any other OS... |
Laptops generally don't have fans controlled through normal ACPI functions. They are all custom interfaces, such as i8k on Dell, etc. So even if your laptop was working correctly, Linux wouldn't normally be controlling anything, the motherboard EC would.
|
JMMS,
Sorry -- I somehow missed the part about using force=1 to insert your module. I just tried it; here is the result from dmesg -- wistron_fan: unknown BIOS detected: Acer - V1.50 wistron_fan: BIOS signature found at c00fdc60, entry point 000FDC6D wistron_fan: invalid sensor count: -156041216 So I am afraid it does not work on my machine. Is there any possibility of modifying it to make it do so? It could be a life-saver if it could be done... |
Sorry but I don't think I can make it work
Have you tried booting with acpi=off or acpi_os_name="Microsoft Windows XP" |
Quote:
|
Update: I now have the external cooler (fan tray), and have tried it out. In an ambient temperature of about 25°C, and while compiling a kernel, CPU core temperature was steady at about 55°C. So, under heavy load, the machine runs about 30° over ambient. I think the highest temperature in which I will need to work will be about 30°, so the machine should not get much hotter than 60°. I think this will be OK. I am guessing it be around 50° most of the time, going up to 60 occasionally. It should survive this, I believe. Would anyone like to comment?
(The kernel I compiled was the latest stable version. I booted the system with it, but fan cooling was still broken, unfortunately) |
Quote:
Sometimes it's just plain broken, and software won't fix it in time for usage. Powering the fan yourself might actually be your solution this time :) |
All times are GMT -5. The time now is 10:49 PM. |