GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara membatasi pengisian daya baterai (mengatur ambang batas pengisian daya) untuk laptop ASUS di Linux

Laptop ASUS yang lebih baru mendukung batasan level baterai, yang memperpanjang masa pakai baterai. Artikel ini menjelaskan cara menyetel ambang batas pengisian daya baterai untuk laptop ASUS di Linux.

Masa pakai baterai dipengaruhi oleh usia, suhu tinggi, jumlah siklus pengisian daya, dan waktu yang diperlukan untuk mengisi penuh. Ambang batas pengisian daya baterai mengurangi durasi pengisian penuh (100%) dan dengan demikian meningkatkan kondisi / masa pakai baterai.

Laptop ASUS mendukung pengaturan ambang biaya mulai dengan Linux 5.4 . Metode kernel WMI untuk menyetel ambang pengisian daya tidak menyediakan cara untuk menentukan baterai, dengan asumsi itu adalah baterai pertama (BAT0 ). Namun, beberapa laptop ASUS yang lebih baru tidak akan menggunakan baterai utama BAT0 , tapi BATT (misalnya Zenbook UM431DA) dan BAT1 (misalnya ASUS TUF Gaming FX706II). [Sunting] Dan ada juga BATC.

Jadi sementara laptop ASUS dari Linux 5.4 dan seterusnya mendukung pembatasan proses pengisian baterai, ini hanya untuk laptop dengan BAT0 . Untuk laptop ASUS dengan BATT Sebagai nama baterai utama, Anda memerlukan Kernel 5.7 sedangkan untuk BAT1 anda akan membutuhkan kernel 5.8 ini (lihat petunjuk di bawah untuk mengetahui cara memeriksa nama baterai dengan tepat). [Edit] Untuk laptop ASUS yang menggunakan nama baterai BATC, Anda harus menggunakan Linux 5.9 atau yang lebih baru.

Demikian juga, tidak semua laptop ASUS mendukung pengaturan ambang batas pengisian baterai, jadi ini mungkin atau mungkin tidak bekerja untuk Anda tergantung pada model laptop ASUS Anda; Tidak ada daftar perangkat yang didukung yang dapat saya temukan.

Penting untuk disebutkan Metode WMI kernel untuk mengatur ambang pengisian baterai untuk notebook ASUS hanya dapat menggunakan nilai stop (charge_control_end_threshold ) (itu juga tidak dapat mengatur ambang batas awal). Jika tingkat pengisian daya baterai lebih tinggi dari ambang batas pengisian daya, baterai tidak akan habis hingga ambang batas berhenti saat sumber listrik AC tersambung.

Dan satu catatan lagi. Pada ASUS ZenBook 14 UX433FAC saya dengan Ubuntu 20.04 dengan GNOME Shell, indikator baterai di panel atas berubah dari waktu yang tersisa jika level baterai dibatasi sementara level baterai sama atau lebih besar dari ambang pengisian daya dan kemudian laptop terhubung ke sumber listrik sampai baterai habis hingga sisa waktu yang tersisa untuk mengisi daya baterai. Ini terjadi meskipun baterai tidak sedang diisi. Setelah beberapa saat (tidak langsung saat Anda mencolokkan laptop ke listrik), indikator baterai berubah menjadi “Tidak Diisi” sebagaimana dimaksud.

Selain ASUS, beberapa Laptop Lenovo dan Huawei (yang terakhir menerima dukungan dengan Linux 5.5) juga mendukung pembatasan pengisian daya baterai. Namun, karena saya hanya memiliki satu laptop ASUS dan tidak dapat mengujinya di perangkat lain, petunjuk ini hanya berlaku untuk ASUS. Lenovo telah memiliki dukungan untuk ini selama beberapa waktu dan TLP telah memberikan dukungan untuk pengaturan terintegrasi ini (hanya untuk IBM / Lenovo ThinkPads). Sebagai catatan tambahan, berikut adalah GUI untuk TLP agar mudah dikonfigurasi jika Anda belum menggunakannya.

Anda Mungkin Juga Menyukai Ini:auto-cpufreq adalah kecepatan CPU dan pengoptimal kinerja untuk Linux

Cara menetapkan ambang batas untuk menghentikan pengisian daya baterai untuk laptop ASUS di Linux

1. Cari tahu nama baterai laptop ASUS Anda.

Mari kita mulai dengan mencari tahu nama baterai untuk laptop ASUS Anda. Ini dapat dilakukan dengan perintah berikut:

ls /sys/class/power_supply

Perintah ini akan mencetak sesuatu seperti ini:

AC0  BAT0

Dalam contoh ini (dari notebook ASUS saya) nama baterainya adalah BAT0 , tetapi seperti yang disebutkan di atas, bisa juga untuk Anda BAT1 atau BATT , ini adalah satu-satunya nama baterai yang didukung oleh kernel untuk laptop ASUS.

2. Buat layanan systemd untuk menyetel ambang batas penghentian pengisian daya baterai saat boot.

Sebelum membuat layanan systemd, periksa apakah laptop Anda benar-benar memiliki charge_control_end_threshold di /sys/class/power_supply/BAT* (tidak bekerja tanpa):

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

Ketika perintah ini mengembalikan path ke charge_control_end_threshold , maka notebook ASUS Anda mendukung pembatasan daya baterai. Jika perintah mengembalikan kesalahan yang menyatakan bahwa tidak ada file atau direktori tersebut, laptop Anda tidak mendukung pengaturan ambang pengisian daya.

Jika laptop ASUS Anda memiliki file ini, kami dapat melanjutkan. Buat file yang akan kita panggil battery-charge-threshold.service di /etc/systemd/system .

