Lenovo Legion Linux Support

Other language versions of this README file:
This project is not affiliated with Lenovo in any way
Lenovo Legion Linux (LLL) brings additional drivers and tools for Lenovo Legion series laptops to Linux. It
is the alternative to Lenovo Vantage or Legion Zone (both Windows only).
It allows you to control features like the fan curve, power mode, power limits, rapid charging, and more. This has been achieved through reverse engineering and disassembling the ACPI firmware, as well as the firmware and memory of the embedded controller (EC).
:star: Please star this repository if this is useful or might be useful in the future.
:star2: My goal is to merge the driver into the main Linux kernel so it comes automatically with Linux and no recompilation is required after a Linux update
:boom: Starring shows that this is useful to me and the Linux community so hopefully a merge into the Kernel is possible.
:rocket: Features
- [X] Light on RAM and CPU and without telemetry
- [X] Fully controllable using scripts or from the command-line
- [X] Simple GUI replacement for Lenovo Vantage: Fan curve, FN Lock, Win Key, Touchpad Power, Camera Power, Battery Conservation, Rapid Charging, Charge output from always on USB, Display Overdrive (only shown when the firmware reports that the panel supports it; not on OLED panels such as the Legion Pro 7 16IAX10H's), Y-Logo LED Light, IO-Port LED Light, Hybrid Mode (GSync), CPU and GPU Overclock:
- Switch battery conservation mode; keep battery at 60% when on AC to prolong battery life (https://bugs.kde.org/show_bug.cgi?id=441057)
- Toggle Fn lock; Use special function on F1-F12 keys without pressing the Fn key
- Enable or disable touchpad
- [X] Set a fully featured custom fan curve with up to 10 points:
- Set temperature points for when the fan speed (level) should change
- Use CPU, GPU and IC temperature to control the fan all at the same time
- Set the fan speed (RPM) at each level
- Even allows speed below 1600 RPM
- Set minimum temperature for each level that must be fallen below before slowing down the fans again
- Set acceleration and deceleration for each the fan when the fan speed should increase or decrease
- Save and load presets for different modes
- [X] Lock and unlock the fan controller and fan speed
- [X] Lift the firmware-imposed fan ceiling on supported models (
fan_unlock sysfs / legion_cli fan-unlock-{enable,disable,status}). On the Legion Pro 7 16IRX8H (BIOS KWCN54WW) this raises the cap from ~4400 RPM to ~7100 RPM. Discovered via WMAA(0, 0x0D, 0x01) — see issue #429. The sysfs node is gated behind a has_fan_unlock model/BIOS allowlist and only exposed on validated firmwares (currently KWCN54WW).
- [X] Instant Boot: power the laptop on when an AC adapter (
instant_boot_ac) or a USB-PD charger (instant_boot_usb_pd) is connected (legion_cli instant-boot-{ac,usb-pd}-{enable,disable,status}, GUI "Other Options"). Exposed only where the DSDT implements the WMI feature ids 0x03010001/0x03010002 (has_instant_boot, currently the Legion Pro 7 16IAX10H / Q7CN and 16AFR10H / SMCN, and the Legion 5 15IRX10 / QNCN).
- [X] Switch power mode (quiet, balanced, performance) using software
- Now you can do it using software in your system settings
- Changing with
Fn+Q is also possible
- Depending on your desktop environment, you could automatically switch to quiet mode if you are on battery or performance mode when on AC power (e.g. KDE's Energy Saving settings)
- Switch between different fan profiles depending on the power profile (See: Lenovo Legion Laptop Support Daemon)
- [X] Monitor fan speeds and temperatures (CPU, GPU, IC) using the now available sensors
- [X] Enable or disable automatic switching to a "Mini Fan Curve" if temperatures are low for a long time
- [X] SmartFan — lightweight shell-based fan daemon for Legion 7 Gen 10+ using
acpi_call (no full kernel module needed). 4 modes, smooth ramping, LED sync, TUI switcher. See extra/smartfan/
:mega: Overview
- it comes with a driver (kernel module) that implements the Linux standard interfaces (sysfs, debugfs, hwmon)
- using standard Linux interfaces makes it is compatible with the command line/file interface or standard GUI tools like psensor
- compared to vendor tools for Windows, it even allows to set the fan curve. This allows to keep the fans
slowly and quietly running instead of constantly switching between fans off and loud fans. Perfect for quiet office work. :office:
:package: Available Packages
- Debian/Ubuntu:
- Debian repo (for now): here
- Fedora/RHEL Base Distros:
- Fedora COPR (community-maintained): here
- Arch Base Distros:
- Gentoo Base Distros:
- NixOS
:pushpin: Confirmed Compatible Models
Lenovo Legion models from 2020 up to the latest 2025 models probably work — the driver is actively maintained and new models are added regularly. The following models were confirmed. If you have a model with a BIOS version with the same leading letters, e.g. EFCN (like EFCN54WW) then it will probably work. If you want to confirm that your model works or if it does not work, please raise a issue.
- Lenovo Legion 5 15IMH05, 15IMH05H (BIOS EFCN54WW): sensors, fan curve, power profile
- Lenovo Legion Slim 5 16AHP9 (83DH, BIOS NRCN20WW), Gen 9: sensors, power profile, full-speed fan control in Custom mode. The fan curve reads as speed levels only; writes are disabled by default until verified (#516). See NRCN notes.
- Lenovo Legion 5 15ACH6H (BIOS GKCN58WW, GKCN57WW or GKCN65WW), Gen 6: sensors, fan curve, power profile
- Lenovo Legion R9000 (R9000K2021H) (BIOS GKCN59WW): sensors, fan curve, power profile
- Lenovo Legion 5 Pro 16ACH6H (82JQ) (BIOS GKCN58WW) x 2: sensors, fan curve, power profile
- Legion 5 Pro 16ACH6H (AMD 5800H + Nvidia RTX 3070): sensors, fan curve, power profile
- Lenovo Legion 5 15ARH05A (BIOS FSCN14WW), Gen 5: sensors, fan curve
- Lenovo Legion 5 15ARH05H (BIOS FSCN14WW or FSCN26WW), Gen 5: sensors, fan curve, power profile
- Lenovo Legion 5 15ITH6H (BIOS H1CN49WW, Intel): sensors, fan curve, power profile
- Lenovo Legion 5 15ARH7H (BIOS JUCN55WW), Gen7: sensors, fan curve, power profile
- Lenovo Legion 5 15ACH6 (BIOS HHCN31WW): sensors, fan curve, power profile
- Lenovo Legion S7 16ARHA7 (BIOS KFCN32WW): sensors, fan curve (no minifancurve), power profile
- Lenovo Legion 5 Pro 16ITH6 (BIOS H1CN52WW (there was an error in CPU temp with H1CN51WW)): sensors, fan curve, power profile
- Lenovo Legion 5 15ACH6A (BIOS G9CN30WW), all AMD variant: sensors, fan curve (with mini fan curve), power profile
- Lenovo Legion 5 17ACH6 (BIOS HHCN31WW): sensors, fan curve, power profile
- Lenovo Legion 7i 16ITHG6 (BIOS H1CN35WW): s
-
Build with latest commit every day at midnight GMT ↩