Parcourir la source

Merge branch 'master' of github.com:erpalma/lenovo-throttling-fix

erpalma il y a 7 ans
Parent
commit
46aba3c3c5
1 fichiers modifiés avec 27 ajouts et 4 suppressions
  1. 27 4
      README.md

+ 27 - 4
README.md

@@ -1,7 +1,7 @@
-# lenovo-throttling-fix
+# Fix T480 / T480s / X1C6 Throttling on Linux
 Workaround for Linux throttling issues on Lenovo T480 / T480s / X1C6 notebooks as described [here](https://www.reddit.com/r/thinkpad/comments/870u0a/t480s_linux_throttling_bug/).
 
-This script forces the CPU package power limit (PL1/2) to **45 W** and the temperature trip point to **97 C** by overriding default values in MSR and MCHBAR every 15 seconds to block the Embedded Controller from resetting these values to default.
+This script forces the CPU package power limit (PL1/2) to **44 W** (29 W on battery) and the temperature trip point to **97 'C** (85 'C on battery) by overriding default values in MSR and MCHBAR every 5 seconds (30 on battery) to block the Embedded Controller from resetting these values to default.
 
 ## Requirements
 The python module `python-periphery` is used for accessing the MCHBAR register by memory mapped I/O. 
@@ -9,11 +9,34 @@ The python module `python-periphery` is used for accessing the MCHBAR register b
 ## Installation
 ```
 git clone https://github.com/erpalma/lenovo-throttling-fix.git
-sudo pip install python-periphery
+sudo -H pip install python-periphery
 sudo make install
 sudo systemctl enable lenovo_fix.service
 sudo systemctl start lenovo_fix.service
 ```
 
+## Configuration
+The script can be configured by editing `lenovo_fix.py` directly. There exist two profiles `AC` and `BATTERY`:
+```
+config = {
+    'AC': {
+        'UPDATE_RATE_SEC': 5,  # Update the registers every this many seconds
+        'PL1_TDP_W': 44,  # Max package power for time window #1
+        'PL1_DURATION_S': 28,  # Time window #1 duration
+        'PL2_TDP_W': 44,  # Max package power for time window #2
+        'PL2_DURATION_S': 0.002,  # Time window #2 duration
+        'TRIP_TEMP_C': 97  # Max allowed temperature before throttling
+    },
+    'BATTERY': {
+        'UPDATE_RATE_SEC': 30,  # Update the registers every this many seconds
+        'PL1_TDP_W': 29,  # Max package power for time window #1
+        'PL1_DURATION_S': 28,  # Time window #1 duration
+        'PL2_TDP_W': 44,  # Max package power for time window #2
+        'PL2_DURATION_S': 0.002,  # Time window #2 duration
+        'TRIP_TEMP_C': 85  # Max allowed temperature before throttling
+    },
+}
+```
+
 ## Disclaimer
-This script overrides the default values set by Lenovo. I'm using it without any problem, but it is still experimental so use it at your own risk.
+This script overrides the default values set by Lenovo. I'm using it without any problem, but it is still experimental so use it at your own risk. This script can be probably adapted/used on other notebooks too.