fan noise on imac g5 rev C

Daniel Armstrong dwarmstrong-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Mon May 21 23:20:36 UTC 2007


I am trying to setup Debian 4.0 on a iMac G5 rev C, and one of the
problems I am experiencing is trying to control fan noise... after the
system boots, the thermal fans startup full blast and continue at jet
noise intensity for the duration.

There is a lot of dated information online about getting Linux working
on PowerPC, and I am trying to sort out what is required and what is
not...

Some background:

- iMac g5 rev C (its the one with the iSight camera built-in)

- running Debian 4.0r0 with the 2.6.18-4-powerpc64 kernel

- have the windfarm* modules configured to load at boot

- /sys/devices/platform/windfarm.0 is populated with (I believe) all
the necessary files: cpu-current, cpu-fan, cpu-power, cpu-temp,
cpu-voltage, cpufreq-clamp

Now, I do get an error message about windfarm in /var/log/messages:

kernel: windfarm: Failed to create SMU RPM fan fan

...which a search online only reveals 2 entries, neither of which
sheds light on the problem that points to a fix.

Now I have discovered a manual way to temporarily shut off the fan...
if I do a simple reading of:

cat /sys/devices/platform/windfarm.0/cpu-temp

... it turns off the fan! But only for about a minute, before it
starts up again at full roar... I found this thread:

http://groups.google.ca/group/linux.debian.ports.powerpc/browse_thread/thread/ae06342275575307/314778cde8e40c41?lnk=st&q=&rnum=3&hl=en#314778cde8e40c41

...where one of the correspondents posted a script to read the
cpu-temp file and shut the fan off... but I don't really understand
how it works. How do you set things like maximum temp or how long the
fans will run?

Here is the script:

#! /bin/sh
# Frédéric Grosshans (c) 2006
# GPL v2 or later

TempFile'/sys/devices/platform/windfarm.0/cpu_temp'
RepeatTime
MaxTemp`
CoolingTime 0 #Above one minute (?) needed to let the fans start

while true
        do
                # Reading the cpu_temp file is enough to stop the fans
                # for a while ...
                read Tmp< $TempFile;
                echo $(date) ${Tmp%%\.*}
                while [ ${Tmp%%\.*} -le $MaxTemp ]
                        do
                                sleep $RepeatTime;
                                read Tmp< $TempFile;
                                echo $(date) ${Tmp}
                        done
                echo $(date) "Cooling !"
                #But on sometime has to let them run
                sleep $CoolingTime
        done

I guess what I am looking for is a script that will periodically read
that cpu-temp file so that the fans stay off *unless* it reaches some
maximum temp, upon which the fans will kick in until it reaches some
minimum temp or duration of running time. Is this something that you
would use cron to run?

Thanks for any help... These fans are making me deaf! :-)
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list