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