I finally have this new core i7 system, to replace my old AMD athlonx2. I have one question about the CPU fan speed control.
I remember that in my old system, the cpu fan speed control works out of box, no configuration is needed.
But when I install arch 64 on this new i7 system, the cpu fan is running at its maximum speed constantly while the CPU temperature is modestly low. I know there is a wiki teaching how to do it.
However, I am just curious why it doens't work out of box any more? Does CPU fan control work for you guys out of box normally? especially the new Core i7 cpu users?
Please let me know, really appreciated it.
Thanks a lot.
Update: the issue is solved, see my last post, the solution is blacklisting: asus_atk0110, instead use w83667hg.
Last edited by mark.altern (2009-10-01 08:18:18)
The motherboard usually deals with this "automated fan control". Is it enabled in bios?
I have been playing around with the fan control the whole evening. It doesn't work.
My problem is that the cpu fan is running way to fast even my cpu core temperature is low.
Then I realize that the fan is control NOT according to the really cpu core temperature(around 39C), but with another much higher irreverent temperature(around 47C). That's why it is running constantly fast.
I tried to do pwmconfig, but it couldn't detect any fan pwm, what the fuck.
Somebody please help me, thanks a lot.
not sure what its like with a core i7 but with my turion x2 64 i don't even have an option to control the fan (lm_sensors don't detect anything either) the only thing i can do to help keep things cool is enable cpu scaling.
i assume you have cpufrequtils installed and enabled
+1 for this should be a BIOS-level thing. Are you certain that you have your CPU fan plugged into the correct power source of the MB? You can obviously plug the fan into any power source, but only the 'correct' power source is one that is managed by the BIOS. Consult your MB manual, but 9 times out of 10, the 'correct' one is the one bearing the CPU_FAN label or something similar.
Last edited by graysky (2009-08-19 10:46:38)
lm_sensors is detecting my CPU-Fan-Speed here (ASUS P6T Deluxe V2) but i'm note sure if i would be able to control it by software.
I don't need to do this, because i use an external fancontroller.
I used to think that CPU fan control should be BIOS level thing and independent of the OS.
But obviously the CPU fan is running much faster under Arch than in Windows 7 RC. (I have dual boot)
In Windows 7, it is running 600-800rpm idle, in Arch it is running 1000 rpm - max speed in idle. And I don't believe that i7 should run hotter in Arch.
Another thing, there are two temperature for i7 or core 2 due, Tcase temp and Tjunction temp. The cpu fan responds to the Tcase temp which is the temp at the center of the cpu heat spread. Tjunction temp is the temp in the center of the cores, which is normally 5C hotter than Tcase temp for i7. This is confirmed correct under windows 7, but in Arch lm-sensors, the Tcase is about 4-5C hotter than Tjunction. That means definitely lm-sensors is doing a bad job. for more infor about the cpu temperatures, here is a good read:
http://www.tomshardware.com/forum/22174 … ture-guide
Even under windows, various temperature software give quite different temp outputs, in order to get an accurate one, one need to manually calibrate the software, as stated in section 9 in the link above. After doing that, I know what the normal temps look like. The out put of lm-sensors does NOT look right.
Finally, the cpu fan speed in Archlinux is higher, but corresponds to the WRONG CPU temp, given by lm sensors. I observed the following thing, take the cpu temp I read from lm-sensors in arch, which is higher wongly, then went to windows and push the load of cpu for it to have the same tcase temp, then the fan speed is the roughly the same as it is in Arch. This little experiment somehow suggests that the CPU fan is speeding according to the tcase temp the system read.
I could be wrong, but at lease that's how it seems to be. In the end, I do not think there is any way one can calibrate lm-sensors, so the truth is that there is NO way to know the true temperatures of my i7 cpu in linux. At the mean time, the CPU fan is running unreasonably faster than it should as it does in windows.
Very bad news, I know.
Some one please help.
Last edited by mark.altern (2009-08-19 18:14:07)
First off, it would be useful to know what the sensors-detect script actually reports.
Okay. How fan control works on Linux: First, navigate to /sys/class/hwmon
Each of these folders, i.e. hwmon0, stands for a sensors monitor / fan controller on your mainboard that may control one or several fans. Inside hwmonN, there should be a subfolder called device, which contains several interfaces if your BIOS allows software-side fan control. You can read them with cat and write to them with echo.
pwm1_enable shows if OS-level fan control is enabled (1) or disabled and in BIOS control (0). Changing fan speed won't work if this is disabled. (i.e. cat /sys/class/hwmon0/device/pwm1_enable reports 0 -> disabled; you could enable it with echo 1 > /sys/class/hwmon0/device/pwm1_enable).
pwm1 allows to change fan speed. The values range from 0 (fan off) to 255 (full speed, 12V).
fan1_input shows the current RPM if a fan is connected. You can only read from this interface. Its useful to check all of these in the each of the hwmon folders to find out if there is actually a fan connected to the fan controller (they often have more ports than mainboard manufacturers use).
There might be a fan1_div, this is somehow related to how the kernel reads the RPM, I don't know how it works.
temp1_input interfaces can appeare too, if some of the chips have temperature sensors located somewhere. I *think* lm_sensors places the core temperatures it reads from CPU (the coretemp-isa-000X thingies) in one of the hwmon-folders too.
There might be interfaces for different fans in the same hwmon folder, i.e. pwm2_enable, pwm2, fan2_input, etc., all interfaces with the same index belong to the same physical fan connector, and all in the same hwmonN are managed by the same IC on your mainboard.
Warning: These interfaces, if they work, control the fans directly without any kind of security measure. If you shut some essential fan down, it will stay off until you reboot your CPU shuts down.
(If you see something likein0_alarm, in0_input, in0_max, etc. it's a voltage monitoring chip.)
If one of those interfaces can do something, OS-level fan control does work, if none of those folders contain a working pwm interface, fan control seems to be unavailable.
Sometimes there is an option in the BIOS to enable it, and for some BIOSs software-side fan control only works if dynamic fan control is disabled in the BIOS and fan speed is set to a static value - or vice versa.
I don't know what you are using to control fan speed, there are many applications that use these interfaces, i.e. GNOME or KDE power managers, so I'm not sure what is happening:
IF: Windows 7 enables OS-level fan control and sets it the RPM to those you observed and you have nothing that provides fan control in Arch and so fan control stays at BIOS-level, which might also read out a different sensor / the same sensor differently or it might be more conservative in setting fan speeds altogether;
OR: You have something that provides fan control installed in Arch and it reads out a the wrong value supplied by lm_sensors and thus sets a higher fan speed.
Anyway, possible solutions I can think of:
Find out if you have some kind of fan control software and what it does. For example, I use the fancontrol daemon, I can't help you if you use something else.
The wiki mentions how to assign a fan speed to a certain temperature sensors. You might assign it to a different one. For example, there are no sensor chips on the mainboard of my EEE (no temp1 etc.) so I assigned the fan speed to the temperature reported by the BIOS via ACPI (those are in /sys/class/thermal, also no "device" subfolder on EEEs):
You could also change the MINTEMP/MAXTEMP values to one higher than those you actually want to compensate for the effect of lm_sensors reporting temperatures that are too high.
It is currently not possible for a mortal user to change the coretemps lm_sensors reads, see this post, last paragraph.
There is a configuration file, /etc/sensors3.conf, you can change sensor names and adjust offsets here, but only for the monitoring chips and their sensors that are on the mainboard.
Last edited by Malstrond (2009-08-19 19:34:22)
Thanks Malstrond, I have been trying to do the exactly the same thing: link the FCTEMPS to a different moderate temperature, but some how I couldn't do it. I tried all possible combination, nothing change the fan speed after numerous restart of fancontrol. Anyway, even it works, it is NOT really a solution.
More importantly, I notice that the CPU temp and cpu fan speed the lm-sensors reports agree with the ones reported from BIOS in startup, which is much higher than the one reported in windows. I am pretty sure the software in windows is reporting the right temp and fan speed, since I can visually see the fan is slower. I assume that BIOS have higher cpu temp is because in bios the cpu vcore is high and have not step down yet. But now I doubt that.
So I am wondering what is the real reason that BIOS is giving a much higher cpu temp and make the fan run much faster than in windows?
Here is my sensors output:
kevin /sys $ sensors atk0110-acpi-0 Adapter: ACPI interface Vcore Voltage: +0.94 V (min = +0.80 V, max = +1.60 V) +3.3 Voltage: +3.28 V (min = +2.97 V, max = +3.63 V) +5 Voltage: +5.14 V (min = +4.50 V, max = +5.50 V) +12 Voltage: +12.19 V (min = +10.20 V, max = +13.80 V) CPU FAN Speed: 1205 RPM (min = 600 RPM) CHASSIS1 FAN Speed: 0 RPM (min = 600 RPM) CHASSIS2 FAN Speed: 0 RPM (min = 600 RPM) POWER FAN Speed: 0 RPM (min = 0 RPM) CPU Temperature: +49.0°C (high = +60.0°C, crit = +75.0°C) MB Temperature: +47.0°C (high = +45.0°C, crit = +75.0°C) coretemp-isa-0000 Adapter: ISA adapter Core 0: +40.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +37.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0002 Adapter: ISA adapter Core 2: +39.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0003 Adapter: ISA adapter Core 3: +37.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0004 Adapter: ISA adapter Core 4: +40.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0005 Adapter: ISA adapter Core 5: +37.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0006 Adapter: ISA adapter Core 6: +39.0°C (high = +80.0°C, crit = +100.0°C) coretemp-isa-0007 Adapter: ISA adapter Core 7: +37.0°C (high = +80.0°C, crit = +100.0°C) w83667hg-isa-0290 Adapter: ISA adapter in0: +0.94 V (min = +0.00 V, max = +1.74 V) in1: +1.74 V (min = +0.02 V, max = +0.01 V) ALARM in2: +3.31 V (min = +0.77 V, max = +0.13 V) ALARM in3: +3.28 V (min = +1.17 V, max = +0.02 V) ALARM in4: +1.71 V (min = +0.00 V, max = +1.06 V) ALARM in5: +2.04 V (min = +0.06 V, max = +1.15 V) ALARM in7: +3.36 V (min = +0.13 V, max = +2.83 V) ALARM in8: +3.25 V (min = +1.06 V, max = +0.00 V) ALARM fan1: 0 RPM (min = 21093 RPM, div = 64) ALARM fan2: 1222 RPM (min = 0 RPM, div = 16) ALARM fan3: 0 RPM (min = 21093 RPM, div = 64) ALARM fan4: 0 RPM (min = 21093 RPM, div = 64) ALARM fan5: 0 RPM (min = 10546 RPM, div = 128) ALARM temp1: +47.0°C (high = +5.0°C, hyst = +10.0°C) ALARM sensor = thermistor temp2: +49.0°C (high = +80.0°C, hyst = +75.0°C) sensor = diode temp3: -3.0°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor cpu0_vid: +2.050 V
Well, the BIOS can't read out coretemps, that can only be done on OS-level, so it needs some other way of getting a temperature. Mainboard manufacturers place sensors under the CPUs sockets, it is read out by a sensor chip (the w83667hg-isa-0290 in your case) on the mainboard which reports this temperature to the BIOS which adjusts fan speeds accordingly.
temp1: +47.0°C temp2: +49.0°C
I guess it's one of those, maybe temp2, the other one probably a sensor near the northbridge.
Sensor chips calculate these values/temperatures with a very large safety margin, so that in no circumstance, even when the system fails during boot and the CPU is stuck with 100% load for days, i.e. in a server, it can ever overheat.
It's the same reason why I use the fancontrol deamon on my EEE, the BIOS sets the fan's RPMs much higher than it would be necessary (granted I'm not in Death Valley).
I don't have an Intel CPU with internal sensors available at the moment, so I don't know if the coretemp-isa-000X values have a correspondig hardware interface somewhere that could be used by fancontrol.
Last edited by Malstrond (2009-08-19 23:26:47)
Malstrond, I agree with what you said, which totally make sense. The 49 is the CPU temp, and 47 is the Mobo temp (northbridge). Obviously 49 is way higher than what it really is. Can you put a formula inside of /etc/fancontrol file so it control fans with a lower temp, for example: "x-10", where x =49 in this case ?
Use the fancontrol probably is the only way, I will study the configuration file again this evening. By the way, what is your cpu, can you post your /etc/fancontrol file, maybe I can learn something from there,
Thanks a lot.
another question, when I run: sudo pwmconfig,
I get no result, namely, the /etc/fancontrol contains only 1 line of interval=10.
It seems not able to find my cpu pwm control, wired. Any idea?
While the fan is actually running governed by the pwm, the speed change according to cpu usage, it's just runs too fast.
Last edited by mark.altern (2009-08-20 00:16:04)
a formula inside of /etc/fancontrol
No. But if you would want x-10, you could just set the MINTEMP and MAXTEMP values mentioned in the wiki 10 higher than you would set them normally.
If you want to change what lm_sensors reports for temp1/temp2, you have to edit /etc/sensors3.conf. I'd advise you to read man sensors.conf before you change anything.
You would have to add a new entry to the file, i.e.
chip "w83667hg-*" #you can adjust names like so label temp1 "NB Temperature" label temp2 "CPU Temperature" #or omit bogus values like temp3 ignore temp3 #i just guessed how to do this: set temp2 to be always 10°C lower compute temp2 @-10, @+10
I guess using percentages would be better, but I don't know how to do something like that with the compute statement. It is normally just used to adjust voltage readings.
It seems not able to find my cpu pwm control
Well, are there any of the fanN_input or pwmN_enable interfaces I mentioned in my first post? Can you change them manually?
Yes, there are at least three pwm's in hwmon9 folder, but I can't change any of them, with root privilege
Is there any core i7 users in the Arch community?
Can you guys share some of your experiences with this issue? Is your cpu fan running faster in linux than in windows?
How much rpm is your cpu fan running?
Mine Cpu fan is running at 500 - 700 rpm idle in Windows 7 while in Archlinux it runs at 1100 - 1300 rmp idle, while the cpu heat sink is cold.
Any info is appreciated. thanks.
Still no body??
Come on, there got be some core i7 920 user here in our Arch Community??
New discovery: in an pretty old distribution Parted Magic Live CD, the cpu power management is running perfectly, the cpu fan is running at its normal speed.
Some who use Arch on i7 please come in and share some of your experience on this issue? let me know if I am the only or not, thanks.
Last edited by mark.altern (2009-08-26 22:49:38)
I'm an i7 920 64-bit user. I can do pretty much anything you need me to, just give me the commands. Here's my output of 'sensors'
heleos@desktop:~/ > sensors atk0110-acpi-0 Adapter: ACPI interface 3.3V Voltage: +3.34 V (min = +2.97 V, max = +3.63 V) 5V Voltage: +4.90 V (min = +4.50 V, max = +5.50 V) 12V Voltage: +12.08 V (min = +10.20 V, max = +13.80 V) CPU Voltage: +0.93 V (min = +0.80 V, max = +1.80 V) CPU PLL Voltage: +1.82 V (min = +1.50 V, max = +2.00 V) QPI/DRAM Core Voltage: +1.20 V (min = +0.80 V, max = +1.50 V) IOH Voltage: +1.14 V (min = +0.90 V, max = +1.35 V) IOH PCIE Voltage: +1.51 V (min = +1.20 V, max = +1.80 V) ICH Voltage: +1.12 V (min = +0.90 V, max = +1.35 V) ICH PCIE Voltage: +1.51 V (min = +1.20 V, max = +1.80 V) DRAM Bus Voltage: +1.51 V (min = +1.40 V, max = +1.90 V) CPU FAN Speed: 1314 RPM (min = 600 RPM) CHA_FAN1 FAN Speed: 0 RPM (min = 600 RPM) CHA_FAN2 FAN Speed: 0 RPM (min = 600 RPM) CHA_FAN3 FAN Speed: 0 RPM (min = 600 RPM) PWR_FAN FAN Speed: 0 RPM (min = 600 RPM) OPT_FAN1 FAN Speed: 0 RPM (min = 600 RPM) OPT_FAN2 FAN Speed: 0 RPM (min = 600 RPM) OPT_FAN3 FAN Speed: 0 RPM (min = 600 RPM) CPU Temperature: +42.0°C (high = +60.0°C, crit = +65.0°C) MB Temperature: +40.0°C (high = +45.0°C, crit = +55.0°C) SB Temperature: +54.0°C (high = +65.0°C, crit = +65.0°C) NB Temperature: +55.0°C (high = +80.0°C, crit = +80.0°C) OPT_FAN1 Temperature: +0.0°C (high = +45.0°C, crit = +45.0°C) OPT_FAN2 Temperature: +0.0°C (high = +45.0°C, crit = +45.0°C) OPT_FAN3 Temperature: +0.0°C (high = +45.0°C, crit = +45.0°C)
Hi, heleos, thanks a lot, I have been waiting for days for someone to reply.
Here is the question:
1, first what is your hardware configuration?
what is your mobo?
how large is your cpu fan? (200mm or 120mm or ...)
2. Do you happen to have a dual boot with Windows, if so, can you check the cpu fan speed under windows?
If you cpu fan is 120mm and the output you gave is under idle condition, then more than 1300rpm is WAY too fast.
If you don't believe me, open the case and touch the cpu heat sink, it is almost COLD.
Then you have the same bad situation, just like me. In my Arch 64, my 120mm cpu fan is at about 1100rpm - 1300 rpm at idle or web surfing. But in windows 7, the cpu fan is at 400rpm - 650rpm under the same usage condition, while you open the case and touch the cpu, it is barely warm. That means windows is doing the right thing in regulating the cpu fan, while Arch 64 is NOT and it is running a lot more noisier than it should.
Also to make sure the lm-sensors is NOT giving the wrong fan speed, I open the case and visually and audibly confirmed the CPU fan is running much faster in Arch 64 than in windows 7 both under idle condition.
Let me know your test result, thanks a lot.
Last edited by mark.altern (2009-08-27 14:46:08)
I'm at work right now, but I can tell you some information now. My setup is:
core i7 920 @ 2.67 ghz (stock heatsink, probably 120mm)
asus rampage II extreme
I do dualboot with windows 7, and I can check fanspeed for you tonight. What I can tell you is my computer is loud. I don't usually notice it, or if there is a difference between windows and linux, but I can check for you
Thanks a lot, man.
If it is the stock heat sink(probably 90mm fan), the difference may not be as big as it is in a nice "huge" after market heat sink. But I would appreciate it if you can check if there is any difference under arch and windows 7.
By the way, I use Everest Ultimate to check the cpu fan speed, the cpu fan speed you check in BIOS is NOT the same with it idle in windows, in windows it is much slower than it is when in BIOS.
Thank, and will wait for your result.
Also, off the topic, I hate it when my computer become loud. So I bought case fan controller for my HAF922 3 case fans.
There is always something you can do to quiet it down without losing much thermal performance. To me, being quiet is quite important
Last edited by mark.altern (2009-08-27 17:55:45)
Downloaded the trial version of Everest Ultimate, and it reports the same RPM that I see in BIOS, ~840
edit: My CPU temperature shows 39degress, and the individual cores show around 50. is that consistent with what you're getting for temps? Maybe I should think about getting a new cooler
Last edited by heleos (2009-08-27 20:07:33)
So that means, in windows, the cpu fan is indeed slower than in Arch, correct?
By the way, what is your mobo?
39c tcase and 50 tjunc means that the heat sink is poorly mounted. I guess, you just use the stock cooler with the thermal paste on it, which is not the best idea. I use Scythe MUGEN-2 as cpu cooler and arctic silver as thermal paste, then in idle, cpu temp is 35C and core temps are 42, 38, 40, 37, this take place in a room with temperature 82F.
There should be a 5C difference between this 2 temps in idle, otherwise it is likely due to the poor mounting of the heat sink. For more info on this, read the top thread in toms hardware forum CPU subsection.
I would definitely advise you to buy a new cooler, which lower your temp dramatically as well as noise.
Last edited by mark.altern (2009-08-27 23:00:23)
It must be the heatsink, I've got an alternative to as5 (which is supposedly 1-2C cooler), but with the stock heatsink, I can't expect much
Yes, the speed in windows is lower then it is in arch, apparently about 500 RPM. My motherboard is as Asus Rampage II Extreme
OK, thanks a lot.
That confirms the problem, so I am not the only one.
The cpu fan regulation for core i7 920 in Arch is indeed NOT great.
Hopefully, somebody can solve this issue, before that I will stick with Windows 7.
Hi, guys, any suggestions how this problem may be solved?
I overheard someone in ubuntu's forum saying it is due to the bad driver for mobo, then who provide the driver of mobo? the kernel developing people? or else?
I guess I need to find the right people to talk to or file the bug report, but now I have no idea where should I do that.
P.S. I love linux, can never live without emacs and etc, but I appreciate the quietness of my box.