Script pour prolonger durée batterie

Barkit

Nouveau membre
Bonjour,

Je suis sous Lucid Lynx et je désire réaliser un script bash qui désactiverais des services et des périphériques de mon laptop afin de prolonger au maximum la durée de ma batterie.

Je connais le Laptop-mode-tools mais je préfère l'éviter car j'ai vu qu'il posait des problèmes d'intégration. Qui plus est, avec un script; je peut choisir quand je veux désactiver les périphériques en question et ainsi gèrer au mieux ma batterie.

Pour parvenir à faire ce que je veux, j'aurais besoin de connaître les commandes permettant de :

1) activer automatiquement la suspension de l'usb pour éviter le gaspillage de l'énergie quand un périphérique USB est branché sur le portable?

2) arrêter l'interrogation des lecteurs CD (qui se fait automatiquement afin de pouvoir contrôler si un disque a été inséré dans le lecteur)

3) désactiver l'alimentation des ports (video, ethernet, HDMI, express card)

Si vous connaissez certaines (ou toutes :D ) les commandes permettant de faire cela; j'attend vos conseils avec impatience!

Merci d'avance :)
 

zeb

Modérateur
Salut,

Ben justement le paquet Laptop-mode-tools contient tout ce dont tu as besoin. "Get the Force, Read the Source !" Je t'invite donc à l'installer et à en étudier les scripts. Quitte à le désinstaller plus tard.

Pour ce qui est de l'intégration de ce paquet au reste du système, c'est vrai que c'est encore à faire. Mais je doute que tes scripts le soient aussi.

L'intégration, c'est le fait que tel menu propose ou pas telle fonction. En installant ce paquet, tu te prives de certaines fonctions (acpi, pm) remplacées par de nouvelles plus performantes mais qui ne retrouveront pas dans les menus. Pas encore, car les développeurs Ubuntu sont sur le coup ( ).
 

Barkit

Nouveau membre
Merci pour ta réponse zeb,

En fait je me suis mal exprimé, ce n'est pas l'intégration qui me gène; j'ai vu que l'install du laptop-mode-tools pouvait générer des problèmes:

j'ai lu ça et là que le gain d'autonomie n'était pas si flagrant, que le programme nécéssite le paquet "hardware abstratcion layer" dont la présence n'est apparemment plus souhaitée (bien que je ne sache pas pourquoi), etc.


Mais si tu me dis qu'il est plus performant. En fait j'avais à la base dans l'idée de pouvoir basculer entre deux types de consommation de la batterie faisant appel à deux jeux de scripts de config différents pour le laptop-mode-tools:

- un premier lot de script de config que j'apellerais "compromis" où des services comme le bluetooth seraient toujous actifs

- un deuxième appelé "autonomie max" où le maximum de ports et de périphériques sont désactivés

Le problème est que le laptop-mode-tools ne tolère qu'un seul set de scripts de config dans un seul répertoire.

Du coup j'avais envisagé de faire un script bash qui permettrait de passer d'un mode à l'autre quand je le souhaite, un peu dans ce genre là:

Code:
#! /bin/bash

killall laptop-mode-tools &
sudo cp /chemin/vers/scripts/de/config/autonomie_max /etc/laptop-mode/conf.d/ &
laptop-mode-tools

dans cet exemple, je pourrais passer du mode compromis au mode autonomie max
mais cette approche est loin d'être élégante et j'aurais voulu savoir si l'on peut spécifier au laptop-mode-tools le répertoire où il doit lire ses fichiers de config dans le but de ne pas avoir à écraser la config précédente à chaque fois.

Merci d'avance
 

zeb

Modérateur
Je ne connais pas laptop-mode-tools plus que ça.
Mais ce ne sont jamais que des scripts.
Donc je te propose d'installer le paquet, d'en étudier les scripts, d'en extrapoler tes scripts, puis de désinstaller le paquet.

Sinon, il reste une bonne vieille méthode infaillible :
Fais en sorte que les pilotes de ton matos soient des modules.
Puis charge/décharge ces pilotes à la demande :
Un rmmod usb-ehci devrait te faire économiser pas mal de watt. ;)
 

Barkit

Nouveau membre
Ouais effectivement je vais essayer de voir comment laptop-mode-tools est foutu en le testant

Cocernant la "bonne vieille méthode infaillible"; ça m'intéresse carrément! :ouch:

Fais en sorte que les pilotes de ton matos soient des modules

Comment fais-tu cela?
 

zeb

Modérateur
Tes pilotes sont déjà dans des modules. :o (Sinon, recompile ton noyau).
Pour connaître ce qu'il y a dans ton noyau, affiche-toi le contenu du fichier /proc/config
=y signifie que le pilote est dans le noyau
=m signifie que le pilote est dans un module

