Ubuntu 15.04, pm-utils não procura mais em /etc/pm/power.d/, o que?

6

Desde a atualização de 14.10 para 15.04 meu script personalizado que eu usei para configurar o modo de perfil térmico adequado para o meu laptop deixou de funcionar, o que eu acredito é porque o pm-utils não responde à comutação AC / BAT.

Agora, se esse é o novo comportamento pretendido do sistema, onde agora devo colocar meu script para fazer esse trabalho (necessário para o meu laptop funcionar corretamente mesmo com energia AC)?

    
por dilettant 25.04.2015 / 10:29

2 respostas

5

Ok, encontrei uma resposta no Arch Wiki. Eles dão a próxima solução:

There is just one thing systemd cannot do (as of systemd-204): power management depending on whether the system is running on AC or battery. To fill this gap, you can create a single udev rule that runs a script when the AC adapter is plugged and unplugged:

/etc/udev/rules.d/powersave.rules
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script false"

Para o meu Sony Vaio, tenho isso como minha configuração pessoal:

/etc/udev/rules.d/99-laptopac.rules

SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/local/bin/sony-thermal.sh true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/local/bin/sony-thermal.sh false"

/usr/local/bin/sony-thermal.sh

#!/bin/sh

help() {
    cat <&ltEOF
$0: SONY laptop thermal profile management

This script selects between "performance" and "silent" modes depending
on whether laptop runs on AC power or battery power.

EOF
}

set_sony_thermal_profile() {
    [ ! -d /sys/devices/platform/sony-laptop ] && exit $NA
    [ ! -f /sys/devices/platform/sony-laptop/thermal_control ] && exit $NA
    case $1 in
    performance) 
        printf "Setting SONY thermal control to performace mode."
        thermal_control=performance ;;
    silent)
        printf "Setting SONY thermal control to silent mode."
        thermal_control=silent ;;
    *)
        printf "Setting SONY thermal control to balanced mode."
        thermal_control=balanced ;;
    esac
    echo "$thermal_control" > /sys/devices/platform/sony-laptop/thermal_control && echo Done. || \
    echo Failed.
}

case $1 in
    true) set_sony_thermal_profile silent ;;
    false) set_sony_thermal_profile performance ;;
    help) help ;;
    *) exit $NA ;;
esac

exit 0

Isso evita que a CPU do meu notebook entre em "afogamentos" continuamente, mesmo em condições de carga leve, com grande desempenho e perdas de experiência do usuário.

    
por dilettant 25.04.2015 / 14:05
5

Os scripts padrão de energia do Ubuntu podem ser acionados desta forma.

Adicione um arquivo pm-utils com este conteúdo

SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin pm-powersave false"

para /etc/udev/rules.d/

E os recursos padrão de economia de energia do Ubuntu serão aplicados quando você trocar a bateria para CA e vice-versa.

Existe um problema que não é acionado na inicialização. Para corrigir isso, adicione

udevadm trigger -s power_supply

para /etc/rc.local antes de exit0 .

Com o Ubuntu 16.04, outro problema é que o Network Manager usa o padrão Power off. Quando uma interface é ativada, ela substitui a configuração pm-utils .

Isso também pode ser corrigido adicionando um arquivo 02-powersave

#!/bin/sh

[ "$1" = "wlan0" ] && [ "$2" = "up" ] && udevadm trigger -s power_supply

para /etc/NetworkManager/dispatcher.d .

Observação: você precisa substituir wlan0 pela sua interface sem fio que pode ser encontrada em ifconfig .

    
por Pilot6 19.03.2016 / 08:57