ExtremeCooling4Linux
A downloadable tool for Linux
ExtremeCooling4Linux is a Gtk3 program to enable extreme cooling fan mode on Linux.
Extreme cooling is a special fan mode supported in Lenovo Legion laptops. This mode can increase the cooling performance of your laptop and reduces its temperature. However, this feature is only supported by Lenovo through its Windows program Lenovo Sense Nerve.
ExtremeCooling4Linux has been created to enable and support this special feature on Linux. Currently
is only tested in Lenovo Legion Y520, but it should be work in other models like Lenovo Legion Y720.
This program does not have warranty and only use at your own risk. Enable extreme cooling only in short periods of time as it can reduce the lifespan of your fans and do not use in laptops without extreme cooling support from Lenovo.
ExtremeCooling4Linux is published under GPLv3. You can download its source code from gitlab
Status | Released |
Category | Tool |
Platforms | Linux |
Rating | Rated 5.0 out of 5 stars (3 total ratings) |
Author | odintdh |
Tags | appimage, DRM Free, fan, lenovo, Open Source |
Code license | GNU General Public License v3.0 (GPL) |
Average session | A few seconds |
Languages | English, Spanish; Castilian |
Download
Install instructions
Before running the AppImage, it is necessary to make it executable. You can make it executable using your file manager or from the command line with chmod u+x ExtremeCooling4Linux-v0.3-x86_64.AppImage. ExtremeCooling4Linux AppImage needs root privileges, so you have to execute the AppImage with sudo ExtremeCooling4Linux-v0.3-x86_64.AppImage
If you use an Ubuntu or Debian based distribution you can install ExtremeCooling4Linux with the extremecooling4linux_0.3-1_all.deb package using dpkg or GDebi. This package adds an entry in your desktop menu and the ec4Linux command for your command line. On the other hand if you want to execute ExtremeCooling4Linux from a desktop panel you can install indicator-extremecooling4linux-0.1.deb package.
Comments
Log in with itch.io to leave a comment.
Running the v0.03 AppImage gave me this problem in Nobara. Cannot toggle the fan switch but everything else seems to work as intended, as I can click the different tabs and close the program as normal. Is there a way to fix this?
Work as intended. Thks and nice job! Lenovo Y720
this dosen't work on debian 11, any alternatives or suggestions to make it work?
Works really well, I'm curious where you got the documentation for the embedded controller. I'd like to get the LED's working on my keyboard again.
NOT WORKING!! HELP
ExtremeCooling4Linux as gui program
INFO:extremecooling4linux:running ExtremeCooling4Linux as PyInstaller bundle
INFO:extremecooling4linux:base_folder /tmp/.mount_ExtremWMCgTB/usr/bin
INFO:extremecooling4linux:/tmp/.mount_ExtremWMCgTB/usr/bin/usr/share/locale/
INFO:extremecooling4linux:running ExtremeCooling4Linux as gui program
INFO:extremecooling4linux:/root/.config/extremecooling4linux
INFO:extremecooling4linux:/home/wellington/Downloads
INFO:extremecooling4linux:starting program
INFO:extremecooling4linux:Root user detected
INFO:extremecooling4linux:base_folder /tmp/.mount_ExtremWMCgTB/usr/bin
Gtk-Message: 00:49:49.991: Failed to load module "canberra-gtk-module"
--- Logging error ---
Traceback (most recent call last):
File "ec4Linux.py", line 505, in <module>
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "logging/__init__.py", line 994, in emit
File "logging/__init__.py", line 840, in format
File "logging/__init__.py", line 577, in format
File "logging/__init__.py", line 338, in getMessage
TypeError: not all arguments converted during string formatting
Call stack:
File "ec4Linux.py", line 531, in <module>
File "ec4Linux.py", line 487, in execute
File "ec4Linux.py", line 478, in run_main_ui
File "ec4Linux.py", line 440, in load_window
File "ec4Linux.py", line 329, in load_window
File "ec4Linux.py", line 210, in inicializate
File "logging/__init__.py", line 1337, in error
File "logging/__init__.py", line 1444, in _log
File "logging/__init__.py", line 1454, in handle
File "logging/__init__.py", line 1516, in callHandlers
File "logging/__init__.py", line 865, in handle
File "logging/__init__.py", line 1072, in emit
File "logging/__init__.py", line 1000, in emit
Message: 'ioperm:'
Arguments: ('Operação não permitida',)
--- Logging error ---
Traceback (most recent call last):
File "ec4Linux.py", line 505, in <module>
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "logging/__init__.py", line 994, in emit
File "logging/__init__.py", line 840, in format
File "logging/__init__.py", line 577, in format
File "logging/__init__.py", line 338, in getMessage
TypeError: not all arguments converted during string formatting
Call stack:
File "ec4Linux.py", line 531, in <module>
File "ec4Linux.py", line 487, in execute
File "ec4Linux.py", line 478, in run_main_ui
File "ec4Linux.py", line 440, in load_window
File "ec4Linux.py", line 329, in load_window
File "ec4Linux.py", line 210, in inicializate
File "logging/__init__.py", line 1337, in error
File "logging/__init__.py", line 1444, in _log
File "logging/__init__.py", line 1454, in handle
File "logging/__init__.py", line 1516, in callHandlers
File "logging/__init__.py", line 865, in handle
File "logging/__init__.py", line 1000, in emit
Message: 'ioperm:'
Arguments: ('Operação não permitida',)
--- Logging error ---
Traceback (most recent call last):
File "ec4Linux.py", line 505, in <module>
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "logging/__init__.py", line 994, in emit
File "logging/__init__.py", line 840, in format
File "logging/__init__.py", line 577, in format
File "logging/__init__.py", line 338, in getMessage
TypeError: not all arguments converted during string formatting
Call stack:
File "ec4Linux.py", line 531, in <module>
File "ec4Linux.py", line 487, in execute
File "ec4Linux.py", line 478, in run_main_ui
File "ec4Linux.py", line 440, in load_window
File "ec4Linux.py", line 329, in load_window
File "ec4Linux.py", line 210, in inicializate
File "logging/__init__.py", line 1337, in error
File "logging/__init__.py", line 1444, in _log
File "logging/__init__.py", line 1454, in handle
File "logging/__init__.py", line 1516, in callHandlers
File "logging/__init__.py", line 865, in handle
File "logging/__init__.py", line 1072, in emit
File "logging/__init__.py", line 1000, in emit
Message: 'ioperm:'
Arguments: ('Operação não permitida',)
--- Logging error ---
Traceback (most recent call last):
File "ec4Linux.py", line 505, in <module>
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "logging/__init__.py", line 994, in emit
File "logging/__init__.py", line 840, in format
File "logging/__init__.py", line 577, in format
File "logging/__init__.py", line 338, in getMessage
TypeError: not all arguments converted during string formatting
Call stack:
File "ec4Linux.py", line 531, in <module>
File "ec4Linux.py", line 487, in execute
File "ec4Linux.py", line 478, in run_main_ui
File "ec4Linux.py", line 440, in load_window
File "ec4Linux.py", line 329, in load_window
File "ec4Linux.py", line 210, in inicializate
File "logging/__init__.py", line 1337, in error
File "logging/__init__.py", line 1444, in _log
File "logging/__init__.py", line 1454, in handle
File "logging/__init__.py", line 1516, in callHandlers
File "logging/__init__.py", line 865, in handle
File "logging/__init__.py", line 1000, in emit
Message: 'ioperm:'
Arguments: ('Operação não permitida',)
INFO:extremecooling4linux:trying to detect extreme cooling support
INFO:extremecooling4linux:system_manufacturer LENOVO
INFO:extremecooling4linux:product_name 81CQ
INFO:extremecooling4linux:product_version Lenovo Y720-15IKB
INFO:extremecooling4linux:chassis_type 10
INFO:extremecooling4linux:ec_wait
Segmentation fault (core dumped)
I have the same problem :c, any solution?
i had use appimage and ec4Linux.py is't work ! but how to change fan speed? can i change some args in py file to change speed?
Hi
How do i add root privileges?
This sudo command won't work for me
(pop os 21.04)
please help
You do not need root with the deb package. Try the deb package instead of Appimage
I've tried it
Theorerically works
Practically i can check extreme cooling option but my fan speed is the same
(Notebook lenovo y700 15isk 80NV on windows extreme cooling from lenovo nerve center works)
Open an issue in gitlab with the logs of the execution of the program.
Wow!
I was searching for something like lenovo nerve center and found this.
Thank you!
Understood. Thank you for your time and for creating this project! I will use the appimage and await the day that my distro of choice is upgraded to the 20.04 line.
replied to your older comment below, see if it helps.
Hello.
First of all "GOOD JOB"!!!
I have a Lenovo Y700, with Ubuntu 20.04.1 LTS.
I was able to install it, but enabling "Extreme Cooling", nothing happens.
I think that it should speed up the fan speed in a similar way than the Lenono Windows Nerve app. does, right?
I am also adding the log that appears when it is executed in cmd line.
INFO:extremecooling4linux:is_extreme_cooling_activate value register 0x40
INFO:extremecooling4linux:on_extreme_cooling_switch_activate
INFO:extremecooling4linux:activate
INFO:extremecooling4linux:activate_extreme_cooling
INFO:extremecooling4linux:trying to detect extreme cooling support
INFO:extremecooling4linux:system_manufacturer LENOVO
INFO:extremecooling4linux:product_name 80NV
INFO:extremecooling4linux:product_version Lenovo ideapad Y700-15ISK
INFO:extremecooling4linux:chassis_type 10
INFO:extremecooling4linux:ec_wait
INFO:extremecooling4linux:ec_wait correct
INFO:extremecooling4linux:ec_wait
INFO:extremecooling4linux:ec_wait correct
INFO:extremecooling4linux:ec_wait
INFO:extremecooling4linux:ec_wait correct
INFO:extremecooling4linux:is_extreme_cooling_activate value register 0x40
INFO:extremecooling4linux:Extreme cooling could be supported, current value in extreme cooling register is 0x40
Please let me know if I can add some extra info.
Hello
I can't find any thing wrong in your traces. On the other hand check if you have security boot disabled, and try to use the AppImage version with sudo or root.
I am running into an issue installing extremecooling4linux_0.3-1_all.deb.
gdebi throws a dependency error stating: Error: Dependency is not satisfiable: python3-portio
I have installed portio via pip in both python 2 and 3 with no change.
I'm sure I'm missing something obvious...Any assistance would be appreciated.
Hello
to install a deb package it needs to have its dependencies in the repositories definid in the /etc/apt/sources.list file or inside /etc/apt/sources.list.d/ directory, so Gdebi can't search dependencies from pip.
Ubuntu 20.04 has python3-portio package in the universe repository. Debian Buster also has python3-portio in its repositories. If you don't have pytho3-portio I guess that you are using a distribution older than Ubuntu 20.04 or Debian Buster. If you can't update your distribution you always can use the ExtremeCooling4Linux AppImage version that is packaged with all its dependencies.
ran into same dep error, do `pip install portio`. then simply extract the deb package with whatever (i use debtap) and run the executable with python3 (python2 doesn't work obviously).
laptop : y520
system : arch
further contact on twitter (@kkYrusobad) if u encounter more hiccups.
edit : ran into problem while starting EC, `pip` installs the module for current $USER. so run `pip install portio` as root because EC is going to ask for superuser permissions once its running and portio must be installed for user `root`. finally, working as a charm.
The .deb version does not work for me anymore, it worked fine a couple of days ago but now it does not want to start. I even reinstalled ubuntu 20.10 and it's still not working. Any way to solve this?
And this is the message that pops up:
Hello
I use Ubuntu Mate 20.10 and I have reinstalled the deb version but it works properly, so I can't reproduce your problem.
Could you execute ExtremeCooling4Linux from the terminal with the command ec4Linux and show me the traces?
On the other hand if you have enabled Secure boot recently, disable it because it can interfere in the correct execution of the program.
Secure boot was the problem, thank you for your help!
Sorry but it seems that does not work properly in my machine. When I run the .appimage it appears that I have to run with sudo, but when I do it, gives me a core dump. Do you have any idea how to solve this?
The following message is shown:
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
msg = self.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
return fmt.format(record)
File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
record.message = record.getMessage()
File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
File "/usr/bin/ec4Linux.py", line 508, in <module>
app.ec.inicializate()
File "/usr/bin/ec4Linux.py", line 210, in inicializate
logger.error('ioperm:', os.strerror(status))
Message: 'ioperm:'
Arguments: ('Operation not permitted',)
I have a similar reported issue in gitlab. Check the issue because can be the same problem .
Thank you. Now it works fine :)
Your work is great! Can you creat a hotkey setup for cooling?
Thank you so much for this. This is absolutely a godsend for me.
Another really unique and beneficial utility for the Linux community!
It's great that it's GTK3 compliant off the bat so theming is native.
Also my love for the minimal and portable Appimage format.
Thanks for your comment and support!!!