Sensors-detect no fans

fan speed sensors not detected

i answered yes to all sudo sensors-detect

output of sensors

Adapter: ISA adapter
Package id 0:  +57.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:        +56.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:        +55.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:        +56.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:        +57.0°C  (high = +80.0°C, crit = +100.0°C)

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

output of 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.

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

i have fans:
gpu_fan
cpu_fan
chassic_fan_2

uefi see this fans

Please check if your motherboard has “pwm circuitry”

Below some packages with the word *fan in it. You might also have to install something like this.
Please before installing check with dnf info PACKAGE-NAME for what exactly it is and if it fits for your hardware.

dnf rq --whatprovides *fan
************************
gfan-0:0.6.2-14.fc37.x86_64
libgfan-0:0.6.2-14.fc37.x86_64
mbpfan-0:2.3.0-2.fc37.x86_64
thinkfan-0:1.3.1-2.fc37.x86_64
zcfan-0:1.2.1-1.fc37.x86_64
1 Like

update:

  1. my motherboard has pwm
  2. i checked on: debian sees gpu fan but not cpu_fan and chassic , and windows with Hwmonitor see all fans correctly but later fans duplicates and showing 0 rpm,
  3. i have asus motherboard
  4. i checked thinkfan from dnf and it gives error: ERROR: Error scanning /sys/devices/pci0000:00/0000:00:03.1/0000:27:00.0/hwmon: No such file or directory

This is for thinkpad, you said you have a asus board.

how to install it?

in readme.md it says that it can be installed with gitpack but i cant install gitpack because of this error:

installing GitPack locally
cat: /var/lock/gitpack-1000.lock/pid: No such file or directory
E17: gitpack-1000.lock was acquired by another process 
if the problem persists, try rebooting

also i tried run sudo bash src/asus_fan_control but i gives error:

file /proc/acpi/call does not exist

also it have acpi_call package but i cant find it in dnf

update: i found acpi_call on github but it outated and dont working

I had the same issue with Asus b450m, sensors did not detect any fans in Fedora 39.
I downloaded the driver from GitHub - a1wong/it87 and it detected all my fans

Download the driver and build

git clone https://github.com/a1wong/it87.git
    cd it87/
    make && make install
    sudo ren /lib/modules/$(uname -r)/kernel/drivers/hwmon/it87.ko.xz it87.ko.xz.bak
    sudo cp it87.ko /lib/modules/$(uname -r)/kernel/drivers/hwmon/it87.ko.xz

If you have secure boot enabled you must sign the driver. To sign the driver i have found a guide from sysguides.com by Madhu Desai Enable Fedora UEFI Secure Boot with Custom Keys and Self-Signed Bootloader, Kernel, and Modules

If secure boot is disabled skip until “Now you should be able to load the module”

To sign the driver do :

sudo dnf install efitools keyutils mokutil openssl pesign sbsigntools \
    kernel-devel-$(uname -r)

Make a backup of the original keys.

sudo -i
mkdir -vp /keys/{auth,bak,cfg,esl,ms,oem}
efi-readvar > /keys/bak/all-efi-keys-original.txt
efi-readvar -v PK  -o /keys/bak/PK-original.esl
efi-readvar -v KEK -o /keys/bak/KEK-original.esl
efi-readvar -v db  -o /keys/bak/db-original.esl
efi-readvar -v dbx -o /keys/bak/dbx-original.esl
ls -lh /keys/bak/

After running ls -lh /keys/bak/ it should look like this

Generate Your Own Secure Boot Keys
Create a new file called PK.cfg

vim /keys/cfg/PK.cfg

Add the following lines to it

[ req ]
default_bits         = 4096
encrypt_key          = no
string_mask          = utf8only
utf8                 = yes
prompt               = no
distinguished_name   = my_dist_name
x509_extensions      = my_x509_exts

[ my_dist_name ]
commonName           = SysGuides Platform Key
emailAddress         = info@sysguides.com

[ my_x509_exts ]
keyUsage             = digitalSignature
extendedKeyUsage     = codeSigning
basicConstraints     = critical,CA:FALSE
subjectKeyIdentifier = hash

If you want change only default_bits, commonName and emailAddress

Then run

openssl req -x509 -sha256 -days 5490 -outform PEM \
    -config /keys/cfg/PK.cfg \
    -keyout /keys/PK.key -out /keys/PK.pem

cp -v /keys/cfg/{PK,KEK}.cfg

sed -i 's/Platform Key/Key Exchange Key/g' /keys/cfg/KEK.cfg

