Browse Source

Merge pull request #177 from Hyper-KVM/master

Add OpenRC support
Francesco Palmarini 4 years ago
parent
commit
2bd4626d8a
4 changed files with 60 additions and 0 deletions
  1. 14 0
      README.md
  2. 10 0
      install.sh
  3. 5 0
      openrc/lenovo_fix
  4. 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

+ 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."

+ 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
+}