Parcourir la source

Merge branch 'master' of https://github.com/erpalma/throttled

cryobry il y a 5 ans
Parent
commit
c99b45f9d4
6 fichiers modifiés avec 66 ajouts et 2 suppressions
  1. 14 0
      README.md
  2. 2 0
      etc/lenovo_fix.conf
  3. 10 0
      install.sh
  4. 4 2
      lenovo_fix.py
  5. 5 0
      openrc/lenovo_fix
  6. 31 0
      package/PKGBUILD

+ 14 - 0
README.md

@@ -53,6 +53,13 @@ sudo systemctl enable --now lenovo_fix.service
 ```
 Thanks to *felixonmars* for creating and maintaining this package.
 
+### Artix Linux
+```
+makepkg -si
+sudo rc-update add lenovo_fix default
+sudo rc-service lenovo_fix start
+```
+
 ### Debian/Ubuntu
 ```
 sudo apt install git build-essential python3-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev python3-venv python3-wheel
@@ -130,6 +137,12 @@ sv down lenovo_fix
 rm /var/service/lenovo_fix
 ```
 
+If you're using OpenRC instead of systemd:
+```
+rc-service lenovo_fix stop
+rc-update del lenovo_fix default
+```
+
 If you also need to remove the tool from the system:
 ```
 rm -rf /opt/lenovo_fix /etc/systemd/system/lenovo_fix.service
@@ -145,6 +158,7 @@ cd lenovo-throttling-fix
 git pull
 sudo ./install.sh
 sudo systemctl restart lenovo_fix.service
+OpenRC: sudo rc-service lenovo_fix restart
 ```
 
 ## Configuration

+ 2 - 0
etc/lenovo_fix.conf

@@ -44,6 +44,7 @@ cTDP: 0
 # Disable BDPROCHOT (EXPERIMENTAL)
 Disable_BDPROCHOT: False
 
+# All voltage values are expressed in mV and *MUST* be negative (i.e. undervolt)! 
 [UNDERVOLT.BATTERY]
 # CPU core voltage offset (mV)
 CORE: 0
@@ -56,6 +57,7 @@ UNCORE: 0
 # Analog I/O voltage offset (mV)
 ANALOGIO: 0
 
+# All voltage values are expressed in mV and *MUST* be negative (i.e. undervolt)!
 [UNDERVOLT.AC]
 # CPU core voltage offset (mV)
 CORE: 0

+ 10 - 0
install.sh

@@ -6,6 +6,8 @@ if pidof systemd 2>&1 1>/dev/null; then
     systemctl stop lenovo_fix.service >/dev/null 2>&1
 elif pidof runit 2>&1 1>/dev/null; then
     sv down lenovo_fix >/dev/null 2>&1
+elif pidof openrc 2>&1 1>/dev/null; then
+    rc-service lenovo_fix stop >/dev/null 2>&1
 fi
 
 mkdir -p "$INSTALL_DIR" >/dev/null 2>&1
@@ -26,6 +28,10 @@ if pidof systemd 2>&1 1>/dev/null; then
 elif pidof runit 2>&1 1>/dev/null; then
     echo "Copying runit service file"
     cp -R runit/lenovo_fix /etc/sv/
+elif pidof openrc-init 2>&1 1>/dev/null; then
+    echo "Copying OpenRC service file"
+    cp -R openrc/lenovo_fix /etc/init.d/lenovo_fix
+    chmod 755 /etc/init.d/lenovo_fix
 fi
 
 echo "Building virtualenv..."
@@ -44,6 +50,10 @@ elif pidof runit 2>&1 1>/dev/null; then
     echo "Enabling and starting runit service..."
     ln -sv /etc/sv/lenovo_fix /var/service/
     sv up lenovo_fix
+elif pidof openrc-init 2>&1 1>/dev/null; then
+    echo "Enabling and starting OpenRC service..."
+    rc-update add lenovo_fix default
+    rc-service lenovo_fix start
 fi
 
 echo "All done."

+ 4 - 2
lenovo_fix.py

@@ -77,6 +77,7 @@ supported_cpus = {
     'Kaby Lake (R)': (0x8E, 0x9E),
     'Coffee Lake': (0x9E,),
     'Cannon Lake': (0x66,),
+    'Comet Lake': (0xA6,),
 }
 
 
@@ -530,8 +531,8 @@ def set_hwp():
 
 def set_disable_bdprochot():
     # Disable BDPROCHOT
-    cur_val = readmsr(0x1FC,flatten=True)
-    new_val = (cur_val & 0xFFFFFFFFFFFFFFFE)
+    cur_val = readmsr(0x1FC, flatten=True)
+    new_val = cur_val & 0xFFFFFFFFFFFFFFFE
 
     writemsr(0x1FC, new_val)
     if args.debug:
@@ -787,6 +788,7 @@ def main():
     regs = calc_reg_values(platform_info, config)
 
     if not config.getboolean('GENERAL', 'Enabled'):
+        log('[I] Throttled is disabled in config file... Quitting. :(')
         return
 
     exit_event = Event()

+ 5 - 0
openrc/lenovo_fix

@@ -0,0 +1,5 @@
+#!/usr/bin/openrc-run
+command="env python3 /usr/lib/throttled/lenovo_fix.py"
+pidfile=${pidfile-/var/run/lenovo_fix.pid}
+description="Stop Intel throttling"
+command_background="yes"

+ 31 - 0
package/PKGBUILD

@@ -0,0 +1,31 @@
+
+pkgname=throttled
+pkgver=0.6
+pkgrel=4
+pkgdesc="Workaround for Intel throttling issues in Linux."
+arch=('any')
+url="https://github.com/erpalma/throttled"
+license=('MIT')
+depends=('python-dbus' 'python-psutil' 'python-gobject')
+conflicts=('lenovo-throttling-fix-git' 'lenovo-throttling-fix')
+replaces=('lenovo-throttling-fix')
+backup=('etc/lenovo_fix.conf')
+source=("git+https://github.com/Hyper-KVM/throttled.git#branch=openrc")
+sha256sums=('SKIP')
+
+
+build() {
+  cd "${srcdir}/throttled/"
+  python -m compileall *.py
+}
+
+package() {
+  cd "${srcdir}/throttled/"
+  install -Dm644 etc/lenovo_fix.conf "$pkgdir"/etc/lenovo_fix.conf
+  install -Dm644 systemd/lenovo_fix.service "$pkgdir"/usr/lib/systemd/system/lenovo_fix.service
+  install -Dm755 lenovo_fix.py "$pkgdir"/usr/lib/$pkgname/lenovo_fix.py
+  install -Dm755 openrc/lenovo_fix "$pkgdir/etc/init.d/lenovo_fix"
+  install -Dm755 mmio.py "$pkgdir"/usr/lib/$pkgname/mmio.py
+  cp -a __pycache__ "$pkgdir"/usr/lib/$pkgname/
+  install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}