Comment ajuster les seuils de charge de la batterie d'un ordinateur portable?

13

Mon ordinateur portable est Lenovo T400 et le système d'exploitation est Ubuntu 12.04.

Je n'ai pas pu ajuster les seuils de démarrage et d'arrêt de la charge de la batterie. J'ai observé que son seuil de charge de démarrage actuel est d'environ 40% et que son seuil de charge d'arrêt est d'environ 60%. J'ai oublié si c'était moi et quel programme j'ai utilisé pour contrôler la batterie pour arrêter la charge à 60% et commencer à charger à 40%.

J'ai suivi mon post précédent /ubuntu/58789/how-to-check-charged-percentage-of-battery-and-to-adjust-its-thresholds , mais je ne trouve pas /sys/devices/platform/smapi. J'ai aussi /proc/acpi/battery/BAT0/, mais je n'ai que trois fichiers alarm, infoet state.

Je veux ajuster les seuils. Je me demande donc comment faire ça?

Tim
la source
Essayez en modprobe tp_smapitant que root, puis voyez si les fichiers sous /sys/devices/platform/smapisont là.
Renan
@Renan: le module est introuvable FATAL: Module tp_smapi not found..
Tim
1
Installez tp_smapi selon les instructions qui s'y trouvent : thinkwiki.org/wiki/… puis réessayez.
Renan
@Renan: tp_smapi est-il uniquement pour les ordinateurs portables Lenovo? Les modules de gestion de charge de batterie sont-ils différents pour différentes marques d'ordinateurs portables?
Tim
Certains ordinateurs portables Lenovo ont des fonctionnalités spécifiques auxquelles tp_smapi vous donne accès. Je ne connais pas les autres marques, mais elles ont probablement des outils similaires (j'ai un ordinateur portable Dell et je vois que j'ai un module dell_laptop et dell_wmi, par exemple; je ne l'ai jamais exploré pour voir ce qu'il fait)
Renan

Réponses:

4

Vous devez installer tp_smapi-dkms, faites simplement

apt-get install tp_smapi-dkms

Une fois terminé, utilisez lsmod | grep tp_smapipour vérifier si le module est chargé, pour ajuster les seuils de charge, faites quelque chose comme ceci

echo 40 > /sys/devices/platform/smapi/BAT0/start_charge_thresh
echo 60 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh

Ajoutez ces lignes à /etc/rc.localpour les exécuter au démarrage.

Ce module fonctionne au moins sur X220.

Marguerite
la source
Pour toute personne dont l'autorisation est refusée, même avec les privilèges sudo, essayez echo 60 | sudo tee /sys/devices/platform/smapi/BAT0/stop_charge_thresh.
Andrey Kaipov
8

Les ThinkPad Lenovo plus récents (comme mon E540) ne sont pas compatibles avec tp_smapi-dkms. Heureusement, j'ai trouvé que l' utilitaire TLP peut utiliser l'un des deux modules différents - les modules tp_smapi OU les modules DKMS thinkpad_acpi - pour communiquer les seuils à la batterie.

De nos jours, TLP est disponible via les référentiels Ubuntu ou Debian standard. (Bien que vous puissiez bénéficier de la dernière version disponible en utilisant le site Web de TLP pour installer les packages.)

Après avoir installé TLP, définissez les seuils de charge de la batterie à l'aide de deux lignes dans le fichier de configuration / etc / default / tlp

START_CHARGE_THRESH_BAT0=65
STOP_CHARGE_THRESH_BAT0=80

