Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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)

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