GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo limitar la carga de la batería (establecer un umbral de carga) para portátiles ASUS en Linux

Las computadoras portátiles ASUS más nuevas admiten la limitación del nivel de la batería, lo que prolonga la vida útil de la batería. Este artículo explica cómo establecer un umbral de carga de batería para portátiles ASUS en Linux.

La vida útil de la batería se ve afectada por la edad, las altas temperaturas, la cantidad de ciclos de carga y el tiempo que tarda en cargarse por completo. Un umbral de carga de la batería reduce la duración de una carga completa (100 %) y, por lo tanto, mejora el estado/vida útil de la batería.

Los portátiles ASUS admiten la configuración de un umbral de carga a partir de Linux 5.4 . El método WMI del núcleo para configurar el umbral de carga no proporciona una forma de especificar una batería, suponiendo que sea la primera batería (BAT0 ). Sin embargo, algunas computadoras portátiles ASUS más nuevas no usarán la batería principal BAT0 , pero BATT (por ejemplo, Zenbook UM431DA) y BAT1 (por ejemplo, ASUS TUF Gaming FX706II). [Editar] Y también está BATC.

Entonces, mientras que las computadoras portátiles ASUS desde Linux 5.4 en adelante admiten la limitación del proceso de carga de la batería, esto es solo para computadoras portátiles con BAT0 . Para portátiles ASUS con BATT Como nombre de la batería principal, necesita Kernel 5.7 mientras que para BAT1 necesitará este núcleo 5.8 (Consulte las instrucciones a continuación para saber exactamente cómo verificar el nombre de la batería). [Editar] Para portátiles ASUS que usan el nombre de batería BATC, debe tener Linux 5.9 o posterior.

Del mismo modo, no todas las computadoras portátiles ASUS admiten la configuración de un umbral de carga de la batería, por lo que esto puede o no funcionar para usted según el modelo de su computadora portátil ASUS; No hay una lista de dispositivos compatibles que pueda encontrar.

Es importante mencionar El método WMI del kernel para configurar el umbral de carga de la batería para portátiles ASUS solo puede usar el valor de parada (charge_control_end_threshold ) (no puede también establecer el umbral de inicio). Si el nivel de carga de la batería es superior al umbral de parada de carga, no se descargará hasta el umbral de parada cuando se conecte la red de CA.

Y una nota más. En mi ASUS ZenBook 14 UX433FAC con Ubuntu 20.04 con GNOME Shell, el indicador de batería en el panel superior cambia del tiempo restante si el nivel de la batería es limitado mientras el nivel de la batería es igual o mayor que el umbral de carga y luego la computadora portátil está conectada a la red eléctrica hasta que la batería se haya descargado la cantidad de tiempo restante para cargar la batería. Esto sucede aunque la batería no se esté cargando. Después de un tiempo (no inmediatamente cuando conecta su computadora portátil a la red eléctrica), el indicador de batería cambia a "No cargada" como se esperaba.

Además de ASUS, algunos portátiles Lenovo y Huawei (este último compatible con Linux 5.5) también admiten la limitación de la carga de la batería. Sin embargo, dado que solo tengo una computadora portátil ASUS y no puedo probarla en otros dispositivos, estas instrucciones solo se aplican a ASUS. Lenovo ha tenido soporte para esto durante bastante tiempo y TLP ha brindado soporte para configurar estos integrados (solo para IBM / Lenovo ThinkPads). Como nota al margen, aquí hay una GUI para TLP para que sea fácil de configurar en caso de que aún no la estés usando.

También te puede gustar esto:auto-cpufreq es un optimizador de rendimiento y velocidad de CPU para Linux

Cómo establecer un umbral para detener la carga de la batería para portátiles ASUS en Linux

1. Descubra el nombre de la batería de su portátil ASUS.

Comencemos por averiguar el nombre de la batería de su computadora portátil ASUS. Esto se puede hacer con el siguiente comando:

ls /sys/class/power_supply

Este comando debería imprimir algo como esto:

AC0  BAT0

En este ejemplo (de mi portátil ASUS) el nombre de la batería es BAT0 , pero como se mencionó anteriormente, también puede ser para ti BAT1 o BATT , estos son los únicos nombres de batería admitidos por el kernel para portátiles ASUS.

2. Cree un servicio systemd para establecer el umbral para detener la carga de la batería en el arranque.

Antes de crear el servicio systemd, verifique que su computadora portátil realmente tenga charge_control_end_threshold en /sys/class/power_supply/BAT* (no funciona sin):

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

Cuando este comando devuelve la ruta a charge_control_end_threshold , entonces su portátil ASUS admite la limitación de la carga de la batería. Si el comando devuelve un error que indica que no existe dicho archivo o directorio, su computadora portátil no admite la configuración de un umbral de carga.

Si su computadora portátil ASUS tiene este archivo, podemos continuar. Crea un archivo que llamaremos battery-charge-threshold.service en /etc/systemd/system .

Puede abrir este archivo con su editor de texto de consola estándar:

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