Cet exemple indique à TLP de définir les seuils de batterie pour commencer la charge à 65% et arrêter la charge à 80%. Je trouve que les seuils persistent correctement même lors du démarrage dans un autre système d'exploitation sur lequel TLP n'est pas installé. (Bien que je présume que si vous avez démarré sous Windows ou un autre système d'exploitation sur lequel des outils de gestion de l'alimentation sont installés, ce système d'exploitation peut remplacer les seuils de charge définis précédemment.)

Pour porter TEMPORAIREMENT la batterie à une charge complète, émettez la commande de terminal suivante:

 $ sudo tlp fullcharge

La batterie se chargera alors à sa capacité maximale et reviendra ensuite aux seuils précédents.

Remarque: Si votre ordinateur portable n'est pas un "ThinkPad", TLP ne peut probablement pas définir les niveaux de charge de votre batterie . Si votre fournisseur fournit un utilitaire de gestion de l'alimentation pour Windows, vous pouvez probablement démarrer à l'aide d'une certaine forme de Windows pour définir les niveaux de charge de la batterie, puis redémarrer sous Linux. D'après mon expérience, les paramètres du seuil de charge de la batterie persistent après le redémarrage du système.

Tommy Trussell
la source
Cela ne fonctionne que pour les ThinkPads, qu'en est-il des autres modèles?
Akronix
@Akronix Je pense que TLP peut être installé sur plusieurs types d'ordinateurs portables et, selon le matériel, le micrologiciel et l'architecture, dépend de différentes bibliothèques. J'ai récemment pris conscience des différentes bibliothèques car mon Lenovo relativement moderne utilise TLP légèrement différemment des ThinkPad plus anciens.
Tommy Trussell
Cependant, cela ne fonctionne pas dans mon Lenovo G-Series
Akronix
@Akronix Je devais regarder ... mon ThinkPad est un E540. En suivant les menus sur support.lenovo.com, j'ai déterminé que le mien était connu sous le nom de «Thinkpad Edge Series». J'ai dû explorer de nombreux sites avant de faire fonctionner presque tout le matériel comme je le voulais (j'ai abandonné le capteur d'empreintes digitales, par exemple).
Tommy Trussell
1
@ Akronix ouais, je n'ai jamais démarré Windows sur le mien. J'ai probablement encore les disques, mais j'ai essayé de rester "pur". Malheureusement, Lenovo a apparemment cessé de prendre en charge Linux, même sur mon modèle, même si je l'ai acheté PARCE QU'il était "certifié" pour Ubuntu et Red Hat.
Tommy Trussell
1

Sur mon ordinateur portable (Yoga 260), j'ai dû obtenir acpi-call-dkms, qui fournit le module du noyau acpi_call:

sudo apt install tlp acpi-call-dkms
sudo tlp setcharge 40 60 #set the start and stop thresholds to 40% and 60%

Sortie de sudo tlp stat -b:

--- TLP 1.1 --------------------------------------------

+++ ThinkPad Battery Features
tp-smapi   = inactive (unsupported hardware)
tpacpi-bat = active

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 00HW027
/sys/class/power_supply/BAT0/cycle_count                    = (not supported)
/sys/class/power_supply/BAT0/energy_full_design             =  44000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  37970 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  18910 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Unknown (threshold effective)

tpacpi-bat.BAT0.startThreshold                              =     40 [%]
tpacpi-bat.BAT0.stopThreshold                               =     60 [%]
tpacpi-bat.BAT0.forceDischarge                              =      0

Charge                                                      =   49.8 [%]
Capacity                                                    =   86.3 [%]
takhisis
la source
Pourquoi 40 60? La charge s'arrête-t-elle vraiment à 60%? Pourquoi est-il BAT0/status = Unknown- semble étrange.
hrvoj3e
@ hrvoj3e Je viens de choisir 40 60 comme exemple de cohérence avec la réponse de Daisy, mais la raison pour laquelle vous voudrez peut-être arrêter de charger à 60% est que cela peut prolonger la durée de vie de la batterie: superuser.com/questions/502328/… The "Unknown" l'état est juste ce qu'il dit quand il ne se charge ni ne se décharge. Je l'avais déchargé à 49,8%, puis rebranché le chargeur, et comme il est toujours au-dessus du seuil de démarrage, il ne commencerait pas à se charger.
takhisis
Merci pour l'info. Mon Yoga S740 ne fonctionnera pas avec les contrôles de batterie acpi mais j'ai configuré un notificateur dans l'invite du shell car je passe beaucoup de temps dans le terminal. Ensuite, quand je vois qu'il est au-dessus / en dessous d'un seuil, je connecte / déconnecte manuellement le chargeur.
hrvoj3e