i8kctl not working for Dell Inspiron fan control
I am trying to control the fan speed manually using the i8kctl package for dell laptops.
System - Ubuntu 16.04, 4.17.19-041719-generic Dell 7567 Inspiron
I followed the instructions in https://askubuntu.com/a/398635 answer, succesfully disabling the BIOS fan control.
However, when I do
ik8ctl fan 2 2
The output is
-1 -1
I think this means that the fan speed setting was not successful.
ik8ctl fan
returns 0 0
indicating that no fans are on, as the BIOS fan control has been disabled.
I have no issues turning BIOS control on, but I need the fan speed at max at times, which the BIOS is not doing due to some weird reasons.
Why is am8ctl not able to set the fan speeds?
UPDATE: Running as root
sudo ik8ctl fan 2 2
returns 0 0, rather than the earlier -1 -1. Still doesn't quite work as expected.
UPDATE2 Looking at this bug report solution (https://bugs.launchpad.net/i8kutils/+bug/1620580), I force loaded the modules
sudo rmmod dell-smm-hwmon
$ sudo modprobe dell-smm-hwmon restricted=0
The fan control works now for a limited time (1 second). Looks like the bias still takes control after for some reason.
Solution 1:
I found a solution for my Vostro 5481. It might work for you (and others) as well.
Required
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo ./dell-bios-fan-control 0
If you get an error like this
ioperm:: Operation not permitted
ioperm:: Operation not permitted [1]
4701 segmentation fault
you need to go to your BIOS/UEFI and disable SECURE BOOT. Then run the command again. Output should now be BIOS CONTROL DISABLED
.
Quick testing
You can now go and check solutions for controlling the fan that suite your needs. If you want to quickly test, you can use i8kutils:
git clone https://github.com/vitorafsr/i8kutils
cd i8kutils
make
sudo ./i8kctl fan 2 2
Your fan should now run at the highest possible settings without the BIOS/UEFI interfering.
Controlling the fan in day to day business
Now that your BIOS/UEFI is no longer controlling the fan, you have to take care of it on your own. I'd suggest https://linux.die.net/man/8/fancontrol for this. It can easily be configured using pwmonfig
(which ships with it) and adds itself as a system service.
Big THANKS
Shoutout to Tom Freudenberg for creating dell-bios-fan-control
and for pointing me to disabling SECURE_BOOT
when I got the Operation not permitted
error.
https://github.com/TomFreudenberg
https://askubuntu.com/users/293845/tom-freudenberg.