CPU fan control seems elusive

Hello there, I’ve recently decided to install EndeavourOS and I’ve kinda felt on a pit about fan control. Not my first time with Linux or Arch for that matter, but assume I know nothing.

I’ve installed coolercontrol and I have full control of the GPU fan (an AMD Radeon RX 6600 XT), but CPU (AMD Ryzen 7 1700) only shows temps. My motherboard is an ASUS PRIME X-370 PRO.

I’ve executed the first command here, but no drivers seem to be found. If someone could please give me a hand, I’d appreciate it.

Did you install the lm_sensors package ?

As you’ve got an Ryzen CPU of the 1st gen, you may also want to install zenpower3-dkms or alternatively ryzen_smu-dkms-git if zenpower3-dkms won’t detect the temperature sensors.

In terms of the actual fan control, I didn’t liked CoolerControl as well as CoreCtrl and ended up with fan2go and it’s fan2go-tui.

Yeah, I have lm_sensors 1:3.6.2-1.

I’ve installed both packages. No RPM still on sensors, but the CPU has extra temp sensors now! This is what sensors-detect gives me:

Now follows a summary of the probes I have just done. 
Just press ENTER to continue:  
 
Driver `k10temp': 
  * Chip `AMD Family 17h thermal sensors' (confidence: 9) 
 
Driver `to-be-written': 
  * ISA bus, address 0x290 
    Chip `ITE IT8665E Super IO Sensors' (confidence: 9) 
 
Note: there is no driver for ITE IT8665E Super IO Sensors yet. 
Check https://hwmon.wiki.kernel.org/device_support_status for updates.

Just check the output of sensors then.

If you’re uncertain, you could use sensors | eos-sendlog and the eos-sendlog tool will upload it to an pastebin which you could share here.

EDIT:
Sorry, it’s late already where I’m at.
I missed the part on the missing driver for the IT8665E sensors.

Check it87-dkms-git, that package should provide the missing driver for the IT8665E Super I/O chip according to the github site. There is also an alternate lm_sensors-it87-git package that would require it as a dependency.

Downloaded that, don’t think it did anything yet.

This is the output of sensors, so that everything is clear:

[vandraren@GAJNOR ~]$ sudo sensors
amdgpu-pci-0c00
Adapter: PCI adapter
vddgfx:      725.00 mV 
fan1:         625 RPM  (min =    0 RPM, max = 3300 RPM)
edge:         +37.0°C  (crit = +100.0°C, hyst = -273.1°C)
                       (emerg = +105.0°C)
junction:     +37.0°C  (crit = +110.0°C, hyst = -273.1°C)
                       (emerg = +115.0°C)
mem:          +34.0°C  (crit = +100.0°C, hyst = -273.1°C)
                       (emerg = +105.0°C)
PPT:           3.00 W  (cap = 145.00 W)
pwm1:             15%  MANUAL CONTROL
sclk:          38 MHz 
mclk:          96 MHz 

nvme-pci-0d00
Adapter: PCI adapter
Composite:    +37.9°C  (low  = -40.1°C, high = +83.8°C)
                       (crit = +87.8°C)
Sensor 1:     +57.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)

zenpower-pci-00c3
Adapter: PCI adapter
SVI2_Core:     1.14 V  
SVI2_SoC:    894.00 mV 
Tdie:         +52.6°C  (high = +95.0°C)
Tctl:         +52.6°C  
SVI2_P_Core:  39.03 W  
SVI2_P_SoC:    8.39 W  
SVI2_C_Core:  34.29 A  
SVI2_C_SoC:    9.38 A  

nvme-pci-0100
Adapter: PCI adapter
Composite:    +29.9°C  (low  = -273.1°C, high = +76.8°C)
                       (crit = +78.8°C)
Sensor 1:     +29.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +39.9°C  (low  = -273.1°C, high = +65261.8°C)

Check this pinned comment on the package it87-dkms-git which was posted by another user of EndeavourOS.

In short, modprobe it87 might not be sufficient to load that driver persistently. I would adopt the changes the comment is suggesting. And execute sudo dracut-rebuild afterwards, if I’m not mistaken.

After an reboot, you’ld have to execute sensors-detect again.

Seems like this did it!!

I got four extra fans:

it8665-isa-0290
Adapter: ISA adapter
in0:           1.11 V  (min =  +1.27 V, max =  +2.41 V)
in1:           2.50 V  (min =  +2.77 V, max =  +1.95 V)
in2:           1.98 V  (min =  +0.00 V, max =  +2.05 V)
in3:           2.00 V  (min =  +2.64 V, max =  +2.23 V)
in4:          33.00 mV (min =  +2.64 V, max =  +2.42 V)
in5:          33.00 mV (min =  +0.69 V, max =  +2.74 V)
in6:          33.00 mV (min =  +2.08 V, max =  +2.63 V)
3VSB:          3.29 V  (min =  +4.51 V, max =  +5.54 V)
Vbat:          3.23 V  
+3.3V:         3.29 V  
fan1:        1588 RPM  (min =   10 RPM)
fan2:           0 RPM  (min =   10 RPM)  ALARM
fan3:           0 RPM  (min =   10 RPM)  ALARM
fan5:           0 RPM  (min =   -1 RPM)  ALARM
fan6:           0 RPM  (min =   -1 RPM)  ALARM
temp1:        +61.0°C  (low  = +53.0°C, high = -77.0°C)
temp2:        +37.0°C  (low  = -11.0°C, high = -38.0°C)  sensor = thermistor
temp3:        +51.0°C  (low  = +62.0°C, high = -27.0°C)  sensor = thermistor
temp4:        +51.0°C  (low  = +61.0°C, high =  -7.0°C)  sensor = thermistor
temp5:        +51.0°C  (low  = -26.0°C, high = +79.0°C)  sensor = thermistor
temp6:        +51.0°C  (low  = -82.0°C, high = -33.0°C)  sensor = thermistor
pwm1:             26%  (freq = 23437 Hz)
pwm2:             76%  (freq = 23437 Hz)
pwm3:             76%  (freq = 23437 Hz)
pwm6:            128%  (freq = 23437 Hz)
intrusion0:  ALARM

One will be the CPUs, I hope.

In case you choose fan2go, it will automatically detect the fans. But as there is only one pwm signal present currently, that’s most likely the one.

Check the configuration part of the github repo site. It might be a bit overwhelming and fiddly to set up. But once configured correctly and mapped with proper fan curves, it would only require the activation of the systemd service to run permanently.

Will do, many thanks for everything!

1 Like