Et maintenant, la réponse que tous les forumeurs adorent : RTFM !
(aux pages lsmod(0), insmod(8), modprobe(8), depmod(8) et rmmod(8))
 

Barkit

Nouveau membre
Bonjour à tous,

J'aurais plusieurs questions concernant la commande modprobe dont je n'ai pu trouver de réponse claire dans le manuel

-je voudrais savoir si la commande modprobe -r permettant de décharger des modules n'a d'effet que durant la session ou si elle son effet est permanent (lors des prochains boots).

-où se trouve le fichier listant les modules à charger au démarrage?

-si je décharge le module l2cap avec comme ceci:

modprobe -r l2cap

est-ce que :

modprobe l2cap

permet de recharger le module et ainsi d'annuler complètement la commande précédente?

-Si par exemple je décharge tous les modules en rapport avec le port ethernet de mon laptop, cela permet-t-il d'économiser de la batterie? Le port est il toujours alimenté en energie?

Merci d'avance
 

zeb

Modérateur
Salut,

Re : les commandes pour gérer les modules sont les suivantes : lsmod(8), insmod(8), modprobe(8), depmod(8), rmmod(8) et modinfo(8).
(Le chiffre entre parenthèses est la section où il faut chercher de l'aide dans les pages du manuel. 8, c'est System administration commands and daemons).

Or donc, tu t'es farci les 6 pages ?

Oui ! C'est bien. Relis-les, tu n'as pas tout compris ;)
Non ! Comment non ? Lis-les :o

Pour installer un module, utilise insmod (install module).
Pour en désinstaller un, utilise rmmod (remove module).
La commande lsmod (list module) liste tous les modules.
Lis sa page man. Tu y apprendras qu'il existe effectivement un fichier du pseudo-système /proc qui liste les modules (je te laisse chercher). Mais à quoi bon, lsmod est suffisant.

L'intérêt de modprobe, c'est qu'il teste si le module est déjà présent ou pas. Donc, si c'est pour le faire à la main, toi, utilise insmod.

Lis la page de depmod. Tu y apprendras que les modules peuvent être interdépendants. Aussi, le chargement ou le déchargement explicite d'un module peut charger ou décharger d'autres modules.

Quant à savoir si un matériel non reconnu par le système (par manque de son pilote, contenu dans le noyau et/ou des modules) consomme ou pas de l'énergie, rien n'est moins sûr. Tout dépend de l'implémentation du pilote.
Grâce à la commande modinfo, tu en apprendras plus sur le module qui t'intéresse, soit directement, soit en visitant le site que le contributeur qui a créé le pilote n'aura pas manqué de linker.
 

Barkit

Nouveau membre
Merci zeb!

En fait je voudrais enlever le maximum de trucs pour optimiser ma durée batterie et du coup j'ai fait un lsmod
afin de lister tous les modules qui étaient chargés, puis j'ai cherché ce qu'ils faisaient un par un sur google :pfff: .... effectivement si j'avais connu modinfo ça aurait été utile :sarcastic: !

L'idéal étant pour moi de virer le maximum de modules; je cherchais donc le fichier contenant les modules chargés par défaut afin de pouvoir le copier au cas ou je fasse une connerie.

Ensuite je me fais un script bash contenant :

rmmod module1
rmmod module2

...

que j'éxécute quand je veux une batterie max

et un autre

insmod module1
insmod module2

...
afin de revenir au point initial, j'ai bon là? :whistle:


Concernant les pages du manuel d'habitude je fait man rmmod par exemple, du coup je n'ai apparemment lu que les pages de la section 8! J'avoue (à demi mot) ne pas vraiment savoir comment avoir le manuel depuis le début :whistle: je sens qu'un man --help s'impose....hum....hum
 

batchy

Grand Maître
Pour installer un module, utilise insmod (install module).
Pour en désinstaller un, utilise rmmod (remove module).
La commande lsmod (list module) liste tous les modules.
Lis sa page man. Tu y apprendras qu'il existe effectivement un fichier du pseudo-système /proc qui liste les modules (je te laisse chercher). Mais à quoi bon, lsmod est suffisant.

L'intérêt de modprobe, c'est qu'il teste si le module est déjà présent ou pas. Donc, si c'est pour le faire à la main, toi, utilise insmod.

Non, l'intérêt de modprobe, c'est que d'une part il gère les dépendances (dures et molles*) entre modules, et il peux aussi informer l'espace utilisateur que le module à été chargé. Par exemple si un module à besoin d'une "colle" en espace utilisateur pour fonctionner, modprobe pourra lancer le démon nécessaire avant/après d'avoir chargé le module.
modprobe peut également empêcher des modules d'être chargés automatiquement (mais pas manuellement) par ceux qui l'utilisent.

