Charge de ma batterie limitée à 80%

Essaye de faire

find /sys -name battery_care_limit

puis tu fais simplement sous root en adaptant en fonction de ce que tu as obtenu

echo 80 > /sys/devices/platform/????????/battery_care_limit

Bonjour à toutes et à tous,

Je fais une réponse globale, afin de ne pas surcharger le post.
@anon95513332 : je vois cette valeur dans ma barre des tâches tint2. C’est l’applet « Batterie »
@mam1962 : Je cherche à passer le seuil à 100%, car j’ai lu que une fois tous les 2,3 mois, c’était bien de le faire. Je laisse le seuil à 80%, le reste du temps
@fran.b : je n’ai pas le fichier battery_care_limit dans mon arborescence

Hier, au moment d’éteindre mon portable, j’ai constaté avec surprise, que l’applet Batterie affichait à 100% :-o Ce matin c’est toujours le cas :slight_smile:

J’ai fait beaucoup de manips, il me fait donc les rejouer, pour savoir laquelle a fonctionné. Je pense que c’est la création du fichier « /etc/udev/hwdb.d/61-battery-local.hwdb », avec ce contenu :
battery:::dmi:*
CHARGE_LIMIT=0,100
qui a fait le taf. Si toutefois c’est validé, je reviendrai vous le faire savoir
Cordialement

Si c’est revenu à 100%, c’est le principal.

Mais il ne faut pas oublier qu’une batterie, ça vieillit, donc les 100% de charge affichés, sont les 100% de la charge maximale, moins les cellules qui ne chargent plus.

Selon les applications, l’information est plus ou moins facile à obtenir.

1 J'aime

upower -d est pas mal comme commande pour ça

2 J'aime

Bonjour,
Merci à toutes et à tous pour vos pistes
Je ne suis pas revenu donner des nouvelles, car je suis parvenu à charger ma batterie à 100%, mais depuis je ne parviens plus à faire machine arrière. Pour limiter la charge à 80%
Je pensais que le fichier /etc/udev/hwdb.d/61-battery-local.hwdb", faisait le taf, mais non :-/
Je continue de chercher

bien que je l’aii pas essayé, cette page semble intéressantre :

qui en résumé dit :
solution 1. installer tlp et mettre dans /etc/tlp.conf

STOP_CHARGE_THRESH_BAT0=80

solution 2 :
mettre
echo 80 > /sys/class/power_supply/BAT0/charge_control_end_threshold
dans un udev

mais il vaut mieux lire l’article
en particulier BAT0 doit être remplacé par BAT1 chez moi

1 J'aime

Bonsoir,
@dindoun excellent ce lien. Malheureusement aucune des deux méthodes ne fonctionnent chez moi. TLP s’installe correctement, je positionne les deux valeurs qui m’intéressent :
START_CHARGE_THRESH_BAT1=35
STOP_CHARGE_THRESH_BAT1=80
le service se lance, mais rien ne bouge. Je reste scotché à 100%
La méthode avec avec la règle udev, ne génère aucune réaction. Le fichier
« /sys/class/power_supply/BAT0/charge_control_end_threshold », ne se crée pas. J’ai lu que ce système de fichiers est géré par sysfs, et est en lecture seule. À la limite si ce fichier existait chez moi, peut-être pourrais-je écrire dedans, mais ça n’est pas le cas, et je n’ai pas les autorisations pour le créer

Par contre ce soir je suis à 75%. Mais je reviens du monde de Windows 11. Mon PC est en double boot. Windows 11 25H2 et Debian sid. Sous Windows, j’ai branché ma batterie alors qu’elle n’était plus que 50%. J’ai attendu longtemps. J’ai vu apparaître fugitivement un « widget » sur le bureau, sur la droite de l’écran. Ce widget parle d’alimentation intelligente, ( La fonctionnalité s’active lorsque l’ordinateur est branché pendant une période prolongée, et se désactive si la batterie descend en dessous de 20 %.).
Je n’ai pas pu interagir avec ce widget. Il affiche le message, et disparaît. Depuis, aussi bizarre que ce la puisse paraître, je suis à 75% sous Windows et sous Debian :thinking: Je pense donc que Windows « écrit » quelque part dans le BIOS UEFI. En effet, « au dessus » de mes deux OS, je ne vois que lui, pour fournir cette info commune. Sous ma Debian ce soir, je n’ai plus aucun logiciel, ni de règles udev en fonction, et je suis à 75%, comme sous Windows

Bonne soirée

Peux tu mettre le résultat de

for i in $(find /sys -name 'BAT*') ; do find $i ; done

(moi j’obtiens

Bonsoir fran.b,
Je vois dans ta sortie, que tu possèdes le fichier « charge_control_end_threshold »
voici le résultat de la commande chez moi :
/sys/class/power_supply/BAT1
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/uevent
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/charge_full_design
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/serial_number
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/technology
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/current_now
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/charge_now
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/present
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_active_time
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_active_kids
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_usage
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_status
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/autosuspend_delay_ms
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/async
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_suspended_time
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/runtime_enabled
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/power/control
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/manufacturer
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/device
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/type
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/charge_full
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/capacity
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/cycle_count
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/voltage_now
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/subsystem
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/status
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/alarm
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/model_name
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/voltage_min_design
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/capacity_level
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/uevent
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/in0_input
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_active_time
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_active_kids
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_usage
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_status
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/autosuspend_delay_ms
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/async
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_suspended_time
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/runtime_enabled
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/power/control
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/device
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/subsystem
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/curr1_input
/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/hwmon1/name

Hum, tu dois avoir un module dédié par la batterie, sinon ça se fait peut être au niveau du BIOS.
Regarde le module qui gère ta batterie:
udevadm info -a -p /sys/class/power_supply/BAT1 | grep DRIVER

juste une question bête: combien de temps dure ta batterie en utilisation standard (sans utiliser d’application à forte contrainte comme un jeu par exemple) ?
Et quelle est la durée prévue par le constructeur (minorée par l’age de la machine) ?

Pour moi, batterie à 80% à 10h, et là, utilisation permanente standard melant video, internet, compilation, …

la machine a 1 an

dommage que tu ne saches pas à quand remonte cette dernière indication, le last c’était quand?
car on peut très bien envisager dans ton cas, que coté batterie, ça monte à 100% mais que coté indicateur ce ne soit pas bon.
ceci étant, 6h à 46%M c’est pas mal quand même :slight_smile:

Non 3h15 à 46% en partant de 80%, soit donc 3h ~ 35%, en gros on peu miser sur 6-7h en partant de 100%. Tous les 10 jours en gros, je recharges l’ordi à 100% pour recaler l’indicateur. Cela dit il n’a pas bougé des 9279 mAh ce qui m’ particulièrement étonné, les précédents ordi dégringolaient à 80% au bout d’un an. Mais c’est vrai que c’est la premère fois que je fais cette histoire des 80% maximum de charge, ça a l’air efficace

Bonjour fran.b, le résultat de la commande est :
DRIVER==""
DRIVERS==« battery »
DRIVERS==« ec »
DRIVERS==""
DRIVERS==""
DRIVERS==""
DRIVERS==""
Avant hier je suis parti en oubliant de rebrancher mon portable. Lorsque je suis rentré, il était en mode hibernation. Je l’ai rebranché électriquement. Il a chargé la batterie à 98%. Alors que cela faisait plusieurs jours qu’il ne la chargeait qu’à 80%

Je viens de le débrancher à l’instant
Je donne également le résultat de la commande acpi -i :
Battery 0: Not charging, 97%
Battery 0: design capacity 4600 mAh, last full capacity 2777 mAh = 60%
mer. 29 oct. 2025 08:38:50 CET
Bonne journée

et si le 80% était calculé sur la « design capacity »?

J’ai lu sur le net, que la capacité était calculée ainsi :
POWER_SUPPLY_CAPACITY = (POWER_SUPPLY_CHARGE_NOW / POWER_SUPPLY_CHARGE_FULL) * 100

la capacité affichée oui, c’est sûr
mais lors de la limitation peut etre pas

dans cette page : Laptop/ASUS - ArchWiki ils disent que sur certains laptop il faut instalelr d’autres programmes

1 J'aime

Essaye de charger un par un les modules sous
/usr/lib/modules/«ton noyau»/kernel/drivers/power/supply/
et de voir si l’arborescence /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:51/PNP0C09:00/PNP0C0A:00/power_supply/BAT1/ se complète

Bonsoir fran.b, c’est une bonne idée ça, mais malheureusement sur les 13 modules présents :
axp288_charger.ko.xz
axp288_fuel_gauge.ko.xz
bq24190_charger.ko.xz
bq27xxx_battery_hdq.ko.xz
bq27xxx_battery.ko.xz
cros_peripheral_charger.ko.xz
cros_usbpd-charger.ko.xz
ds2760_battery.ko.xz
max17042_battery.ko.xz
sbs-battery.ko.xz
surface_battery.ko.xz
surface_charger.ko.xz
wilco-charger.ko.xz
les 3, 4 qui acceptent de se charger ne me complètent pas l’arborescence :-/