Report: fan control for IT8620E

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,

Here's a report on how I managed to control the CPU fan on a
motherboard with the IT8620E chip, as suggested by the lm-sensors
wiki: `you can try loading the it87 driver with force_id=0x8728 and
see how it goes. If you do, please report, including the output of
"sensors"`.

First, a quick word on the hardware used. The motherboard is a
Gigabyte GA-B85M-DS3H
(http://www.gigabyte.com/products/product-page.aspx?pid=4731)  and the
CPU cooler is an Arctic Cooling Alpine 11 Plus
(http://www.arctic.ac/eu_en/alpine-11-plus.html)
According to the cooler's technical data, the fan can run at speeds
between 500 - 2,000 RPM. However, the BIOS/EFI/UEFI (whatever the
proper name is nowadays) would not let me set the PWM value to less
than 70, which produces a fan speed of about 1300 RPM (too noisy for
my taste).
So below is a description of what I did to bring the fan to minimum
speed. This was done strictly by trial and error; I do not claim this
is the only (or the best) method, it just works for me.

sensors-detect reported "Found unknown chip with ID 0x8620".
I inserted the it87 module as directed by the wiki page:
modprobe it87 force_id=0x8728
After this I tried pwmconfig, but it didn't succeed in controlling the
fan (it brought it up to full speed and left it in that state). So
then I tried a manual approach.

Inserting the module creates a directory inside /sys, such as
/sys/devices/platform/it87.2608/:
    sysdir=$(find /sys/ -name it87.\* -type d)
Controlling the fans is possible by modifying various files (mainly
pwm1) inside that directory.

The first step is to modify the value inside pwm1_enable from 2 to 1.
This is needed because if pwm1_enable is left at its initial value
(2), pwm1 cannot be changed (attempting to do that produces a "Device
or resource busy" error).
    echo 1 > $sysdir/pwm1_enable

Next the desired pwm value can be written into $sysdir/pwm1. Anything
from 0-8 puts the fan at full speed, and 9 puts it to around 1600 RPM.
Values from 10-255 seem to act as actual pwm values. Initial value was
70 (the value set in BIOS).
    echo 10 > $sysdir/pwm1

This set the fan speed to around 600 RPM, which was a lot better but
still above minimum.
It turned out that the speed can be reduced further by changing the
value in the pwm1_freq file from the initial 46875 to a value less
than 35157:
    echo 35000 >$sysdir/pwm1_freq
After this, the fan speed was reduced to about 470 RPM.

Every time the system wakes up from sleep, all 3 files (pwm1_enable,
pwm1, pwm1_freq) get restored to their initial values, so they need to
be re-written.
In the absence of fancontrol functionality, I wrote a small script
that presumably emulates fancontrol behaviour - it monitors the
temperature output of "sensors" and sets the pwm1 value accordingly.

Hope this helps.
Regards,
Dan.

$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +105.0°C)
temp2:        +29.8°C  (crit = +105.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +40.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +37.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:         +39.0°C  (high = +80.0°C, crit = +100.0°C)

it8728-isa-0a30
Adapter: ISA adapter
in0:          +0.04 V  (min =  +0.00 V, max =  +3.06 V)
in1:          +2.02 V  (min =  +0.00 V, max =  +3.06 V)
in2:          +2.00 V  (min =  +0.00 V, max =  +3.06 V)
in3:          +2.03 V  (min =  +0.00 V, max =  +3.06 V)
in4:          +0.01 V  (min =  +0.00 V, max =  +3.06 V)
in5:          +1.73 V  (min =  +0.00 V, max =  +3.06 V)
in6:          +1.54 V  (min =  +0.00 V, max =  +3.06 V)
3VSB:         +3.36 V  (min =  +0.00 V, max =  +6.12 V)
Vbat:         +2.95 V
fan1:         469 RPM  (min =    0 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
fan5:           0 RPM  (min =    0 RPM)
temp1:        +37.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp2:       -128.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = disabled
temp3:        +31.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = Intel PECI
intrusion0:  ALARM

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux