Connect with us

Linux

Come limitare la carica della batteria (impostare una soglia di carica) per i laptop ASUS su Linux


limitare la carica della batteria asus linux

I nuovi laptop ASUS supportano la limitazione del livello di carica della batteria, che aiuta a prolungare la durata della batteria. Questo articolo spiega come impostare una soglia di carica della batteria per i laptop ASUS su Linux.

La durata della batteria dipende dall’età, dalle alte temperature, dal numero di cicli di carica e dal tempo a piena carica. Una soglia di carica della batteria riduce la quantità di tempo a piena carica (100%) e quindi migliora la salute / durata della batteria.

I laptop ASUS supportano l’impostazione di una soglia di addebito a partire da Linux 5.4. Il metodo WMI del kernel per impostare la soglia di carica non fornisce un modo per specificare una batteria, supponendo che sia la prima batteria (BAT0). Tuttavia, per alcuni laptop ASUS più recenti, la batteria principale non viene chiamata BAT0, ma BATT (es. Zenbook UM431DA) e BAT1 (ad esempio ASUS TUF Gaming FX706II). [Edit] E c’è anche BATC.

Quindi, mentre i laptop ASUS supportano la limitazione della carica della batteria a partire da Linux 5.4, questo è solo per i laptop che hanno BAT0. Per laptop ASUS che utilizzano BATT come nome della batteria principale, avrai bisogno del kernel 5.7, mentre per BAT1 avrai bisogno del kernel 5.8 (nelle istruzioni sottostanti vedrai esattamente come controllare il nome della batteria). [Edit] Per i laptop ASUS che utilizzano il nome della batteria BATC, è necessario utilizzare Linux 5.9 o versioni successive.

Anche, non tutti i laptop ASUS supportano l’impostazione di una soglia di carica della batteria, quindi a seconda del modello di laptop ASUS, questo potrebbe o non potrebbe funzionare per te; non c’è un elenco di dispositivi supportati che sono riuscito a trovare.

È importante menzionarlo il metodo WMI del kernel per impostare la soglia di carica della batteria per i notebook ASUS può impostare solo il valore di arresto (charge_control_end_threshold) (non può anche impostare la soglia di inizio). Inoltre, con AC collegato, se il livello della batteria è superiore alla soglia di arresto della carica, non si scaricherà fino alla soglia di arresto.

E un’altra nota. Con il mio ASUS ZenBook 14 UX433FAC che esegue Ubuntu 20.04 con GNOME Shell, quando si limita la carica della batteria mentre il livello della batteria è uguale o superiore alla soglia di carica, e quindi si collega il laptop all’alimentazione CA, l’indicatore della batteria dal pannello superiore cambia dal tempo rimanente fino a quando la batteria non si scarica per il tempo rimanente fino alla ricarica della batteria. Ciò accade anche se la batteria non si sta caricando. Dopo un po ‘(quindi questo non è istantaneo quando si collega il laptop alla rete elettrica), l’indicatore della batteria cambia per dire “Non in carica”, come dovrebbe.

Oltre ad ASUS, alcuni laptop Lenovo e Huawei (con quest’ultimo che ottiene supporto con Linux 5.5) supportano anche la limitazione della carica della batteria. Ma poiché possiedo solo un laptop ASUS e non posso testarlo su altri dispositivi, questa guida è solo per ASUS. Lenovo ha avuto supporto per questo per un bel po ‘e TLP ha il supporto per l’impostazione di questo built-in (solo per IBM / Lenovo ThinkPads). Come nota a margine, ecco una GUI per TLP per configurarlo facilmente, nel caso in cui non lo stai già utilizzando.

Potrebbe piacerti anche: auto-cpufreq è un ottimizzatore di velocità e potenza della CPU per Linux

Come impostare una soglia di interruzione della carica della batteria per i laptop ASUS su Linux

1. Trova il nome della batteria del tuo laptop ASUS.

Iniziamo cercando di capire il nome della batteria per il tuo laptop ASUS. Questo può essere fatto usando il seguente comando:

ls /sys/class/power_supply

Questo comando dovrebbe produrre qualcosa di simile a questo:

AC0  BAT0

In questo esempio (dal mio notebook ASUS), il nome della batteria è BAT0, ma come ho detto sopra, potrebbe anche essere per te BAT1 o BATT, questi sono gli unici nomi di batteria supportati dal kernel per i laptop ASUS.

2. Creare un servizio systemd per impostare la soglia di interruzione della carica della batteria all’avvio.

Prima di creare il servizio systemd, controlla se il tuo laptop lo ha effettivamente charge_control_end_threshold nel /sys/class/power_supply/BAT* (senza di esso, questo non funzionerà):

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

Se questo comando restituisce il percorso a charge_control_end_threshold, quindi il tuo notebook ASUS supporta la limitazione della carica della batteria. Se il comando restituisce un errore, dicendo che non esiste un file o una directory di questo tipo, il tuo laptop non supporta l’impostazione di una soglia di addebito.

Se il tuo laptop ASUS ha questo file, possiamo continuare. Crea un file che chiameremo battery-charge-threshold.service nel /etc/systemd/system.

Puoi aprire questo file con il tuo editor di testo della console predefinito utilizzando:

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

Oppure usa Gedit o qualsiasi editor grafico che desideri utilizzare (ad esempio, per Gedit per aprire questo file come root: gedit admin:///etc/systemd/system/battery-charge-threshold.service)

In questo file dovrai incollare quanto segue:

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

[Service]2.

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

Ecco, cambia BATTERY_NAME con il nome della batteria (BAT0, BAT1 o BATT), e CHARGE_STOP_THRESHOLD con la soglia di arresto della carica della batteria che si desidera utilizzare (compresa tra 1 e 100). Tieni presente che ho letto che un utente non poteva impostare la soglia di addebito su alcun valore, ma solo su 60, 80 e 100.

Da quello che ho letto, per una migliore durata della batteria quando il laptop è collegato alla corrente alternata per la maggior parte del tempo, impostare la soglia di interruzione della carica della batteria intorno a 50 o 60. Se la batteria viene utilizzata piuttosto frequentemente, impostare la soglia di interruzione della carica della batteria su circa 90.

3. Abilitare e avviare il servizio systemd della soglia di carica della batteria.

Ora abilitiamo e avviamo il servizio systemd di soglia di carica della batteria appena creato:

sudo systemctl enable battery-charge-threshold.service

sudo systemctl start battery-charge-threshold.service

Con systemd 220 è possibile abilitare e avviare un servizio direttamente utilizzando systemctl enable --now, ma preferisco usare 2 comandi nel caso in cui alcuni lettori utilizzino una versione precedente di systemd.

Se si desidera modificare il livello di soglia di arresto della carica della batteria, dovrai modificare il file /etc/systemd/system/battery-charge-threshold.service file e modificare il numero da ExecStart linea (dopo echo) al nuovo valore che si desidera utilizzare, quindi ricaricare systemd (perché il contenuto del file è cambiato) e riavviare il servizio systemd utilizzando i seguenti comandi:

sudo systemctl daemon-reload

sudo systemctl restart battery-charge-threshold.service

4. Verificare che la soglia di arresto della carica della batteria funzioni.

Se il tuo laptop ASUS lo supporta, il limite di carica della batteria dovrebbe ora essere impostato sul valore che hai usato nel passaggio 2.

Puoi verificarlo caricando il tuo laptop alla soglia impostata battery-charge-threshold.servicee quindi usa questo comando:

cat /sys/class/power_supply/BATTERY_NAME/status

Sostituire BATTERY_NAME con il nome della batteria, come spiegato al punto 1.

Se la soglia di arresto della carica della batteria funziona, il comando dovrebbe mostrare il seguente output:

Not Charging

Se dice “Scarica in corso”, assicurati che il tuo laptop ASUS sia effettivamente alimentato a corrente alternata e non funzioni a batteria. Tuttavia, se dice “In carica”, beh … allora il tuo laptop si sta caricando oltre la soglia di arresto della carica, quindi questo non funziona per te, anche perché il tuo laptop ASUS non lo supporta (il che è strano se lo hai charge_control_end_threshold come accennato al passaggio 2), stai utilizzando una versione di Linux troppo vecchia per limitare la carica della batteria sul tuo notebook ASUS, oa causa di un errore umano ????️.

Extra: nel caso in cui non usi systemd, puoi farlo anche usando cron, eseguendo sudo crontab -e e quindi incollando la riga seguente (questa è una riga singola, fare triplo clic sulla riga per selezionare l’intera riga):

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

Sostituzione CHARGE_STOP_THRESHOLD con la soglia di arresto della carica della batteria che si desidera utilizzare e BATTERY_NAME con il nome della batteria come mostrato nel passaggio 1.

Perché utilizzare un servizio systemd o un cron job? Secondo u / esrevartb, da cui ho adattato queste istruzioni, “sembra che la regola udev non funzioni o perché il percorso sysfs della batteria non è ancora inizializzato quando la regola viene applicata, o perché questo specifico attributo charge_control_end_threshold non può essere modificato in questo modo“.

[[Edit] Ho anche trovato uno script e un servizio systemd per impostare facilmente un limite di carica della batteria per i laptop ASUS su Linux. Usandolo, è più facile cambiare il limite di carica della batteria (tutto ciò che devi fare è correre ./limit.sh CHARGE_STOP_THRESHOLD)

Relativo alla batteria del laptop: Bwall è uno sfondo animato della batteria per Linux (Bash Script)

tramite r / linuxhardware (grazie u / esrevartb)


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi