Compare commits

..

13 Commits

Author SHA1 Message Date
cryobry
c99b45f9d4 Merge branch 'master' of https://github.com/erpalma/throttled 2020-02-27 11:10:58 -05:00
erpalma
88216b119a add Comet Lake to the list of supported cpus (fix #150) 2020-02-20 10:30:08 +01:00
erpalma
d5ee6de8eb mention that all undervolt voltage must be negative in config file (fix #171) 2020-02-20 10:14:38 +01:00
erpalma
e897f95385 add logging to indicate that throttled is disabled in config file (fix #173) 2020-02-20 10:10:50 +01:00
Francesco Palmarini
2bd4626d8a Merge pull request #177 from Hyper-KVM/master
Add OpenRC support
2020-02-20 10:05:43 +01:00
Hyper-KVM
8300044558 Add Artix and OpenRC entries 2020-02-20 01:32:47 -05:00
Hyper-KVM
5fc826aac0 Add OpenRC support in install.sh 2020-02-19 20:03:44 -05:00
Hyper-KVM
a88689b8bb really fix init script this time 2020-02-19 18:48:54 -05:00
Hyper-KVM
c0b8c180bf fix init script 2020-02-19 16:40:52 -05:00
Hyper-KVM
422769aafd remove uneeded prepare function in PKGBUILD 2020-02-19 16:22:10 -05:00
Hyper-KVM
9cb8537425 fix PKGBUILD 2020-02-19 16:21:24 -05:00
Hyper-KVM
fbcbbb93c7 add PKGBUILD 2020-02-19 16:15:56 -05:00
Hyper-KVM
232fcc3882 Add OpenRC support testing 2020-02-19 15:57:14 -05:00
6 changed files with 66 additions and 2 deletions

View File

@@ -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

View File

@@ -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

View File

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

View File

@@ -77,6 +77,7 @@ supported_cpus = {
'Kaby Lake (R)': (0x8E, 0x9E),
'Coffee Lake': (0x9E,),
'Cannon Lake': (0x66,),
'Comet Lake': (0xA6,),
}
@@ -531,7 +532,7 @@ def set_hwp():
def set_disable_bdprochot():
# Disable BDPROCHOT
cur_val = readmsr(0x1FC, flatten=True)
new_val = (cur_val & 0xFFFFFFFFFFFFFFFE)
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
openrc/lenovo_fix Normal file
View File

@@ -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
package/PKGBUILD Normal file
View File

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