Вопрос или проблема
Некоторое время назад я создал простой скрипт, который устанавливает лимит заряда батареи на моем ноутбуке в соответствии с документацией.
Я даже изменил crontab, чтобы он оставался между перезагрузками.
Однако, как мне кажется, спустя некоторое короткое время (возможно, день или два) я заметил, что он перестал работать. Когда я пытаюсь изменить /sys/class/power_supply/CMB0/charge_control_end_threshold
, он просто возвращается к 0 (не имеет значения, запускаю ли я sudoedit или любой другой метод).
Ранее я замечал такое поведение с различными функциями, описанными на странице документации, но я просто предполагал, что они не поддерживаются в определенном смысле.
Буду признателен за любые комментарии или мнения.
$ echo 80 | sudo tee /sys/class/power_supply/CMB0/charge_control_end_threshold
[sudo] пароль для kornel:
80
kornel@kornel-LG:~$ cat /sys/class/power_supply/CMB0/charge_control_end_threshold
0
(в качестве примечания, у меня ноутбук LG Gram)
Это известная ошибка ядра. Вам нужна как минимум версия ядра 6.10.7. Смотрите: https://github.com/linrunner/TLP/issues/747
Ответ или решение
Проблема, с которой вы столкнулись, связана с известной ошибкой в ядре Linux, касающейся ограничения заряда батареи на некоторых моделях, таких как ваш LG Gram. Как вы уже заметили, изменения в файле /sys/class/power_supply/CMB0/charge_control_end_threshold
не сохраняются и возвращаются к значению 0, несмотря на ваши попытки изменить его с помощью команды echo
.
Эта проблема была зафиксирована в версии ядра ниже 6.10.7. Поэтому самым эффективным решением будет обновление вашего ядра до более новой версии, где эта ошибка исправлена. Вот шаги, которые вы можете предпринять для обновления ядра:
-
Проверьте текущую версию ядра:
Вы можете сделать это, выполнив команду:uname -r
-
Установите новое ядро:
Вы можете использоватьUbuntu Mainline Kernel Installer
или другую утилиту для установки последней версии ядра. Если вы предпочитаете терминал, вы можете установить новое ядро следующим образом:sudo apt update sudo apt install linux-generic-hwe-22.04
-
Перезагрузите систему:
После установки нового ядра перезагрузите компьютер:sudo reboot
-
Проверьте версию ядра снова:
После перезагрузки подтвердите, что версия ядра обновлена:uname -r
-
Попробуйте снова установить лимит заряда:
После обновления ядра попробуйте снова изменить значение в файле:echo 80 | sudo tee /sys/class/power_supply/CMB0/charge_control_end_threshold
После выполнения этих шагов вы должны быть в состоянии установить лимит заряда батареи на своем ноутбуке без каких-либо дальнейших проблем. Если вы столкнетесь с новыми ошибками или проблемами, рекомендуем следить за обновлениями от разработчиков ядра или рассмотреть возможность использования другой версии системы, если проблема не решится.