web-dev-qa-db-fra.com

Ubuntu 15.04, pm-utils ne regarde plus dans /etc/pm/power.d/, mais quoi?

Depuis la mise à niveau de 14.10 à 15.04, mon script personnalisé utilisé pour configurer le mode de profil thermique correct pour mon ordinateur portable a cessé de fonctionner, ce qui, à mon avis, est dû au fait que pm-utils ne répond pas à la commutation AC/BAT.

Maintenant, s’il s’agit d’un nouveau comportement souhaité du système, où devrais-je maintenant mettre mon script pour effectuer ce travail (requis pour que mon ordinateur portable fonctionne correctement, même sur le secteur)?

6
dilettant

Ok, j'ai trouvé une réponse dans Arch Wiki. Ils donnent la solution suivante:

Il n'y a qu'une chose que systemd ne peut pas faire (à partir de systemd-204): la gestion de l'alimentation selon que le système fonctionne sur secteur ou sur batterie. Pour combler cette lacune, vous pouvez créer une seule règle udev qui exécute un script lorsque l'adaptateur secteur est branché et débranché:

/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"

Pour mon Sony Vaio, j'ai ceci comme configuration personnelle:

/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: gestion du profil thermique des ordinateurs portables SONY 
 
 Ce script sélectionne entre les modes "performance" et "silencieux" selon 
 Selon que l'ordinateur portable fonctionne sur secteur ou sur batterie. 
 
 EOF 
} 
 
 set_sony_thermal_profile () {
 [! -d/sys/devices/platform/sony-laptop] && exit $ NA 
 [! -f/sys/devices/plate-forme/sony-laptop/thermal_control] && exit $ NA 
 cas 1 $ pour 
 performances) 
 printf "Réglage du contrôle thermique SONY en mode Performace." 
 thermal_control = performance ;; 
 silencieux) 
 printf "Réglage du contrôle thermique SONY en mode silencieux." 
 thermal_control = silencieux ;; 
 *) 
 printf "Réglage du contrôle thermique SONY en mode équilibré." 
 thermal_control = symétrique ;; 
 esac 
 echo "$ thermal_control">/sys/devices/platform/sony-laptop/thermal_control && echo Terminé. ||\
 écho Echec. 
} 
 
 cas $ 1 sur 
 true) set_sony_thermal_profile silent ;; 
 false) set_sony_thermal_profile performance ;; 
 aide) aide ;; 
 *) quitte $ NA ;; 
 esac 
 
 quitte 0 

Cela empêche le processeur de mon ordinateur portable de fonctionner continuellement, même dans des conditions de charge faible, avec de grandes performances et des pertes d’expérience utilisateur.

5
dilettant

Les scripts de puissance Ubuntu par défaut peuvent être déclenchés de cette façon.

Ajouter un fichier pm-utils avec ce contenu

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

à /etc/udev/rules.d/

Et les fonctionnalités par défaut d'Ubuntu powersave seront appliquées lorsque vous basculerez de la batterie vers AC et inversement.

Il y a un problème qui ne se déclenche pas au démarrage. Pour résoudre ce problème, ajoutez

udevadm trigger -s power_supply

à /etc/rc.local avant exit0.

Avec Ubuntu 16.04, un autre problème est que Network Manager est configuré par défaut sur Gestion de l'alimentation désactivée. Lorsqu'une interface est affichée, elle remplace le paramètre pm-utils.

Cela peut aussi être corrigé en ajoutant un fichier 02-powersave

#!/bin/sh

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

à /etc/NetworkManager/dispatcher.d.

Remarque: Vous devez remplacer wlan0 par votre interface sans fil qui se trouve dans ifconfig.

4
Pilot6