Anda dapat membuka file ini dengan editor teks konsol standar Anda dengan:

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

Atau gunakan Gedit atau editor grafis apa pun yang ingin Anda gunakan (mis. agar Gedit membuka file ini sebagai root:gedit admin:///etc/systemd/system/battery-charge-threshold.service )

Dalam file ini Anda harus menyertakan yang berikut:

[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

Di sini, ubah BATTERY_NAME dengan nama baterai (BAT0 , BAT1 atau BATT ), dan CHARGE_STOP_THRESHOLD dengan ambang batas penghentian biaya yang ingin Anda gunakan (antara 1 dan 100). Perhatikan bahwa saya membaca bahwa pengguna tidak dapat menyetel ambang batas tagihan ke nilai apa pun, hanya ke 60, 80, dan 100.

Dari apa yang saya baca, untuk masa pakai baterai terbaik saat laptop dicolokkan hampir sepanjang waktu, atur ambang batas pengisian baterai berhenti menjadi sekitar 50 atau 60. Jika baterai digunakan sedikit sering, setel ambang batas penghentian baterai ke sekitar 90.

3. Aktifkan dan mulai layanan systemd untuk ambang pengisian daya baterai.

Sekarang mari kita aktifkan dan mulai layanan sistem Ambang Pengisian Daya Baterai yang baru dibuat:

sudo systemctl enable battery-charge-threshold.service

sudo systemctl start battery-charge-threshold.service

Dengan systemd 220 dimungkinkan untuk mengarahkan layanan melalui. untuk mengaktifkan dan memulai systemctl enable --now tapi saya lebih suka menggunakan 2 perintah jika beberapa pembaca menggunakan versi systemd yang lebih lama.

Jika Anda ingin mengubah ambang batas untuk menghentikan pengisian daya baterai , Anda harus mengedit /etc/systemd/system/battery-charge-threshold.service . ini File dan ubah nomor dari ExecStart Baris (setelah echo ) ke nilai baru yang ingin Anda gunakan, lalu muat ulang systemd (karena konten file telah berubah) dan mulai ulang layanan systemd dengan perintah berikut:

sudo systemctl daemon-reload

sudo systemctl restart battery-charge-threshold.service

4. Pastikan ambang batas penghentian baterai berfungsi.

Jika laptop ASUS Anda mendukung ini, batas pengisian baterai sekarang harus disetel ke nilai yang Anda gunakan pada langkah 2.

Anda dapat memeriksanya dengan mengisi daya laptop ke ambang batas yang ditetapkan di battery-charge-threshold.service , lalu gunakan perintah ini:

cat /sys/class/power_supply/BATTERY_NAME/status

Pengganti BATTERY_NAME dengan nama baterai, seperti yang dijelaskan pada langkah 1.

Jika ambang batas pengisian baterai berhenti berfungsi, perintah akan menampilkan output berikut:

Not Charging

Jika tertulis “Discharging”, pastikan laptop ASUS Anda benar-benar berjalan dengan daya AC dan bukan dengan baterai. Namun, jika tertulis “Charging”, yah … maka laptop Anda sedang mengisi daya melewati ambang batas pengisian daya sehingga ini tidak akan berhasil untuk Anda, juga karena laptop ASUS Anda tidak mendukungnya (yang aneh jika Anda melakukannya) charge_control_end_threshold Seperti yang disebutkan pada langkah 2), Anda menggunakan versi Linux yang terlalu lama untuk membatasi pengisian daya baterai pada notebook ASUS Anda, atau karena kesalahan manusia ?️.

Ekstra:Jika Anda tidak menggunakan systemd, Anda juga dapat melakukannya dengan cron dengan menjalankan sudo crontab -e dan kemudian rekatkan baris berikut (ini adalah satu baris, klik baris tiga kali untuk memilih seluruh baris), meskipun dari apa yang saya baca ini tidak dapat diandalkan dalam semua kasus (saya tidak yakin mengapa):

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

Pengganti CHARGE_STOP_THRESHOLD dengan ambang batas penghentian biaya yang ingin Anda gunakan dan BATTERY_NAME dengan nama baterai seperti yang ditunjukkan pada langkah 1.

Mengapa menggunakan layanan systemd atau pekerjaan cron? Menurut u / esrevartb, dari siapa saya mengadaptasi panduan ini, “tampaknya aturan udev tidak berfungsi, baik karena jalur batteryysfs belum diinisialisasi saat aturan diterapkan, atau karena atribut charge_control_end_threshold khusus ini tidak dapat berubah seperti ini “.

[[Sunting] Untuk dengan mudah mengatur ambang pengisian daya untuk laptop ASUS (pengaturan otomatis layanan systemd dan kemampuan untuk mengubah ambang pengisian dengan perintah), serta memeriksa ambang pengisian saat ini, lihat bat.

Terkait baterai laptop:Bwall adalah wallpaper baterai animasi untuk Linux (skrip bash)

di atas perangkat keras r / Linux (Terima kasih / esrevartb)


Ubuntu
  1. Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

  2. Bagaimana Membatasi Penggunaan Sumber Daya Untuk Proses yang Diberikan?

  3. Cukup muat ambang pengisian daya untuk laptop ASUS di Linux dengan bat

  1. Cara menampilkan/memeriksa port terbuka di Ubuntu Linux

  2. Cara membatasi penggunaan CPU dengan CPULimit di Ubuntu Linux

  3. Cara Meningkatkan Kinerja Baterai Laptop Di Linux

  1. Cara Menginstal Transfer File Android untuk Linux di Ubuntu

  2. Cara Menentukan Batas Waktu untuk Sesi Sudo

  3. Cara Menentukan Batas Waktu untuk Sesi Sudo di Ubuntu 20.04 LTS