Skip to content

Instantly share code, notes, and snippets.

@Chester-Gillon
Last active February 15, 2025 16:23
Show Gist options
  • Save Chester-Gillon/9c8a377931d2cd3ca3f03009ec8594a4 to your computer and use it in GitHub Desktop.
Save Chester-Gillon/9c8a377931d2cd3ca3f03009ec8594a4 to your computer and use it in GitHub Desktop.
Linux hwmon class

0. Introduction

ASUS motherboard fan control under Linux mentions use of the pwmconfig command to identify fans.

Packages which provide pwmconfig:

  • Ubuntu 24.04.1 LTS : fancontrol
  • AlmaLinux 8.10 and 9.4 : lm_sensors

1. HP Z640 running Ubuntu 24.04.1 LTS

Output on a HP Z640 running Ubuntu 24.04.1 LTS:

$ sudo pwmconfig
# 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.

Found the following devices:
   hwmon0 is hp
   hwmon1 is coretemp
   hwmon2 is coretemp
   hwmon3 is nouveau

Found the following PWM controls:
   hwmon3/pwm1           current value: 34
hwmon3/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) n
There are no usable PWM outputs.

Of the devices:

  • The pwm1 identified is on the Quadro K4200 graphics card.
  • The coretemp devices contain temperature measurement for the dual E5-2620 v3 processors.

2. HP Z4 G4 runnuing AlmaLinux 8.10

Output on a HP Z4 G4 runnuing AlmaLinux 8.10:

$ sudo /usr/sbin/pwmconfig
[sudo] password for mr_halfword: 
# pwmconfig version 3.4.0+git
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.

Found the following devices:
   hwmon0 is nouveau
   hwmon1 is mlx5_0000:21:00.0
   hwmon2 is mlx5_0000:21:00.1
   hwmon3 is coretemp

Found the following PWM controls:
   hwmon0/pwm1           current value: 100

Giving the fans some time to reach full speed...
Found the following fan sensors:
   hwmon0/fan1_input     current speed: 2414 RPM

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue: ^C

Of the devices:

  • The pwm1 identified is on the Quadro P2000 graphics card.
  • The coretemp device contains temperature measurements for the W-2123 processor.
  • The mlx5* devices contain temperature measurements for the ConnectX-4 Lx En Ethernet adapter.

3. HP Z6 G4 running AlmaLinux 9.4

Output of HP Z6 G4 running AlmaLinux 9.4 (from a live image):

$ sudo /usr/sbin/pwmconfig 
# 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.

Found the following devices:
   hwmon0 is mlx5_0000:2d:00.0
   hwmon1 is pch_lewisburg
   hwmon2 is coretemp
   hwmon3 is coretemp
   hwmon4 is nouveau

Found the following PWM controls:
   hwmon4/pwm1           current value: 21
hwmon4/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) n
There are no usable PWM outputs.

Of the devices:

  • The pwm1 identified is on the Quadro K620 graphics card.
  • The mlx5 contains a temperature measurement for the Mellanox ConnectX-4 adapter
  • The pch_lewisburg contains a temperature measurement for the platform hub.
  • The coretemp devices contain temperature measurements for the dual Xeon(R) Gold 6148 processors. Looks like one measurement for the package, and one for each of the cores (20 cores per processor).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment