At first I had some trouble installing acerhdf in Maverick (Ubuntu 10.10), but I got it working.
The problem turned out to be that my laptop (an Acer Aspire 7730G) was simply not in the list of recognized pc's, but it was easy to add it to the list.
This solution will probably work for any Acer, Gateway or Packard Bell suffering from erratic fan behavior.
Of course tampering with the code (which is what I did) is at your own risk.
Please note that if you use Ubuntu's automatic update system, and you have manually installed kernel modules (like this one), every time that Ubuntu installs a new kernel, you will have to reinstall all manually installed kernel modules as well. (In my case, that also includes a NVidia video driver.)
If you leave the sources where they are after installing, it will suffice to perform steps 7, 9 and 10. (Please take care to use the right parameters when inserting the module.)
Here's the recipe to install acerhdf:
Step 1
Open a terminal. You normally automatically start in your home directory, i.e. /home/yourname/
Step 2
Determine which linux kernel version you are using:
In my case, that was 2.6.35-23-generic
Step 3
Get everything you need to build a kernel module:
Code:
sudo apt-get install build-essentials linux-kernel-headers
Step 4
In a web browser, download the appropriate sources of acerhdf from http://www.piie.net/index.php?section=acerhdf
For my kernel, which is linux-2.6.30+, that is http://www.piie.net/files/acerhdf_kmod-0.5.25.tar.gz
Move the downloaded file to your home directory if it is not already there.
You can either use a filemanager to do that, or you can do it in the terminal.
E.g.: if your download is on your desktop, you could type:
Code:
mv /home/yourname/Desktop/acerhdf_kmod-0.5.25.tar.gz /home/yourname/
Step 5
In the terminal create an automatic startup settings file with conservative (low) temperature settings:
Code:
sudo echo options acerhdf interval=10 fanon=60000 fanoff=55000 kernelmode=1 > /etc/modprobe.d/acerhdf.conf
Step 6
Unpack the tarball:
Code:
gunzip -c acerhdf_kmod-0.5.25.tar.gz | tar -xvf -
This creates a directory /home/yourname/acerhdf_kmod
Step 7
Change to the newly created directory:
Step 8
RTFM!
Step 9
Build the kernel module:
Code:
make && sudo make install
Step 10
Try and insert the module into the kernel:
Code:
sudo modprobe acerhdf interval=10 fanon=60000 fanoff=55000 kernelmode=1
Step 11
Check for error messages:
In my case, it read:
[ 477.322743] acerhdf: Acer Aspire One Fan driver, v.0.5.25
[ 477.322779] acerhdf: unknown (unsupported) BIOS version Acer, inc./Aspire 7730G /v0.3636, please report, aborting!
- If you get a similar error message, and you're convinced your laptop is compatible with acerhdf, you're lucky, because these instructions should work for you. :)
- If you only get the first line, you're even luckier, because the module seems to have loaded correctly, and you can skip the next steps, and go straight to step 15. :D
- If you got another error message, something else is wrong. :(
Step 12
Open the C source of the module:
Scroll down to the line that says /* Register addresses and values for different BIOS versions */
Below that, you will find a table of laptops and BIOSes that are known to work with acerhdf.
Copy the line that best resembles your machine, and adapt it with the data from the error message in step 11.
In my case, I copied the line:
{"Acer", "Aspire 1810T", "v1.3314", 0x55, 0x58, {0x9e, 0x00} },
And I changed it to:
{"Acer", "Aspire 7730G", "v0.3636", 0x55, 0x58, {0x9e, 0x00} },
Step 13
Scroll all the way down to the end of the program. Again, copy the line that best resembles your machine, and adapt it.
In my case, I copied the line:
MODULE_ALIAS("dmi:*:*Acer*:pnAspire 1825PTZ:");
And I changed it to:
MODULE_ALIAS("dmi:*:*Acer*:pnAspire 7730G:");
Step 14
Save the file (Ctrl-S) and close the editor (Alt-F4). Now go back to step 9.
Step 15
Determine if the fan is properly enabled:
Code:
cat /sys/class/thermal/thermal_zone0/mode
If you get the answer enabled, then go on to step 16
If you get another answer, enable the fan:
Code:
sudo echo enabled > /sys/class/thermal/thermal_zone0/mode
Step 16
Your fan should behave normally by now.
You can easily check the current temperature by typing:
Code:
cat /sys/class/thermal/thermal_zone0/temp
Step 17
Instruct the system to load the module automatically on system start. To do that, edit the modules file:
Code:
sudo gedit /etc/modules
And add a new line with the word acerhdf
Save the file and close the editor.
Step 18
Reboot to check if autoload really works. Use the check in step 11.
Step 19
If all works well, it is time to find the maximum operating temperature for your cpu (on the internet), and change the temperature values (fanon, fanoff) in /etc/modprobe.d/acerhdf.conf accordingly.
Code:
sudo gedit /etc/modprobe.d/acerhdf.conf
In my case (an Intel Centrino Core2 Duo T6600), the values fanon=67000 fanoff=62000 work well.
You can find your machine's exact cpu type in the BIOS.
Step 20
20. If for any reason you should want to unload the kernel module, you can do so by typing:
Code:
sudo modprobe -r acerhdf
Ready! :D
Bookmarks