wer-wolf / i8kutils Goto Github PK
View Code? Open in Web Editor NEWThis project forked from vitorafsr/i8kutils
Fan control for some Dell laptops
Home Page: https://launchpad.net/i8kutils
License: GNU General Public License v3.0
This project forked from vitorafsr/i8kutils
Fan control for some Dell laptops
Home Page: https://launchpad.net/i8kutils
License: GNU General Public License v3.0
I am using Arch linux (6.9.4-zen1-1-zen) on dell G15 5511 and installed tcl / tcllib build and ran i8kctl / i8kmon both shows following error:
can't find package i8k::thermal
while executing
"package require i8k::thermal"
(file "/usr/bin/i8kmon" line 27)
any help will be greatly appreciated
Hello and thank you so much for your work. I was seriously fed up with the BIOS controlled fan, how dare they? :)
I've finally gotten i8kutils to work on my Latitude 7320 and would like to request it being put on the official whitelist. Here are the lines I added to the module code
{
.ident = "Dell Latitude 7320",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Latitude 7320"),
},
.driver_data = (void *)&i8k_fan_control_data[I8K_FAN_34A3_35A3],
},
Not sure if the fan control data is correct. I've just copied it from the other Latitudes.
Last but not least, here's my dmidecode output. If you like, I'd be happy to know how you can read the fan control data from the log. I couldn't :)
All the best
Hello @Wer-Wolf,
I have installed this fork, but it doesn't seem to work. I am using Arch Linux with kernel version 6.9.1-arch1-1 on a Dell G15 5511 laptop.
Here is the testing configuration I'm using (located at /etc/i8kmon.conf):
set config(timeout) 2
# Only update fan speed when thresholds where exceeded
set config(ondemand) 0
# Number of temperature configurations
set config(num_configs) 5
# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
set config(0) {{2 2} -1 50 -1 50}
set config(1) {{2 2} 45 55 45 55}
set config(2) {{2 2} 50 65 50 65}
set config(3) {{2 2} 60 70 60 70}
set config(4) {{2 2} 65 128 65 128}
Output of sudo i8kmon -v
command:
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'config entry 0: battery = -1 °C - 50 °C, ac = -1 °C - 50 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'config entry 1: battery = 45 °C - 55 °C, ac = 45 °C - 55 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'config entry 2: battery = 50 °C - 65 °C, ac = 50 °C - 65 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'config entry 3: battery = 60 °C - 70 °C, ac = 60 °C - 70 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'config entry 4: battery = 65 °C - 128 °C, ac = 65 °C - 128 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [info] 'power status: running on ac power (Adapter 0: on-line)'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'temperature above state 0 threshold (50 °C)'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'temperature above state 1 threshold (55 °C)'
[Tue May 21 21:09:24 EEST 2024] [i8kmon] [debug] 'switched to state 2'
[Tue May 21 21:09:26 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:26 EEST 2024] [i8kmon] [debug] 'switched to state 2'
[Tue May 21 21:09:28 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:28 EEST 2024] [i8kmon] [debug] 'switched to state 2'
[Tue May 21 21:09:30 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:31 EEST 2024] [i8kmon] [debug] 'switched to state 2'
[Tue May 21 21:09:33 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:33 EEST 2024] [i8kmon] [debug] 'switched to state 2'
[Tue May 21 21:09:35 EEST 2024] [i8kmon] [debug] 'temperature: 57 °C'
[Tue May 21 21:09:35 EEST 2024] [i8kmon] [debug] 'switched to state 2'
Output of i8kctl
command:
fan 1 state: 1
fan 2 state: 1
temperature 1: 57 °C
temperature 2: 53 °C
temperature 3: 58 °C
temperature 4: 53 °C
temperature 5: 37 °C
temperature 6: 53 °C
Output of systemctl status i8kmon.service
:
● i8kmon.service - DELL notebook fan control
Loaded: loaded (/usr/lib/systemd/system/i8kmon.service; disabled; preset: disabled)
Active: active (running) since Tue 2024-05-21 21:08:42 EEST; 17s ago
Docs: man:i8kmon(1)
Process: 47611 ExecStartPre=/usr/bin/i8kctl mode1 manual (code=exited, status=1/FAILURE)
Main PID: 47612 (tclsh)
Tasks: 2 (limit: 18841)
Memory: 2.3M (peak: 2.9M)
CPU: 186ms
CGroup: /system.slice/i8kmon.service
└─47612 tclsh /usr/bin/i8kmon
May 21 21:08:42 archlinux systemd[1]: Starting DELL notebook fan control...
May 21 21:08:42 archlinux i8kctl[47611]: i8kctl: fan 1 mode controls not found: couldn't open "/sys/class/hwmon/hwmon4/pwm1_enable": no such file or directory
May 21 21:08:42 archlinux systemd[1]: Started DELL notebook fan control.
Hi @Wer-Wolf ,
Thank you for creating this fork of i8kutils and your work on the linux community!
I've been trying to control the fans on my XPS 13 but to no avail.
I tried both the vitorafsr version of i8kutils and your fork but the fans doesn't seem to react in both cases.
In particuliar, running i8kctl
on the original i8kutlils returns :
1.0 1.1 CXGGY04 -1 -1 -1 -1 -1 -1 -1
However running your fork doesn't return any output.
Of note, I have successfully loaded the i8k kernel module with modprobe dell-smm-hwmon ignore_dmi=1
and disabled secure boot.
I have noticed however that running dellfan
doesn't give any result either despite the fact that the fans are detected by lm-sensors
.
I'm a bit lost to be honest, do you have any ideas ?
Hi @Wer-Wolf,
Thank you for creating this fork of i8kutils!
I'm trying to use in on my XPS 15 9550 and I've got everything installed. I want to make sure it was working by using a config that should have the fans running on full power at all times. This doesn't seem to be working though, and instead cycles between high and nothing. I'm guessing that it's because the BIOS is still controlling the fans. I am running 'dell-bios-fan-control 0' before running the service, but I'm not using this line ExecStartPre=/usr/bin/i8kctl mode1 manual
, because it didn't work on my system.
The config is:
set config(0) {{0 0} -1 0 -1 0}
set config(1) {{0 1} 2 2 2 2}
set config(2) {{1 1} 3 3 3 3}
set config(3) {{2 2} 4 4 4 4}
Any ideas?
I'm trying to install i8kutils on NixOS. As far as I can tell, there's no existing package for it and the i8k interface doesn't seem to be part of Nix's kernel .
That means, the "OG" i8kutils won't work anyway (at least not without rolling my own kernel), this fork here should work in principle, but there's no nix configuration in here.
I'll try to create a configuration, but would be glad for support (for Nix and i8kutils itself).
NixOS supports out-of-tree packages, that can be installed directly from Github: https://discourse.nixos.org/t/how-to-install-package-from-github/444
A simple .nix file and a config-snippet should be enough.
All of this is pretty vague as I don't know exactly, what to do yet.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.