You are not logged in.

#1 2017-04-08 10:30:26

oscargm
Member
Registered: 2017-03-31
Posts: 2

[Solved] Dell Inspiron 580 fan control not working dell_smm

Hello, I'm new around the forum, excuse me if I do smthg wrong, and thanks in advance

The case is that I've a dell inspiron 580 (desktop) and I've problems with controlling the fans.
I've read all the forum entries relative to fancontrol but none fits my case.

When pwmconfig tries to map devices it fails to find dell_smm.
I've always had problems with fancontrol with this computer, once i got it working on debian but don't remember how.

On the info i put below you can see that dell_smm device is not found, and if I try to see what's on /sys/devices I don't find any device:

[oscar@Mashine ~]$ /sys/devices/virtual/hwmon/hwmon2/
power/     subsystem/

I tried installing i8kutils but works really bad (is oriented to old dell laptops), just can get fans at max speed

-------------
Uname
-------------

[oscar@Mashine ~]$ uname -a
Linux Mashine 4.10.8-1-ARCH #1 SMP PREEMPT Fri Mar 31 16:50:19 CEST 2017 x86_64 GNU/Linux

------------


--------------------------------
    Hwmon devices and names
--------------------------------

hwmon0        -->        coretemp
--------------------------------
[oscar@Mashine ~]$ readlink -f /sys/class/hwmon/hwmon0/device | sed -e 's/^\/sys\///'
devices/platform/coretemp.0

[oscar@Mashine ~]$ sed -e 's/[[:space:]=]/_/g' /sys/class/hwmon/hwmon0/name
coretemp           
------------

hwmon1        -->        motherboard
--------------------------------
[oscar@Mashine ~]$ readlink -f /sys/class/hwmon/hwmon1/device | sed -e 's/^\/sys\///'
devices/platform/it87.2576

[oscar@Mashine ~]$ sed -e 's/[[:space:]=]/_/g' /sys/class/hwmon/hwmon1/name
it8721
-------------

hwmon2        -->        dell_smm
--------------------------------
[oscar@Mashine ~]$ readlink -f /sys/class/hwmon/hwmon2/device | sed -e 's/^\/sys\///'
devices/virtual/hwmon/hwmon2/device

[oscar@Mashine ~]$ sed -e 's/[[:space:]=]/_/g' /sys/class/hwmon/hwmon2/name
dell_smm
-------------


hwmon3        -->        radeon
--------------------------------
[oscar@Mashine ~]$ readlink -f /sys/class/hwmon/hwmon3/device | sed -e 's/^\/sys\///'
devices/pci0000:00/0000:00:03.0/0000:01:00.0

[oscar@Mashine ~]$ sed -e 's/[[:space:]=]/_/g' /sys/class/hwmon/hwmon3/name
radeon



------------------------------

i8kutils

i8kutils can't get temps and that's why is not working

[oscar@Mashine ~]$ i8kctl
1.0 A07 (null) -1 3 3 775 1064 -1 -1
|   |   |       | | |  |   |    |  |
|   |   |       | | |  |   |    |  +------- 10. buttons status
|   |   |       | | |  |   |    +---------- 9.  ac status
|   |   |       | | |  |   +--------------- 8.  right fan rpm
|   |   |       | | |  +------------------- 7.  left fan rpm
|   |   |       | | +---------------------- 6.  right fan status
|   |   |       | +------------------------ 5.  left fan status
|   |   |       +-------------------------- 4.  CPU temperature (Celsius)
|   |   +---------------------------------- 3.  Dell service tag (later known as 'serial number')
|   +-------------------------------------- 2.  BIOS version
+------------------------------------------ 1.  /proc/i8k format version


-------------------------------

Sensors

sensors can get fan speeds and all temps

[oscar@Mashine ~]$ sensors
dell_smm-virtual-0
Adapter: Virtual device
fan1:         602 RPM
fan2:         936 RPM

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +48.0°C  (high = +83.0°C, crit = +99.0°C)
Core 1:       +47.0°C  (high = +83.0°C, crit = +99.0°C)
Core 2:       +48.0°C  (high = +83.0°C, crit = +99.0°C)
Core 3:       +47.0°C  (high = +83.0°C, crit = +99.0°C)

radeon-pci-0100
Adapter: PCI adapter
temp1:        +58.0°C  (crit = +120.0°C, hyst = +90.0°C)

