A Dell thermal management GUI to control fan speeds and monitor temperatures. Information is taken from dell-smm-hwmon, i8kutils, Sysfs and (SM)BIOS - created as a quick hack for my own needs (screenshots may be of an older version).
i8kgui uses dell-smm-hwmon
, i8kutils
and Sysfs to gather information such as
CPU temperature and fan speeds. It also supports thermal management using
(SM)BIOS modes.
dell_smm_hwmon
kernel module via Sysfs, instead of
using /proc/i8k
CPU Governor
is clickedThis version has only been tested on Ubuntu 20.04/23.04 (it should also work on 22.04)
and with a Dell laptop (XPS 7590). The installation script undertakes a
system-wide installation with all optional components (i.e. cpupower-gui
and
undervolt
). i8kgui itself is installed within a users $HOME
directory. Please see below for other install options.
git clone https://github.com/razman786/i8kgui
cd i8kgui
./install_i8kgui_ubuntu.sh
Install option | i8kutils | Dell BIOS fan control | libsmbios | cpupower-gui | undervolt |
---|---|---|---|---|---|
-all |
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
-norm |
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | ||
-min |
:heavy_check_mark: | ||||
-fix |
:heavy_check_mark: | :heavy_check_mark: | |||
-smbios |
:heavy_check_mark: | :heavy_check_mark: | |||
-power |
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
See ./install_i8kgui_ubuntu.sh -h
for usage information.
This guide has only been tested on Ubuntu 20.04/23.04 and with a Dell XPS laptop.
The dell-smm-hwmon kernel module is required for basic functionality.
Please install and configure i8kutils from https://github.com/vitorafsr/i8kutils. On Ubuntu the following can be run:
sudo apt install i8kutils
Some systems require this step, while others do not. For example, a Dell XPS 7590 needs the BIOS fan control installed, but a Dell Inspiron 5575 does not.
Please install Dell BIOS Fan Control from
https://github.com/TomFreudenberg/dell-bios-fan-control and install it into
/usr/bin/
.
If you are not sure that you have GCC installed, please run this first sudo apt install build-essentials
, then:
git clone https://github.com/TomFreudenberg/dell-bios-fan-control.git
cd dell-bios-fan-control
make
sudo cp dell-bios-fan-control /usr/bin
Please install this service file
from https://github.com/gilbsgilbs/dell-bios-fan-control-git/blob/master/dell-bios-fan-control.service
into /etc/systemd/system/
curl -O https://raw.githubusercontent.com/gilbsgilbs/dell-bios-fan-control-git/master/dell-bios-fan-control.service
sudo cp dell-bios-fan-control.service /etc/systemd/system/
sudo systemctl enable dell-bios-fan-control.service
If supported by your system, libsmbios will allow BIOS thermal modes to be changed, amongst other features. On Ubuntu, please install the following package to interface with (SM)BIOS information:
sudo apt install python3-libsmbios
On Ubuntu, install the following optional package to change the CPU Governor:
sudo apt install cpupower-gui
The polkit action files will allow thermal controls to be changed without
requiring a user password. If your installation of i8kgui
is frequently asking
for a password, please do the following:
Using a text editor, change the I8KGUI_THERMAL_PATH
placeholder in the
i8kgui/polkit_actions/ubuntu/com.ubuntu.pkexec.i8kgui_thermal_control.policy
file to the correct location, i.e. /home/someuser
To manually install the polkit action files, do the following:
sudo cp i8kgui/polkit_actions/ubuntu/* /usr/share/polkit-1/actions
Please note that, the installation script by default will use the polkit action files for
Ubuntu. Polkit action files for Manjaro Linux (tested with version 22.1.3) are
located in i8kgui/polkit_actions/manjaro
.
On Ubuntu 20.04 and 22.04 use the following:
pip3 install i8kgui --user
For Ubuntu 23.04 the command needs to be altered:
pip3 install i8kgui --user --break-system-packages
git clone https://github.com/razman786/i8kgui
On Ubuntu 20.04 and 22.04 use the following:
pip3 install . --user
For Ubuntu 23.04 the command is as follows:
pip3 install . --user --break-system-packages
git clone https://github.com/razman786/i8kgui
git checkout development && git pull
pip3 install . --user
For Ubuntu 20.04 and 22.04 use the following:
pip3 uninstall i8kgui
For Ubuntu 23.04 use the following:
pip3 uninstall i8kgui --break-system-packages
Please ensure that you have configured i8kutils before starting!
Once i8kutils is correctly configured using the /etc/i8kmon.conf
file, please
run the following to enable the services if they are not already running.
sudo systemctl enable dell-bios-fan-control.service; sudo systemctl enable i8kmon.service
i8kgui can be loaded by searching in Ubuntu's Show Applications
icon in the
application dock. Optionally, i8kgui can be loaded from a terminal by executing
i8kgui
.
By default, i8kgui displays i8kutils information, however it does facilitate thermal management using the (SM)BIOS. If you enable this feature typically four fan modes will be available. Please note that, using 'Quiet', or 'Cool Bottom' modes will reduce performance due to CPU power capping. Changing (SM)BIOS thermal modes may require entering a user password, if polkit actions have not been configured.
Disabling (SM)BIOS thermal management in the settings will re-enable i8kutils's management and configuration.
The i8kmon_sample_conf
directory contains my personal i8kmon.conf
configuration file, used on a Dell XPS 7590 (Intel i7, BIOS version 1.14.1).
Undervolt is installed using the following settings to avoid thermal throttling:
undervolt -v --gpu -0 --core -121 --cache -121 --uncore -121 --analogio 0 --temp 100
Systems that have been reported to be working:
Please note the author takes no responsibility for any damage that occurs from using this software and/or configurations.
Please open an issue here.
Delapouite for the Computer Fan Icon (CC BY 3.0)