O use Gedit o cualquier editor gráfico que desee usar (por ejemplo, para que Gedit abra este archivo como root:gedit admin:///etc/systemd/system/battery-charge-threshold.service )

En este archivo debe incluir lo siguiente:

[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

Aquí, cambia BATTERY_NAME con el nombre de la batería (BAT0 , BAT1 o BATT ) y CHARGE_STOP_THRESHOLD con el umbral de parada de carga que quieras usar (entre 1 y 100). Tenga en cuenta que leí que un usuario no podía establecer el umbral de carga en ningún valor, solo en 60, 80 y 100.

Por lo que he leído, para obtener la mejor duración de la batería cuando la computadora portátil está enchufada la mayor parte del tiempo, configure el umbral de parada de carga de la batería en alrededor de 50 o 60. Si la batería se usa con un poco de frecuencia, configure el umbral de parada de la batería en alrededor de 90.

3. Active e inicie el servicio systemd para el umbral de carga de la batería.

Ahora activemos e iniciemos el servicio del sistema Umbral de carga de la batería recién creado:

sudo systemctl enable battery-charge-threshold.service

sudo systemctl start battery-charge-threshold.service

Con systemd 220 es posible dirigir un servicio a través de. para activar e iniciar systemctl enable --now pero prefiero usar 2 comandos en caso de que algunos lectores estén usando una versión anterior de systemd.

Si desea cambiar el umbral para detener la carga de la batería , tienes que editar este /etc/systemd/system/battery-charge-threshold.service Archivar y cambiar el número del ExecStart Línea (después de echo ) al nuevo valor que desea usar, luego vuelva a cargar systemd (ya que el contenido del archivo ha cambiado) y reinicie el servicio systemd con los siguientes comandos:

sudo systemctl daemon-reload

sudo systemctl restart battery-charge-threshold.service

4. Verifique que el umbral de parada de la batería esté funcionando.

Si su computadora portátil ASUS admite esto, el límite de carga de la batería ahora debe establecerse en el valor que usó en el paso 2.

Puede verificar esto cargando su computadora portátil hasta el umbral establecido en battery-charge-threshold.service y luego use este comando:

cat /sys/class/power_supply/BATTERY_NAME/status

Sustituir BATTERY_NAME con el nombre de la batería, como se explica en el paso 1.

Si el umbral de parada de carga de la batería funciona, el comando debería mostrar el siguiente resultado:

Not Charging

Si dice "Descargando", asegúrese de que su computadora portátil ASUS esté funcionando con alimentación de CA y no con batería. Sin embargo, si dice "Cargando", bueno... entonces su computadora portátil se está cargando más allá del umbral de carga, por lo que esto no funcionará para usted, también porque su computadora portátil ASUS no lo admite (lo cual es extraño si lo hizo) charge_control_end_threshold Como se mencionó en el paso 2), está utilizando una versión de Linux que es demasiado antigua para limitar la carga de la batería en su portátil ASUS, o debido a un error humano?️.

Extra:en caso de que no esté usando systemd, también puede hacerlo con cron ejecutando sudo crontab -e y luego pegue la siguiente línea (esta es una sola línea, haga clic en la línea tres veces para seleccionar la línea completa), aunque por lo que he leído, esto no es confiable en todos los casos (no estoy seguro de por qué):/b>

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

Sustituir CHARGE_STOP_THRESHOLD con el umbral de parada de carga que desea utilizar y BATTERY_NAME con el nombre de la batería como se muestra en el paso 1.

¿Por qué usar un servicio systemd o un trabajo cron? Según u/esrevartb, de quien adapté esta guía, “parece que la regla udev no funciona, ya sea porque la ruta de las baterías aún no está inicializada cuando se aplica la regla, o porque este atributo particular charge_control_end_threshold no puede ser cambiado de esta manera “.

[[Editar] Para establecer fácilmente un umbral de carga para portátiles ASUS (configuración automática del servicio systemd y la capacidad de cambiar el umbral de carga con un comando), además de comprobar el umbral de carga actual, consulte bat.

Relacionado con la batería del portátil:Bwall es un fondo de pantalla de batería animado para Linux (script bash)

arriba r/hardware Linux (Gracias u/esrevartb)


Ubuntu
  1. Cómo mostrar/verificar puertos abiertos en Ubuntu Linux

  2. Cómo limitar el uso de la CPU con CPULimit en Ubuntu Linux

  3. Cómo limitar el uso de la CPU de un proceso en Linux

  4. ¿Cómo limitar el uso de recursos para un proceso dado?

  5. Simplemente cargue los umbrales de carga para portátiles ASUS en Linux con bat

¿Cómo comprobar si hay errores en RAM a través de Linux?

Cómo instalar PlayOnLinux en Ubuntu Linux:un sencillo tutorial para novatos

Cómo instalar OpenVPN en Ubuntu Linux:un tutorial para novatos

Cómo instalar Nextcloud en Ubuntu Linux:un tutorial completo para principiantes

Cómo instalar OwnCloud en Ubuntu Linux:un tutorial para novatos

Cómo instalar software en Ubuntu Linux:una guía completa para principiantes