diff --git a/README.md b/README.md index e22e728..5d15b90 100644 --- a/README.md +++ b/README.md @@ -91,12 +91,31 @@ systemctl enable throttled.service systemctl start throttled.service ``` +### Void + +The installation itself will create a runit service as lenovo_fix, enable it and start it. Before installation, make sure dbus is running `sv up dbus`. + +``` +sudo xbps-install -Sy gcc git python3-devel dbus-glib-devel libgirepository-devel cairo-devel python3-wheel pkg-config make + +git clone https://github.com/erpalma/lenovo-throttling-fix.git + +sudo ./lenovo-throttling-fix/install.sh +``` + ### Uninstall To permanently stop and disable the execution just issue: ``` systemctl stop lenovo_fix.service systemctl disable lenovo_fix.service ``` + +If you're running runit instead of systemd: +``` +sv down lenovo_fix +rm /var/service/lenovo_fix +``` + If you also need to remove the tool from the system: ``` rm -rf /opt/lenovo_fix /etc/systemd/system/lenovo_fix.service diff --git a/install.sh b/install.sh index 32cbfac..a95af04 100755 --- a/install.sh +++ b/install.sh @@ -2,7 +2,11 @@ INSTALL_DIR="/opt/lenovo_fix" -systemctl stop lenovo_fix.service &>/dev/null +if pidof systemd 2>&1 1>/dev/null; then + systemctl stop lenovo_fix.service &>/dev/null +elif pidof runit 2>&1 1>/dev/null; then + sv down lenovo_fix &>/dev/null +fi mkdir -p "$INSTALL_DIR" &>/dev/null set -e @@ -16,8 +20,13 @@ else echo "Config file already exists, skipping." fi -echo "Copying systemd service file..." -cp systemd/lenovo_fix.service /etc/systemd/system +if pidof systemd 2>&1 1>/dev/null; then + echo "Copying systemd service file..." + cp systemd/lenovo_fix.service /etc/systemd/system +elif pidof runit 2>&1 1>/dev/null; then + echo "Copying runit service file" + cp -R runit/lenovo_fix /etc/sv/ +fi echo "Building virtualenv..." cp -n requirements.txt lenovo_fix.py mmio.py "$INSTALL_DIR" @@ -26,9 +35,15 @@ cd "$INSTALL_DIR" . venv/bin/activate pip install -r requirements.txt -echo "Enabling and starting systemd service..." -systemctl daemon-reload -systemctl enable lenovo_fix.service -systemctl restart lenovo_fix.service +if pidof systemd 2>&1 1>/dev/null; then + echo "Enabling and starting systemd service..." + systemctl daemon-reload + systemctl enable lenovo_fix.service + systemctl restart lenovo_fix.service +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 +fi echo "All done." diff --git a/runit/lenovo_fix/run b/runit/lenovo_fix/run new file mode 100755 index 0000000..cd2412a --- /dev/null +++ b/runit/lenovo_fix/run @@ -0,0 +1,2 @@ +#!/bin/sh +PYTHONUNBUFFERED=1 exec /opt/lenovo_fix/venv/bin/python3 /opt/lenovo_fix/lenovo_fix.py