openssl req -x509 -sha256 -days 5490 -outform PEM \
    -config /keys/cfg/KEK.cfg \
    -keyout /keys/KEK.key -out /keys/KEK.pem

openssl x509 -text -noout -inform PEM -in /keys/KEK.pem

cp -v /keys/cfg/{PK,db}.cfg

sed -i 's/Platform Key/Signature Database/g' /keys/cfg/db.cfg

openssl req -x509 -sha256 -days 5490 -outform PEM \
    -config /keys/cfg/db.cfg \
    -keyout /keys/db.key -out /keys/db.pem

openssl x509 -text -noout -inform PEM -in /keys/db.pem
ls -l /keys | grep -v ^d

It should look like this

Then

echo "$(uuidgen --random)" > /keys/guid.txt

cert-to-efi-sig-list -g "$(< /keys/guid.txt)" \
    /keys/PK.pem /keys/esl/PK.esl

sign-efi-sig-list -g "$(< /keys/guid.txt)" \
    -t "$(date +'%F %T')" \
    -c /keys/PK.pem -k /keys/PK.key \
    PK \
    /keys/esl/PK.esl /keys/auth/PK.auth

cert-to-efi-sig-list -g "$(< /keys/guid.txt)" \
    /keys/KEK.pem /keys/esl/KEK.esl

sign-efi-sig-list -g "$(< /keys/guid.txt)" \
    -t "$(date +'%F %T')" \
    -c /keys/PK.pem -k /keys/PK.key \
    KEK \
    /keys/esl/KEK.esl /keys/auth/KEK.auth

cert-to-efi-sig-list -g "$(< /keys/guid.txt)" \
    /keys/db.pem /keys/esl/db.esl

sign-efi-sig-list -g "$(< /keys/guid.txt)" \
    -t "$(date +'%F %T')" \
    -c /keys/KEK.pem -k /keys/KEK.key \
    db \
    /keys/esl/db.esl /keys/auth/db.auth

Then copy to usb stick db.auth and KEK.auth and reboot to uefi and add them to secure boot.
Now we must sign it87.ko.xz

sudo -i

/usr/src/kernels/$(uname -r)/scripts/sign-file \
    sha256 \
    /keys/db.key \
    /keys/db.pem \
    /lib/modules/$(uname -r)/kernel/drivers/hwmon/it87.ko.xz

Verify that the module has been signed

modinfo -F signer /lib/modules/$(uname -r)/kernel/drivers/hwmon/it87.ko.xz

Now you should be able to load the module

sudo modprobe it87
sensors

Output

it8655-isa-0290
Adapter: ISA adapter
in0:         839.00 mV (min =  +1.20 V, max =  +1.56 V)  ALARM
in1:           2.52 V  (min =  +2.23 V, max =  +2.58 V)
in2:           2.00 V  (min =  +2.25 V, max =  +2.68 V)  ALARM
in3:           2.00 V  (min =  +2.39 V, max =  +2.55 V)  ALARM
in4:           2.01 V  (min =  +2.58 V, max =  +0.67 V)  ALARM
in5:           1.93 V  (min =  +1.90 V, max =  +1.10 V)  ALARM
in6:           2.00 V  (min =  +2.65 V, max =  +2.58 V)  ALARM
3VSB:          3.36 V  (min =  +1.37 V, max =  +1.35 V)  ALARM
Vbat:          3.23 V  
+3.3V:         3.36 V  
fan1:         275 RPM  (min =   15 RPM)
fan2:         268 RPM  (min =   11 RPM)
fan3:         164 RPM  (min =   50 RPM)
temp1:        +44.0°C  (low  =  -1.0°C, high = +73.0°C)
temp2:        +25.0°C  (low  = +119.0°C, high = +124.0°C)  sensor = disabled
temp3:        +27.0°C  (low  = -99.0°C, high = +30.0°C)  sensor = disabled
temp4:        +27.0°C  (low  = -17.0°C, high = -102.0°C)  ALARM  sensor = disabled
temp5:        +27.0°C  (low  = +52.0°C, high = -21.0°C)  ALARM  sensor = disabled
temp6:        +27.0°C  (low  = -27.0°C, high = +24.0°C)  ALARM  sensor = disabled
intrusion0:  ALARM

To load the driver automatically

sudo vim /etc/modules-load.d/it87.conf

and add 

# Load it87.ko.xz at boot
it87

Now the driver should load automatically

1 Like

@dandraghas as you not marked a solution, can we set the solution from @pof42428 ?