Sensors unable to detect fan RPM

lm_sensors are unable to detect my laptop fan RPM

I ran sensors-detect and got the output -

# sensors-detect version 3.6.0
# System: Micro-Star International Co., Ltd. GS65 Stealth Thin 8RF [REV:1.0] (laptop)
# Board: Micro-Star International Co., Ltd. MS-16Q2
# Kernel: 5.4.77-1-MANJARO x86_64
# Processor: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (6/158/10)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): YES
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): YES
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (YES/no): YES
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): YES
Using driver `i2c-i801' for device 0000:00:1f.4: Cannon Lake-H (PCH)
Module i2c-dev loaded successfully.

Next adapter: SMBus I801 adapter at efa0 (i2c-0)
Do you want to scan it? (YES/no/selectively): YES

Next adapter: i915 gmbus dpb (i2c-1)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: i915 gmbus dpc (i2c-2)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: i915 gmbus misc (i2c-3)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: i915 gmbus dpd (i2c-4)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: NVIDIA i2c adapter 1 at 1:00.0 (i2c-5)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: NVIDIA i2c adapter 2 at 1:00.0 (i2c-6)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: NVIDIA i2c adapter 6 at 1:00.0 (i2c-7)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: NVIDIA i2c adapter 8 at 1:00.0 (i2c-8)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: DPDDC-A (i2c-9)
Do you want to scan it? (yes/NO/selectively): yes

Next adapter: DPDDC-C (i2c-10)
Do you want to scan it? (yes/NO/selectively): yes


Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): YES
Unloading i2c-dev... OK
Unloading cpuid... OK

My laptop - MSI GS65 8rf (This is the Arch wiki page about my laptop - MSI GS65 - ArchWiki)

Output of sensors -

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +67.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +66.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +67.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +66.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +68.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +66.0°C  (high = +100.0°C, crit = +100.0°C)
Core 5:        +66.0°C  (high = +100.0°C, crit = +100.0°C)

pch_cannonlake-virtual-0
Adapter: Virtual device
temp1:        +64.0°C  

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +75.0°C  (crit = +100.0°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +54.0°C  

BAT1-acpi-0
Adapter: ACPI interface
in0:          16.23 V  
curr1:         2.43 A  

No fan detected.

I tried using pwmconfig, but that didn’t work -

# pwmconfig version 3.6.0
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

/usr/bin/pwmconfig: There are no pwm-capable sensor modules installed

This - Fan speed control - ArchWiki recommends creating a config file for my fan with the name of my chipset, but I am not sure what is the name of my fan chipset. How do I get that information?

I think my laptop’s fan’s RPM is stuck at the base RPM and therefore causing my laptop heat up very fast. The same issue is not present on Windows (via dual boot).

I found something that might be relevant - GitHub - YoyPa/isw: Ice-Sealed Wyvern but I am a little hesitant to touch it without exploring every other option first.

Could you please help me with this?

If you had a sensor chip (sometimes called Super I/O) you’d see it in both sensors and sensors-detect.


Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): y
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found `Nuvoton NCT6793D Super IO Sensors'                   Success!
    (address 0x290, driver `nct6775')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No
sensors

...

nct6793-isa-0290
Adapter: ISA adapter
CPU Core Voltage:           1.20 V  (min =  +0.00 V, max =  +1.42 V)
ATX +5 V Voltage:           5.04 V  (min =  +4.76 V, max =  +5.24 V)
AVCC Analog Voltage:        3.41 V  (min =  +3.14 V, max =  +3.47 V)
ATX +3.3 V Voltage:         3.34 V  (min =  +3.14 V, max =  +3.47 V)
ATX +12 V Voltage:         12.10 V  (min = +11.42 V, max = +12.58 V)
CPU Graphics Voltage:       0.00 V  (min =  +0.00 V, max =  +1.42 V)
3VSB Standby Voltage:       3.41 V  (min =  +3.14 V, max =  +3.47 V)
CMOS Battery Voltage:       3.14 V  (min =  +2.00 V, max =  +3.41 V)
CPU Sustain Voltage:        1.02 V  (min =  +0.95 V, max =  +1.05 V)
DRAM Voltage:               1.36 V  (min =  +0.00 V, max =  +1.50 V)
CPU System Agent Voltage:   1.24 V  (min =  +1.00 V, max =  +1.35 V)
PCH Core Voltage:           1.03 V  (min =  +0.95 V, max =  +1.05 V)
CPU IO Voltage:             1.22 V  (min =  +0.90 V, max =  +1.25 V)
CHA_FAN1:                 1096 RPM  (min =    0 RPM)
CPU_FAN:                  2561 RPM  (min =    0 RPM)
M_2_FAN:                     0 RPM  (min =    0 RPM)
AIO_PUMP:                 1421 RPM  (min =    0 RPM)
CHA_FAN2:                 1139 RPM  (min =    0 RPM)
Motherboard Temp.:         +31.0°C  (high = +98.0°C, hyst = +95.0°C)  sensor = thermistor
CPU Temperature:           +70.0°C  (high = +98.0°C, hyst = +95.0°C)
                                    (crit = +100.0°C)


...

Maybe look in your BIOS for fan control?

We can deduce with high confidence that no driver is in the kernel that is able to provide fan speed readings on your machine. In this case, something 3rd party is more or less your only option, so ISW might be a good alternative.

That’s exactly what the Arch Wiki recommends:

Fan control by “Fancontrol (lm-sensors)” or “NoteBook Fan Control (NBFC)” is not supported, but by the use of the tool iswAUR you can control the fans in the same way as Dragon Center on Windows.

https://wiki.archlinux.org/index.php/MSI_GS65#Fan_Control

Your laptop model is supported:

But then how does MSI Dragon Center on Windows detect my fan’s RPM?

@Yochanan Actually I was one of the first users of isw (the 4th star on GitHub it looks like) and I think the MSI GS65 support was added using hexcodes from my laptop that I submitted :stuck_out_tongue: But that was in it’s infancy and I didn’t spend too much time tinkering with it.

But the reason I am hesitant to use it is because the README clearly mentions -

Use it at your own risk!

which means there might be some hardware configuration trickery that may not be advisable unless one understands the source code of isw (also the reason I had initially abandoned using it, but my laptop is running too hot these days that I need to address it).

Realistically, that can be said of just about everything in everybody’s everyday life.

Seems you have a tertiary solution set.

  1. Just run windows. (Odds are that even a different linux distro will present you with the same problem.

  2. Take the chance on the software solution.

  3. Do nothing, and maybe your laptop will turn into a plasma stream. :slight_smile:

IMO, if you can’t set up your fans in your BIOS, then all of the software fan control solutions are trickery. Yeah, I know that there are a lot of BIOS that don’t offer user fan control, and these solutions are necessary.

Whatever you decide, good luck.

1 Like

By directly communicating with the embedded controller, or by some obscure WMI interface, the possibilities are really endless; the upshot is that there is no driver in the Linux kernel which is capable of getting fan readings on your machine. With enough effort, it would, of course, be possible to discover the interface used by the Windows application and implement them in the Linux kernel.

Let me quote GPLv2, under which most of Linux is:

NO WARRANTY

  1. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  2. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

And most of the commercial and open source and free software licenses contain a “no warranty clause” anyway.


isw does not seem to be an obscure program, so I’d give it a try, but of course it’s your call.