sinon, virer un maximum de modules ne va pas changer grand chose à la durée de vie de ta batterie : ne plus gérer un matériel c'est bien, mais couper le courant à ce matériel, c'est quand même bien mieux. Parfois il faut mieux gérer ce matériel afin de le placer en veille plutôt que de l'éteindre (c'est ce qu'à découvert Intel avec l'extinction de cores inutilisés)

Mais si tu a effectivement découvert la preuve qu'un module te fait perdre de l'autonomie avec des vraies preuves, alors la configuration de modprobe te permettera de blacklister ce module. par contre l'emplacement de la configuration de modprobe dépend de ta distribution ;) Mais en parallèle, il serait bon d'envoyer un rapport de bogue au mainteneur du module ;)

* Les dépendances molles sont des dépendances qui ne sont pas obligatoires, mais utiles dans 99% des cas. Va te trouver qu'il faut charger cette dépendance pour que ton matériel marche ...
 

Barkit

Nouveau membre
virer un maximum de modules ne va pas changer grand chose à la durée de vie de ta batterie

OK c'est ce qu'il me semblait...

mais couper le courant à ce matériel, c'est quand même bien mieux

C'est exactement ce que j'aimerais faire! Mais avec quelles commandes puis-je couper l'alim du lecteur CD, de l'ethernet, du bluetooth, de la webcam, des ports usb, hdmi et express card??? C'est là que je butte... :(
 

zeb

Modérateur
Seule la section 8 t'intéresse.

Voici les sections du manuel :
1 : Commandes utilisateur
2 : Appels système
3 : Bibliothèques de fonctions
4 : Pilotes et protocoles réseau
5 : Format de fichier
6 : Jeux
7 : Divers
8 : Commandes administrateur
9 : Appels noyau Linux

Sauf si tu veux reprogrammer toi-même les commandes proposées, je pense que les sections 2, 3, 4 et 9 ne t'intéressent pas :lol:

Comment ça, si j'avais connu modinfo ?
Ah, bah oui, je ne te l'avais pas proposé dans l'autre topic. Et les pages des autres commandes se référencent mutuellement, mais pas celle-ci :/

Bon, alors ce fichier du système /proc qui liste les modules, t'as trouvé ? (C'est facile ;) )

-où se trouve le fichier listant les modules à charger au démarrage?
Le noyau détecte tout seul ce dont il a besoin. C'est HAL ou DeviceKit qui s'en charge.
Mais tu peux lui dire, je veux ci, je ne veux pas de ça.
Ca se fait dans /etc/conf.modules (obsolète) et /etc/modules.conf.

Un tour sur la manpage de /etc/modules.conf est plus que conseillé. :o

Ah, au fait, la manpage de man existe :o
Faire : man man, évidemment ! :lol:
 

zeb

Modérateur
Batchy est toujours de bon conseil.
Mais Barkit, tu embrouilles tout le monde à comment tes questions dans un topic, et à reformuler dans un autre. Ici on parlait des modules, là-bas d'économie. Allez, je regroupe les deux !!!!
 

Barkit

Nouveau membre
tu embrouilles tout le monde à comment tes questions dans un topic, et à reformuler dans un autre. Ici on parlait des modules, là-bas d'économie. Allez, je regroupe les deux !!!!

Effectivement j'aurais du poste a la suite de l'ancien, merci zeb! :ange:

alors ce fichier du système /proc qui liste les modules, t'as trouvé ?

Je cherche des que je suis sur ma becane ce soir!

Pas mal man man j'y avais pas pense :lol:


Mais du coup je laisse tomber le truc des modules et je cherche comment couper l'alimentation des certains materiels de mon portable? :heink:
 

zeb

Modérateur
Typiquement, l'électricité des ports USB est géré par le pilote. C'est pourquoi je t'en parlais. Je te donnais même l'exemple du déchargement de usb-ehci.
Pour ce qui est du reste, effectivement, c'est plus sioux. Installe-toi les scripts du paquet Laptop-mode-tools et cogne-toi leur étude. Tu vas devenir un pro du man...

Ou attends patiemment que quelqu'un ait une idée et la poste ici.
 

Barkit

Nouveau membre
Ouais a defaut de pouvoir trouver un alternative manuelle, je vais tester le laptop-mode-tools; j'essaierai de poster des retours si j'ai trouve des trucs interessants; merci a vous en tout cas [:_tom_:7]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 055
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut