GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment limiter la charge de la batterie (définir un seuil de charge) pour les ordinateurs portables ASUS sous Linux

Les nouveaux ordinateurs portables ASUS prennent en charge la limitation du niveau de la batterie, ce qui prolonge la durée de vie de la batterie. Cet article explique comment définir un seuil de charge de batterie pour les ordinateurs portables ASUS sous Linux.

La durée de vie de la batterie est affectée par l'âge, les températures élevées, le nombre de cycles de charge et le temps nécessaire pour une charge complète. Un seuil de charge de la batterie réduit la durée d'une charge complète (100%) et améliore ainsi l'état / la durée de vie de la batterie.

Les ordinateurs portables ASUS prennent en charge la définition d'un seuil de charge à partir de Linux 5.4 . La méthode WMI du noyau pour définir le seuil de charge ne permet pas de spécifier une batterie, en supposant qu'il s'agit de la première batterie (BAT0 ). Cependant, certains ordinateurs portables ASUS plus récents n'iront pas à la batterie principale BAT0 , mais BATT (par exemple Zenbook UM431DA) et BAT1 (par exemple, ASUS TUF Gaming FX706II). [Edit] Et il y a aussi BATC.

Ainsi, alors que les ordinateurs portables ASUS à partir de Linux 5.4 prennent en charge la limitation du processus de charge de la batterie, cela ne concerne que les ordinateurs portables avec BAT0 . Pour les ordinateurs portables ASUS avec BATT Comme nom de batterie principal, vous avez besoin du noyau 5.7tandis que pour BAT1 vous aurez besoin de ce noyau 5.8 (voir les instructions ci-dessous pour savoir exactement comment vérifier le nom de la batterie). [Modifier] Pour les ordinateurs portables ASUS qui utilisent le nom de batterie BATC, vous devez disposer de Linux 5.9 ou d'une version plus récente.

De même, tous les ordinateurs portables ASUS ne prennent pas en charge la définition d'un seuil de charge de la batterie, donc cela peut ou non fonctionner pour vous selon le modèle de votre ordinateur portable ASUS ; Il n'y a pas de liste d'appareils pris en charge que j'ai pu trouver.

Il est important de mentionner La méthode WMI du noyau pour définir le seuil de charge de la batterie pour les ordinateurs portables ASUS ne peut utiliser que la valeur d'arrêt (charge_control_end_threshold ) (il ne peut pas non plus définir le seuil de démarrage). Si le niveau de charge de la batterie est supérieur au seuil d'arrêt de charge, elle ne sera pas déchargée jusqu'au seuil d'arrêt lors de la connexion au secteur.

Et une note de plus. Sur mon ASUS ZenBook 14 UX433FAC avec Ubuntu 20.04 avec GNOME Shell, l'indicateur de batterie sur le panneau supérieur change du temps restant si le niveau de la batterie est limité alors que le niveau de la batterie est égal ou supérieur au seuil de charge, puis l'ordinateur portable est connecté au secteur jusqu'à ce que la batterie se soit déchargée jusqu'au temps restant pour charger la batterie. Cela se produit même si la batterie n'est pas chargée. Après un certain temps (pas immédiatement lorsque vous branchez votre ordinateur portable sur le secteur), l'indicateur de batterie passe à "Non chargé" comme prévu.

En plus d'ASUS, certains ordinateurs portables Lenovo et Huawei (ce dernier prenant en charge Linux 5.5) prennent également en charge la limitation de la charge de la batterie. Cependant, comme je n'ai qu'un seul ordinateur portable ASUS et que je ne peux pas le tester sur d'autres appareils, ces instructions ne s'appliquent qu'à ASUS. Lenovo a pris en charge cela pendant un certain temps et TLP a fourni une assistance pour la configuration intégrée (uniquement pour IBM / Lenovo ThinkPads). En passant, voici une interface graphique pour TLP pour faciliter la configuration au cas où vous ne l'utiliseriez pas déjà.

Vous pourriez également aimer ceci :auto-cpufreq est un optimiseur de vitesse et de performances du processeur pour Linux

Comment définir un seuil d'arrêt de la charge de la batterie pour les ordinateurs portables ASUS sous Linux

1. Découvrez le nom de la batterie de votre ordinateur portable ASUS.

Commençons par déterminer le nom de la batterie de votre ordinateur portable ASUS. Cela peut être fait avec la commande suivante :

ls /sys/class/power_supply

Cette commande devrait afficher quelque chose comme ceci :

AC0  BAT0

Dans cet exemple (de mon ordinateur portable ASUS), le nom de la batterie est BAT0 , mais comme mentionné ci-dessus, cela peut être pour vous aussi BAT1 ou BATT , ce sont les seuls noms de batterie pris en charge par le noyau pour les ordinateurs portables ASUS.

2. Créez un service systemd pour définir le seuil d'arrêt de la charge de la batterie au démarrage.

Avant de créer le service systemd, vérifiez que votre ordinateur portable a bien charge_control_end_threshold en /sys/class/power_supply/BAT* (ça ne marche pas sans) :

ls /sys/class/power_supply/BAT*/charge_control_end_threshold

Lorsque cette commande renvoie le chemin vers charge_control_end_threshold , votre ordinateur portable ASUS prend en charge la limitation de la charge de la batterie. Si la commande renvoie une erreur indiquant qu'il n'existe aucun fichier ou répertoire de ce type, votre ordinateur portable ne prend pas en charge la définition d'un seuil de charge.

Si votre ordinateur portable ASUS a ce fichier, nous pouvons passer à autre chose. Créez un fichier que nous appellerons battery-charge-threshold.service en /etc/systemd/system .

Vous pouvez ouvrir ce fichier avec l'éditeur de texte standard de votre console en :

sudo editor /etc/systemd/system/battery-charge-threshold.service

Ou utilisez Gedit ou n'importe quel éditeur graphique que vous souhaitez utiliser (par exemple, pour que Gedit ouvre ce fichier en tant que root :gedit admin:///etc/systemd/system/battery-charge-threshold.service )

Dans ce fichier, vous devez inclure les éléments suivants :

[Unit]
Description=Set the battery charge threshold
After=multi-user.target

StartLimitBurst=0

[Service]
Type=oneshot
Restart=on-failure

ExecStart=/bin/bash -c 'echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold'

[Install]
WantedBy=multi-user.target

Ici, changez BATTERY_NAME avec le nom de la batterie (BAT0 , BAT1 ou BATT ), et CHARGE_STOP_THRESHOLD avec le seuil d'arrêt de charge que vous souhaitez utiliser (entre 1 et 100). Notez que j'ai lu qu'un utilisateur ne pouvait définir le seuil de charge sur aucune valeur, uniquement sur 60, 80 et 100.

D'après ce que j'ai lu, pour une autonomie optimale lorsque l'ordinateur portable est branché la plupart du temps, réglez le seuil de charge d'arrêt de la batterie sur environ 50 ou 60. Si la batterie est utilisée un peu fréquemment, réglez le seuil d'arrêt de la batterie sur environ 90.

3. Activez et démarrez le service systemd pour le seuil de charge de la batterie.

Maintenant, activons et démarrons le nouveau service système de seuil de charge de la batterie :

sudo systemctl enable battery-charge-threshold.service

sudo systemctl start battery-charge-threshold.service

Avec systemd 220, il est possible de diriger un service via. pour activer et démarrer systemctl enable --now mais je préfère utiliser 2 commandes au cas où certains lecteurs utiliseraient une ancienne version de systemd.

Si vous souhaitez modifier le seuil d'arrêt de la charge de la batterie , vous devez éditer ce /etc/systemd/system/battery-charge-threshold.service Classer et changer le numéro du ExecStart Ligne (après echo ) à la nouvelle valeur que vous souhaitez utiliser, puis rechargez systemd (car le contenu du fichier a changé) et redémarrez le service systemd avec les commandes suivantes :

sudo systemctl daemon-reload

sudo systemctl restart battery-charge-threshold.service

4. Vérifiez que le seuil d'arrêt de la batterie fonctionne.

Si votre ordinateur portable ASUS le prend en charge, la limite de charge de la batterie doit maintenant être définie sur la valeur que vous avez utilisée à l'étape 2.

Vous pouvez le vérifier en chargeant votre ordinateur portable jusqu'au seuil défini dans battery-charge-threshold.service , puis utilisez cette commande :

cat /sys/class/power_supply/BATTERY_NAME/status

Remplacez BATTERY_NAME avec le nom de la batterie, comme expliqué à l'étape 1.

Si le seuil d'arrêt de charge de la batterie fonctionne, la commande doit afficher le résultat suivant :

Not Charging

S'il indique "Décharge", assurez-vous que votre ordinateur portable ASUS fonctionne réellement sur secteur et non sur batterie. Cependant, s'il indique "Chargement", eh bien... alors votre ordinateur portable est en train de charger au-delà du seuil d'arrêt de charge, donc cela ne fonctionnera pas pour vous, également parce que votre ordinateur portable ASUS ne le prend pas en charge (ce qui est bizarre si vous l'avez fait) charge_control_end_threshold Comme mentionné à l'étape 2), vous utilisez une version de Linux trop ancienne pour limiter la charge de la batterie de votre ordinateur portable ASUS, ou suite à une erreur humaine ?️.

Extra :si vous n'utilisez pas systemd, vous pouvez également le faire avec cron en exécutant sudo crontab -e puis collez la ligne suivante (il s'agit d'une seule ligne, cliquez trois fois sur la ligne pour sélectionner la ligne entière), bien que d'après ce que j'ai lu, ce ne soit pas fiable dans tous les cas (je ne sais pas pourquoi):

@reboot echo CHARGE_STOP_THRESHOLD > /sys/class/power_supply/BATTERY_NAME/charge_control_end_threshold

Remplacez CHARGE_STOP_THRESHOLD avec le seuil d'arrêt de charge que vous souhaitez utiliser et BATTERY_NAME avec le nom de la batterie comme indiqué à l'étape 1.

Pourquoi utiliser un service systemd ou une tâche cron ? Selon u / esrevartb, dont j'ai adapté ce guide, "il semble que la règle udev ne fonctionne pas, soit parce que le chemin batteriesysfs n'est pas encore initialisé lorsque la règle est appliquée, soit parce que cet attribut particulier charge_control_end_threshold ne peut pas être changé de cette façon ".

[[Edit] Pour définir facilement un seuil de charge pour les ordinateurs portables ASUS (configuration automatique du service systemd et possibilité de modifier le seuil de charge avec une commande), ainsi que vérifier le seuil de charge actuel, voir bat.

Lié à la batterie d'un ordinateur portable :Bwall est un fond d'écran de batterie animé pour Linux (script bash)

au-dessus du matériel r / Linux (Merci u / esrevartb)


Ubuntu
  1. Comment afficher/vérifier les ports ouverts sur Ubuntu Linux

  2. Comment limiter l'utilisation du processeur avec CPULimit sur Ubuntu Linux

  3. Comment limiter l'utilisation du processeur d'un processus sous Linux

  4. Comment limiter l'utilisation des ressources pour un processus donné ?

  5. Chargez simplement les seuils de charge pour les ordinateurs portables ASUS sous Linux avec bat

Comment vérifier les erreurs dans Ram via Linux ?

Comment installer PlayOnLinux sur Ubuntu Linux :un tutoriel facile pour les débutants

Comment installer OpenVPN dans Ubuntu Linux :un tutoriel pour les débutants

Comment installer Nextcloud sur Ubuntu Linux :un tutoriel complet pour les débutants

Comment installer OwnCloud sur Ubuntu Linux :un tutoriel pour les débutants

Comment installer un logiciel sous Ubuntu Linux :un guide complet pour les débutants