You are not logged in.
Hi, im new to arch (but not to linux, been in debian before) and im having some trouble with cooling.
If done a billion searches and saw lots of threads,, but i found no working solution to automated fan control, right now im working with 3500 min fan speed fixed and fan1_manual to 0, but it never changes fan speed.
I found 2 possible solutions, one its the cmp-daemon in AUR, which i installed, and when i try to start it with
# /etc/rc.d/cmp-daemon startit says
:: Starting cmp-daemon [BUSY]
daemon is already running or applesmc not loaded, try: modprobe applesmc -v [FAIL]Well, i can assure that there is no cmp-daemon program running, killall cmp-daemon returns No such process, and applesmc its loaded:
# lsmod | grep applesmc
applesmc 21956 0
led_class 3384 1 applesmc
input_polldev 3100 1 applesmcalso im setting fan speed manually to not fry my laptop, so setting fans and sensors work.
The other solution from the Macbook Arch wiki its a link to http://ubuntuforums.org/showthread.php?t=1102465 where sb posted a script which could work, but the problem its that even though i registered to download it, it says i have not permissions (even for posting). So if anyone has the smcfancontrol.0.2.tar.gz and could upload it anywhere i would be thankful.
If there is any other solution im not aware of, please could you point it for me?
Thank you and hi to everyone ![]()
Last edited by Joakin (2009-04-30 00:39:41)
Offline
Well after finding nothing anywhere, i decided to start touching the code of the cmp-daemon downloading it from http://aur.archlinux.org/packages.php?ID=21391 instead of installing it from yaourt.
Finally i made it work with some tweaks (this is what i did to make it work with my Macbook 1,1):
1. Read README for manual installation
2. Open cmp-daemon.c and:
2.1 Find the line "strcmp(buffer,"model name : Intel Core 2 Duo..." and change the string in the strcmp with the output of:
cat /proc/cpuinfo | grep "model name"2.2 Erase all reference to whatsoever function call containing fan_2
(i think i erased the calls to 'write_fan_2_manual' and 'write_fan_2_speed' only, but i dont remember if im missing something)
This is because Macbook 1,1 only has 1 fan, so there is no second fan to control.
2.3 Find the 2 lines that contain this piece of code:
fan_speed=(temp-38)*160This is the formula used to get the fan speed depending on the temperature.
To the programmer of this program it gave the values:
50ºC -> 1920
60ºC -> 3520
70ºC -> 5120
I tried the program with that values, and i find them very low, so im using other function that is
fan_speed=(temp-10)*100with this one u get:
50ºC -> 4000
60ºC -> 5000
70ºC -> 6000
which i think its more appropiate, it keeps the macbook warm more or less like in osx leopard. There you can use the formula u think its best, right now i used this one because i think that its a good one, but i have no fu**in idea of how it should be. Maybe what im using will eat up my battery really fast, i have to try it.
2.4 Change this 2 lines:
#define RD_CPU_1_TEMP "/sys/devices/platform/coretemp.0/temp1_input"
#define RD_CPU_2_TEMP "/sys/devices/platform/coretemp.1/temp1_input"per this other ones:
#define RD_CPU_1_TEMP "/sys/devices/platform/applesmc.768/temp2_input"
#define RD_CPU_2_TEMP "/sys/devices/platform/applesmc.768/temp3_input"I made this because i dont have the temp1_input file inside coretemp.* folders. Since i dont know what the f**k are the temp outputs from applesmc, i just used temp2 and 3 to read temperatures to graduate fans, because they are the highest. Again, i have no fu**in idea of how it should be, if you know something more than me please let me know.
3. Compile with gcc cmp-daemon.c -o cmp-daemon
4. Try it with ./cmp-daemon
Right now it should change your fan speed, its running in background. Though, each 3 minutes cmp-daemon was ignoring everything and returning to min fan speed. To fix that i had to set the fan1_min to 2000 and fan1_max to 6000 like in the C code, then it worked. Dont know why
, its just something i tried.
5. Follow instructions on README file to manual install. Probably using pkgbuild with the modified source code its a better idea, i did it README-mode and its working, so i did not try anything else.
(One more note, cmp-daemon script its refering to cmp-daemon.init, just ' mv cmp-daemon.init /usr/sbin/cmp-daemon ' should doit, and i dont know if its necessary, but i 'chmod 755 /usr/sbin/cmp-daemon' chmoded the script just in case it needed permissions)
Well i think thats all, any improving to this method, help, or comments would be appreciated. I hope it helps someone else.
Bye!
Offline