В целом процедура настройки не сложная, но муторная. Нужно залесть в 2 десятка параметров и выставить оптимальные значения.
Несколько лет назад я пришел к выводу, что проще всего для установки оптимальных значений использовать powertop.
В нем есть ключ --autotune, который инициирует необходимые установки.
Единственное, чтобы клавиатура и мышь не подвисали, нужно для соответсвующих портов usb снять режим энергоэффективности.
Я написал простой скрипт, который при старте устанавливает минимальное энергопотребление.
Code: Select all
#/bin/bash
#
# powertop-tune - autotune power consumption
#
VERSION="0.91"
DEBUG=1
(($DEBUG)) && . ~/bin/loging.sh
if [ -f /usr/sbin/powertop ] ; then
sudo /usr/sbin/powertop --auto-tune
if [ $? -eq 0 ] ; then
USB_RECIEVER=""
#LOGITECH_ID="046d"
LOGITECH=$(grep 046d /sys/bus/usb/devices/*/idVendor); ERR=$?
if [ $ERR -eq 0 ] ; then
LOGITECH_POWER_CONTROL=$(echo "$LOGITECH" | sed -e 's|idVendor:046d|power/control|g')
echo 'on' | sudo tee "$LOGITECH_POWER_CONTROL"
USB_RECIEVER="Logitech USB Reciever found."
(($DEBUG)) && echo $USB_RECIEVER
fi
#RAPOO_ID="24ae"
RAPOO=$(grep 24ae /sys/bus/usb/devices/*/idVendor); ERR=$?
if [ $ERR -eq 0 ] ; then
RAPOO_POWER_CONTROL=$(echo "$RAPOO" | sed -e 's|idVendor:24ae|power/control|g')
echo 'on' | sudo tee "$RAPOO_POWER_CONTROL"
USB_RECIEVER="Rapoo USB Reciever found."
(($DEBUG)) && echo $USB_RECIEVER
fi
/usr/bin/notify-send "Powertop" "${USB_RECIEVER} Autotune done" -i "/usr/share/icons/Humanity/devices/48/battery.svg"
fi
fi
В начале скрипта вызывается скрипт логирования ~/bin/loging.sh. Скрипт очень простой и его можно закоментировать. Если есть желание его оставить, то вот он:
Code: Select all
#/bin/bash
#
# logging script
#
USER=$(whoami)
LOGFILE=~/autostart.log
# redirect stdout and stderr to logfile
exec >>/home/$USER/autostart.log 2>&1
# announce started
echo "----------------------------------------------------"
echo "$(date +'%b %d %X'), $(whoami), $(basename $0): starting"
Для этого из под рута можно выполнить следующие команды:
Вместо USER подставьте ваше имя.$ echo "$USER ALL = (ALL) NOPASSWD: /usr/sbin/powertop" > /etc/sudoers.d/powertop
$ echo "$USER ALL = (ALL) NOPASSWD: /home/$USER/bin/powertop-tune" >> /etc/sudoers.d/powertop
$ echo "$USER ALL = (ALL) NOPASSWD: /usr/bin/tee" >> /etc/sudoers.d/powertop