LINUX.ORG.RU

Скрипт для автоматического отключения турбобуста

 , , ,


0

1

Всем здравствуйте! У меня такая проблема: нужно написать скрипт для автоматического отключения турбобуста при отключении зарядки от ноутбука. Написал для этого такое правило в udev такого содержания(он называется turbo.rules):

SUBSYSTEM==«power_supply», ENV{POWER_SUPPLY_ONLINE}==«1», RUN+=«/etc/turbo_on.sh» SUBSYSTEM==«power_supply», ENV{POWER_SUPPLY_ONLINE}==«0», RUN+=«/etc/turbo_off1.sh»

Таким образом если зарядка отключена то запускается скрипт turbo_ooff1.sh, который заменяет в файле /sys/devices/system/cpu/intel_pstate/no_turbo 0 на 1 и тем самым отключается turbo-boost. А скрипт turbo_off1.sh обратно заменяет 0 в файле /sys/devices/system/cpu/intel_pstate/no_turbo на 1.

Код turbo_on.sh:

#!/bin/bash echo «0» | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

Код turbo_off1.sh:

#!/bin/bash echo «1» | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

Проверял работоспособность в программе auto-cpufreq. Вот что он показывает при включенной зарядке:

suggesting to set turbo boost: on Currently turbo boost is: on

А при отключенной зарядке показывает это:

suggesting to set turbo boost: off Currently turbo boost is: on

При этом если я ручками введу команду из моих же скриптов то все прекрасно работает. Внимание вопрос: как сделать так, что бы оно заработало

При этом если я ручками введу команду из моих же скриптов то все прекрасно работает.

Кстати, распространенное явление, когда скрипт срабатывает в терминале, но через udev никак.
И вся мощь ЛОРа не способна помочь. Возможно, systemd настолько вытеснил все остальное, что спецов по udev просто не осталось. :)
Как пример, одна из тем правило udev'a не работает.

krasnh ★★★
()