#1 Le 18/01/2015, à 18:14
- gdw96
[RÉSOLU] Économie d'énergie - en lien avec Laptop Mode Tools
Bonjour,
Avec le logiciel laptop mode tools, on a la possibilité d'exécuter des commandes ou des scripts à chaque changement d'état (sur batterie, sur adaptateur AC, etc.). Ces scripts servent quasiment toujours à stopper, retirer des modules du noyau (ex : Webcam, Lecteur de carte SD, etc.) car ceux-ci consomme de l'énergie.
Je me suis fait des petits, scripts Bash [voir ci-dessous], très facilement adaptable, que je lance manuellement et qui me permet à tout moment de modifier l'état des modules choisis. Pour moi : le lecteur de carte SD ; la webcam ; et le contrôleur de manettes.
Ces scripts fonctionnent parfaitement, mais j'ai remarqué quelque chose à propos de la consommation d'énergie. Chez moi, contrairement à la documentation (laptop-mode-tools - Documentation Ubunt-fr.org), lorsque mes modules sont désactivé, le consomme plus d'énergie.
J'ai fait beaucoup de testes et tous arrivent à la même conclusion (chez moi). Le module du lecteur de carte SD (rtsx_pci_sdmmc) me fait une perte d'énergie de quelques minutes (2 à 5 min) lorsqu'il est désactivé ; le module de ma webcam (HP Truevision HD : uvcvideo) fait perdre environ 10-20 minutes lorsqu'il est désactivé ; le contrôleur de manette (joydev) quant à lui ne fait ni de gain ni de perte d'énergie.
J'ai effectué mes testes wifi désactivé, rien de branché, sans actions (j'étais sur le bureau, toutes applications fermées), sans vieille, luminosité au minimum, etc.
Est-ce normal ?
Personnellement, je trouve cela bizarre.
Constatez-vous la même chose que moi chez-vous ?
Parce que cela remettrait en cause les scripts rajouté à Laptop Mode Tools et peut être même certaines fonctions de celui-ci...!?
PS : Ce sont bien les bons modules par rapport à mon matériel.
========================= Voici mes trois scripts (seules les variables changent)
#!/bin/bash
###########################################################
# des-activerLecteurDeCarteSD.sh #
# Copyright (C) - 2015 - by gdw96 #
# path : /home/$USER/.des-Activer_Lecteur_de_carte.sh #
# #
# Description : Ce script permet d'activier ou de #
# désactiver le lecteur de carte SD afin d'effectuer #
# une économie d'énergie. #
# #
# Licence : GNU/GPL v3 #
###########################################################
module=rtsx_pci_sdmmc # La commande "lsmod | grep sd" devrait vous aider à trouver votre module
messMenu="
Bonjour,\n
\n
Voici les actions disponibles :\n
1 - Activer le lecteur de carte SD ($module)\n
2 - Désactiver le lecteur de carte SD ($module)\n
3 - Quitter\n"
messChoix="Faites votre choix : \c"
messQuit="Au-revoir !"
messErreur="Erreur ! Veuillez entrer quelque chose."
messErreur2="Erreur ! Veuillez entrer 1, 2 ou 3."
messErreur3="
Erreur de paramètre à l'appel de la fonction action !\n
Veuillez vérifiez l'appel de cette fonction dans le script : $0\n\n
action :
Exemple : action -A <module name>\n\n
-A Activation\n
-D Désactivation\n"
messActiv="\nLe lecteur de carte SD devrait maintenant être activé.\n"
messDesactiv="\nLe lecteur de carte SD devrait maintenant être désactivé.\n"
#messModuleErreur="\nLe module ${module_name} n'existe pas ou est déjà désactivé.\n"
# Voir la fonction action
#messModuleErreur2="\nLe module ${module_name} est déjà activé.\n"
# Voir la fonction action
main() {
echo -e $messMenu
echo -e $messChoix
read choix
if [ $choix > /dev/null ]
then
if [ $choix = '1' ]
then
action -A $module # Lance la fonction action avec -A et le nom du module en paramètre
else
if [ $choix = '2' ]
then
action -D $module # Lance la fonction action avec -D et le nom du module en paramètre
else
if [ $choix = '3' ]
then
clear
echo -e $messQuit
sleep 1
clear
exit
else
echo -e $messErreur2
sleep 1
main
fi
fi
fi
else
echo -e $messErreur
sleep 1
main
fi
}
action() {
action=$1 # Premier paramètre
module_name=$2 # Deuxième paramètre
messModuleErreur="Le module ${module_name} n'existe pas ou est déjà désactivé."
messModuleErreur2="Le module ${module_name} est déjà activé."
module_existe=$(lsmod | grep $module_name) # Récupère le retour de la commande lsmod | grep <nom du module>
if [ "$module_existe" > /dev/null ]
then
existe=true
else
existe=false
fi
if [ $action = '-A' ]
then
# ---------- Activation
if [ $existe = false ]
then
clear
sudo modprobe -iv $module_name # Active le module
echo -e $messActiv
sleep 1
main
else
echo -e $messModuleErreur2
sleep 1
main
fi
else
if [ $action = '-D' ]
then
# ---------- Désactivation
if [ $existe = true ]
then
clear
sudo rmmod -v $module_name
echo -e $messDesactiv
sleep 1
main
else
echo -e $messModuleErreur
sleep 1
main
fi
else
clear
echo -e $messErreur3
sleep 1
exit
fi
fi
}
main
#!/bin/bash
###########################################################
# des-activerWebCam.sh #
# Copyright (C) - 2015 - by gdw96 #
# path : /home/$USER/.des-activerWebCam.sh #
# #
# Description : Ce script permet d'activier ou de #
# désactiver la webcam afin d'effectuer une économie #
# d'énergie et d'améliorer la sécurité de la vie privée. #
# #
# Licence : GNU/GPL v3 #
###########################################################
module=uvcvideo # La commande "lsmod | grep video" devrait vous aider à trouver votre module
messMenu="
Bonjour,\n
\n
Voici les actions disponibles :\n
1 - Activer la webcam ($module : HP Truevision HD)\n
2 - Désactiver la webcam ($module : HP Truevision HD)\n
3 - Quitter\n"
messChoix="Faites votre choix : \c"
messQuit="Au-revoir !"
messErreur="Erreur ! Veuillez entrer quelque chose."
messErreur2="Erreur ! Veuillez entrer 1, 2 ou 3."
messErreur3="
Erreur de paramètre à l'appel de la fonction action !\n
Veuillez vérifiez l'appel de cette fonction dans le script : $0\n\n
action :
Exemple : action -A <module name>\n\n
-A Activation\n
-D Désactivation\n"
messActiv="\nLa webcam devrait maintenant être activé.\n"
messDesactiv="\nLa webcam devrait maintenant être désactivé.\n"
#messModuleErreur="\nLe module ${module_name} n'existe pas ou est déjà désactivé.\n"
# Voir la fonction action
#messModuleErreur2="\nLe module ${module_name} est déjà activé.\n"
# Voir la fonction action
main() {
echo -e $messMenu
echo -e $messChoix
read choix
if [ $choix > /dev/null ]
then
if [ $choix = '1' ]
then
action -A $module # Lance la fonction action avec -A et le nom du module en paramètre
else
if [ $choix = '2' ]
then
action -D $module # Lance la fonction action avec -D et le nom du module en paramètre
else
if [ $choix = '3' ]
then
clear
echo -e $messQuit
sleep 1
clear
exit
else
echo -e $messErreur2
sleep 1
main
fi
fi
fi
else
echo -e $messErreur
sleep 1
main
fi
}
action() {
action=$1 # Premier paramètre
module_name=$2 # Deuxième paramètre
messModuleErreur="Le module ${module_name} n'existe pas ou est déjà désactivé."
messModuleErreur2="Le module ${module_name} est déjà activé."
module_existe=$(lsmod | grep $module_name) # Récupère le retour de la commande lsmod | grep <nom du module>
if [ "$module_existe" > /dev/null ]
then
existe=true
else
existe=false
fi
if [ $action = '-A' ]
then
# ---------- Activation
if [ $existe = false ]
then
clear
sudo modprobe -iv $module_name # Active le module
echo -e $messActiv
sleep 1
main
else
echo -e $messModuleErreur2
sleep 1
main
fi
else
if [ $action = '-D' ]
then
# ---------- Désactivation
if [ $existe = true ]
then
clear
sudo rmmod -v $module_name
echo -e $messDesactiv
sleep 1
main
else
echo -e $messModuleErreur
sleep 1
main
fi
else
clear
echo -e $messErreur3
sleep 1
exit
fi
fi
}
main
#!/bin/bash
###########################################################
# des-activer-joydev.sh #
# Copyright (C) - 2015 - by gdw96 #
# path : /home/$USER/.des-activer-joydev.sh #
# #
# Description : Ce script permet d'activier ou de #
# désactiver le contrôleur de manette de jeux video. #
# #
# Licence : GNU/GPL v3 #
###########################################################
module=joydev # La commande "lsmod" devrait vous aider à trouver votre module
messMenu="
Bonjour,\n
\n
Voici les actions disponibles :\n
1 - Activer le contrôleur de mannette ($module)\n
2 - Désactiver le contrôleur de mannette ($module)\n
3 - Quitter\n"
messChoix="Faites votre choix : \c"
messQuit="Au-revoir !"
messErreur="Erreur ! Veuillez entrer quelque chose."
messErreur2="Erreur ! Veuillez entrer 1, 2 ou 3."
messErreur3="
Erreur de paramètre à l'appel de la fonction action !\n
Veuillez vérifiez l'appel de cette fonction dans le script : $0\n\n
action :
Exemple : action -A <module name>\n\n
-A Activation\n
-D Désactivation\n"
messActiv="\nLe contrôleur de mannette devrait maintenant être activé.\n"
messDesactiv="\nLe contrôleur de mannette devrait maintenant être désactivé.\n"
#messModuleErreur="\nLe module ${module_name} n'existe pas ou est déjà désactivé.\n"
# Voir la fonction action
#messModuleErreur2="\nLe module ${module_name} est déjà activé.\n"
# Voir la fonction action
main() {
echo -e $messMenu
echo -e $messChoix
read choix
if [ $choix > /dev/null ]
then
if [ $choix = '1' ]
then
action -A $module # Lance la fonction action avec -A et le nom du module en paramètre
else
if [ $choix = '2' ]
then
action -D $module # Lance la fonction action avec -D et le nom du module en paramètre
else
if [ $choix = '3' ]
then
clear
echo -e $messQuit
sleep 1
clear
exit
else
echo -e $messErreur2
sleep 1
main
fi
fi
fi
else
echo -e $messErreur
sleep 1
main
fi
}
action() {
action=$1 # Premier paramètre
module_name=$2 # Deuxième paramètre
messModuleErreur="Le module ${module_name} n'existe pas ou est déjà désactivé."
messModuleErreur2="Le module ${module_name} est déjà activé."
module_existe=$(lsmod | grep $module_name) # Récupère le retour de la commande lsmod | grep <nom du module>
if [ "$module_existe" > /dev/null ]
then
existe=true
else
existe=false
fi
if [ $action = '-A' ]
then
# ---------- Activation
if [ $existe = false ]
then
clear
sudo modprobe -iv $module_name # Active le module
echo -e $messActiv
sleep 1
main
else
echo -e $messModuleErreur2
sleep 1
main
fi
else
if [ $action = '-D' ]
then
# ---------- Désactivation
if [ $existe = true ]
then
clear
sudo rmmod -v $module_name
echo -e $messDesactiv
sleep 1
main
else
echo -e $messModuleErreur
sleep 1
main
fi
else
clear
echo -e $messErreur3
sleep 1
exit
fi
fi
}
main
Dernière modification par gdw96 (Le 19/01/2015, à 23:09)
Hors ligne
#2 Le 18/01/2015, à 22:55
- tiramiseb
Re : [RÉSOLU] Économie d'énergie - en lien avec Laptop Mode Tools
Salut,
Es-tu sûr que laptop-mode-tools décharge les modules du noyau ? La page de documentation dont tu donnes le lien n'évoque rien de tel. Il me semble plutôt que ça agisse sur les modules pilotant les périphériques, en disant de minimiser les consommation et de désactiver explicitement des fonctionnalités.
Ce que tu indiques ne me choque pas : lorsqu'un matériel n'est pas pris en charge par un module, il ne sait pas quoi faire. Autrement dit, décharger un pilote du noyau n'éteint pas l'alimentation du périphérique concerné. J'imagine que les pilotes des différents périphériques gèrent leurs alimentations électriques, alors qu'un périphérique non "piloté" peut se mettre à consommer "à fond"... C'est par exemple ce qu'il se passe - au moins en partie - avec les cartes NVidia, dont le ventilateur tourne à la vitesse maximale quand aucun pilote n'est chargé.
Dernière modification par tiramiseb (Le 18/01/2015, à 22:57)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 19/01/2015, à 23:07
- gdw96
Re : [RÉSOLU] Économie d'énergie - en lien avec Laptop Mode Tools
Merci beaucoup de ta réponse, je comprend mieux maintenant !
Hors ligne