- Device: Dell XPS 9560 (2017)
- BIOS: 1.31.0
- Distribution: Ubuntu Server 24.04.2 LTS
- Kernel: 6.8.0-55-generic
- Usage: As home server. 24/7 for three months until now
Fans didn't switch off completely anymore even when temperatur was below 30°C.
See here for an overview: https://wiki.archlinux.org/title/Fan_speed_control
Install i8kutils.
Testing i8kfan 0 0
, i8kfan 2 2
.
Saw the fans still running at same RPM as before.
Clone https://github.com/TomFreudenberg/dell-bios-fan-control.
Run dell-bios-fan-control 0
.
Saw ioperm:: Operation not permitted
.
Disable secure boot (make sure you know about the implications).
Now dell-bios-fan-control 0
disables the the bios fan control.
For me, i8kutils installed with a default config file and a running service so it worked out of the box now. However, when rebooting the fan control is still off which puts us in danger of overheating during boot phase. Hence, we should create a service that takes fan control on startup and gives it back to bios on shutdown.
https://github.com/gilbsgilbs/dell-bios-fan-control-git
Enable this service.
Don't forget to copy dell-bios-fan-control
to /usr/bin
where the service definition expects it.
Done!
Optional: Edit temperature thresholds in /etc/i8kmon.conf
I used the default and
- increased the threshold in ac mode because my home server should be quiet as much as possible
- set the speed values (2500 is what I saw when the BIOS had control. 4900 was displayed by
sensors
)
# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
# These were tested on the I8000. If you have a different Dell laptop model
# you should check the BIOS temperature monitoring and set the appropriate
# thresholds here. In doubt start with low values and gradually rise them
# until the fans are not always on when the cpu is idle.
set config(0) {{0 0} -1 60 -1 60}
set config(1) {{1 1} 55 70 55 70}
set config(2) {{2 2} 60 75 65 80}
set config(3) {{2 2} 70 128 75 128}
# Speed values are set here to avoid i8kmon probe them at every time it starts.
set status(leftspeed) "0 2500 3500 4900"
set status(rightspeed) "0 2500 3500 4900"
sudo apt install libsmbios-bin -y
sudo smbios-thermal-ctl -i
sudo smbios-thermal-ctl --set-thermal-mode=Quiet
This probably should have worked, hadn't the fan control been flawed before anyway.
No acpi_osi
Grub setting worked.
i8k without dell-bios-fan-control didn't work. dell-bios-fan-control didn't work with secure boot enabled
Configuring thermald
didn't work either.
It doesn't seem to handle fan speed but only throttling the CPU when overheating