it8721-isa-0a10
Adapter: ISA adapter
in0:          +0.85 V  (min =  +2.29 V, max =  +2.20 V)  ALARM
in1:          +3.00 V  (min =  +3.05 V, max =  +3.04 V)  ALARM
in2:          +2.02 V  (min =  +2.39 V, max =  +2.15 V)  ALARM
+3.3V:        +3.34 V  (min =  +5.54 V, max =  +5.09 V)  ALARM
in4:          +2.99 V  (min =  +3.00 V, max =  +1.38 V)  ALARM
in5:          +2.22 V  (min =  +2.80 V, max =  +2.77 V)  ALARM
in6:          +2.22 V  (min =  +2.27 V, max =  +2.96 V)  ALARM
3VSB:         +3.34 V  (min =  +4.78 V, max =  +1.03 V)  ALARM
Vbat:         +3.22 V 
fan1:         597 RPM  (min =   20 RPM)
fan2:         929 RPM  (min =   16 RPM)
temp1:       -128.0°C  (low  = -59.0°C, high = -11.0°C)  sensor = thermal diode
temp2:         -8.0°C  (low  = +92.0°C, high =  -4.0°C)  sensor = thermistor
temp3:        -52.0°C  (low  = -13.0°C, high =  -5.0°C)  sensor = Intel PECI
intrusion0:  ALARM


and following fancontrol guide:
Disable BIOS Fan Speed Control


I try to compile smm manually but it fails

[oscar@Mashine ~]$ sudo gcc -m32 -o smm /usr/bin/smm
/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld: error in /usr/bin/smm(.eh_frame); no .eh_frame_hdr table will be created.
/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/../../../../lib32/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status



If you need more detailed info about hardware, ask me and I'll attach it

Last edited by oscargm (2017-04-09 10:39:52)

Offline

#2 2017-04-08 15:10:16

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: [Solved] Dell Inspiron 580 fan control not working dell_smm

Can you test if things can be controlled without that special i8ktools that uses that Dell device? Go into the directory "/sys/class/hwmon/hwmon1", then echo stuff into the "pwm[0-9]_enable" and "pwm[0-9]" files.

First check the current contents so that you know what to set to get things back to normal. I mean concretely do something like this:

$ cd /sys/class/hwmon/hwmon1

$ ls

$ tail -n+1 pwm[0-9]_enable pwm[0-9]
==> pwm1_enable <==
0

==> pwm2_enable <==
1

==> pwm3_enable <==
1

==> pwm1 <==
0

==> pwm2 <==
89

==> pwm3 <==
77

My motherboard here uses the chip "it8728", so perhaps somewhat similar to your "it8721" chip? I've written down how things work here for me when I worked on my own fan-control script. This is what I found out while experimenting with those pwm entries:

Gigabyte GA-Z77X-D3H Motherboard
---------------------------

This board's sensors are at /sys/devices/platform/it87.2608/.

pwm1 controls voltage of the CPU fan header (has to be disabled if using a PWM fan).

pwm2 controls the system fan headers (voltage on SYS_FAN1 and PWM on SYS_FAN[23]).

pwm3 controls the PWM signal for the CPU fan header.

temp1 is the "system" temperature.

temp2 is the PCH's temperature.

temp3 is the CPU temperature.

Setting pwm2_enable to 0 disables control, will output a 100% voltage/PWM signal.

Setting pwm2_enable to 2 will cause the board's sensor chip logic to use some sort of automatic to tie temperatures to fan speeds. The value in pwm2 seems to be used as a multiplier for that automatic.

Setting pwm2_enable to 1 will cause the chip to use a fixed speed as set in pwm2. The value in pwm2 seems to have the value range of an unsigned 8-bit number. The 0 to 255 value translates into a 0 to 100% fan speed signal.

This means, to get manual control over a certain fan output of the board, on my board here you would first write a "1" into the "pwm*_enable" file, then set your desired voltage percentage or PWM signal by writing a [0-255] number into the "pwm*" file. A concrete example, the case fans connected to the motherboard are controlled with the "pwm2" file. If I want to run them at 50% power, I'd do this here:

$ cd /sys/class/hwmon/hwmon1

$ sudo bash -c "echo 1 > pwm2_enable"

$ sudo bash -c "echo 127 > pwm2"

Last edited by Ropid (2017-04-08 15:11:10)

Offline

#3 2017-04-09 10:37:55

oscargm
Member
Registered: 2017-03-31
Posts: 2

Re: [Solved] Dell Inspiron 580 fan control not working dell_smm

Hi Ropid, it looks like it was like you told.

/sys/class/hwmon/hwmon1/pwm1 and pwm2 where set to 2
so pwmconfig didn't do anything on them

so:
$ sudo bash -c "echo 1 > pwm2_enable"
and
$ sudo bash -c "echo 1 > pwm1_enable"
did the trick.

Now I'm able to control them manually by
$ sudo bash -c "echo 127 > /sys/class/hwmon/hwmon1/pwm2"
and
$ sudo bash -c "echo 127 > /sys/class/hwmon/hwmon1/pwm1"

and now fancontrol is able to control them automatically.

Many thanks, long time trying to get here!

Offline

Board footer

Powered by FluxBB