Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Пройдите все испытания в игре кальмара второго сезона

Игра в кальмара 2: новые испытания

Аркады, Казуальные, Для мальчиков

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Linux + Терминал

С этим тегом используют

Windows IT Программирование Ubuntu IT юмор Компьютер Программист Деньги Сбербанк Qiwi Комиссия Аэропорт Юмор Все
37 постов сначала свежее
9
sergey.c
sergey.c
1 год назад
GNU/Linux

Rm -rf, @%$!⁠⁠

Товарищ! Помни! Написал rm -rf ?
Подумай перед тем, как нажать Enter

[моё] Linux Памятка Терминал Информационная безопасность Контрацепция Текст
38
sinloehal
2 года назад
Спроси Пикабу

Регулярное выражение⁠⁠

Как выбрать "АБВ" (вместе с пробелами если они есть) используя только одно регулярное выражение, запуская ее отдельно по строкам:

  1. "АБВ". Если будет строка "гггАБВ" или "АБВггг" или "гггАБВггг", то строка не должна выбираться.

  2. "ггг АБВ"

  3. "АБВ ггг"

  4. "ггг АБВ ггг"

В 1м только сама строка без пробелов и без любых других символов. Т.е. если вокруг АБВ есть другие символы кроме пробелов то ее выбирать не надо.

В 2м пробел спереди.

в 3м пробел сзади.

в 4м пробел с обеих сторон.

Regex Linux Shell Командная оболочка bash Терминал Программирование IT Хакеры Текст
21
38
silkas
silkas
2 года назад
GNU/Linux

Аквариум в терминале⁠⁠

Для запуска аквариума:
asciiquarium

Установить аквариум через snap:
sudo snap install asciiquarium

Аквариум в терминале Linux, Аквариум, Терминал
Linux Аквариум Терминал
10
168
Timeweb.Cloud
Timeweb.Cloud
2 года назад
TECHNO BROTHER
Серия Старое железо

Реверс-инжиниринг нестандартной ps/2 клавиатуры⁠⁠

Автор: dlinyj

Оригинальный материал

Дополнительные фото и видео в
источнике материала.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Терминал VT520 c клавиатурой LK46W-A2

После моего предыдущего поста с подключением советской клавиатуры к современному ПК, я как-то заразился оригинальными клавиатурами от DEC, и уж больно хотелось их испытать в деле. И на удивление, на досках удалось найти даже клавиатуру LK201, однако для меня показалась не очень уж интересной. А вот клавиатуру Wyse 85 со свичами Cherry MX нашёл намного более стильной и крутой. Однако смущал вопрос, как же её использовать с современным железом, удобно ли будет такое расположение клавиш?

И тут мне на глаза попадается объявление с ещё одной терминальной клавиатурой LK46W-A2 которую можно подключить к обычному компьютеру по стандартному интерфейсу PS/2, но с количеством клавиш и расположением, как у LK201 с небольшими дополнениями. После того как ознакомился с информацией, принял волевое решение купить кота в мешке и попробовать эту клавиатуру с обычным ПК, а также понять, что же делают все остальные «нестандартные клавиши». Этакий реверс-инжиниринг клавиатуры.

❯ Распаковка и отмывка

Итак, спустя пару недель мне пришла посылка с этой удивительной клавиатурой. Терминал найти невозможно, а вот клавиатуру – пожалуйста.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Клавиатура LK46W-A2 собственной персоной

Удивительно хорошая сохранность, белый пластик, что редкость для таких старых устройств. Немного потёртая из-за неправильного хранения, и отсутствует одна выдвижная ножка. Наклейка сзади гласит, что это за клавиатура.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Наклейка модели

С большим трудом удалось установить, что использовалась с моделями терминалов DEC VT520 (см КДПВ). Терминал не найти, а клаву – вот, пожалуйста.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Вид снизу

Предварительное включение показало, что клавиатура рабочая, но требует водных процедур. Поэтому принял решение её разобрать. Само устройство разбирается не так просто: требуется отогнуть большое количество пластиковых защёлок, благо на корпусе изделия есть специальные технологические отверстия для отвёртки. После нескольких пассов две половинки клавиатуры разделились.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Внутри стандартная плёночная клавиатура, с резиновыми «давилками».

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Что приятно удивило, что все длинные клавиши имеют металлические поддерживающие клипсы от перекоса. И все места трения смазаны густой смазкой.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Металлические клипсы

Плёнка клавиатуры прижимается к контроллеру специальной резинкой, вмонтированною в корпус клавиатуры.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Резинка для прижима контактов

Контроллер – обычная капля, 4 стандартных контакта для ps/2: Data, Clock, +5, GND.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно
Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Контроллер

После разборки, корпус клавиатуры ждала процедура купания. Не стал фотографировать, как я мою клавиатуру в ванной с мылом. Грязи вышло достаточно много.

Когда омовение прошло, прежде чем окончательно закрыть клавиатуру в корпусе, сделал тестирование работоспособности всех клавиш на резинке.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Тестирование перед закрытием

Не забываю смазать все движущие части, и окончательно собираю клавиатуру.

❯ Поиск потерянных клавиш

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Если взглянуть на фотографию, и сравнить две клавиатуры, то можно заметить, что, во-первых, клавиш намного больше, а во-вторых, непонятно что эти клавиши делают. Сравните, для примера, расположение клавиш вокруг кнопки «Z».

В чём прикол?

На самом деле вас немного разыгрываю, нижняя клавиатура имеет сербскую латинскую раскладку, у которой «Y» и «Z» поменяны местами:

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно


Если тут есть сербы, объясните мне, что за спецсимволы нанесены на клавиши и где они используются?

Главный вопрос, который меня волнует: как понять какая клавиша за что отвечает?

Изначально пытался найти хоть какую-то внятную документацию по теме, но в результате пришлось действовать методом научного тыка. Для этого пошёл на сайт en.key-test.ru и начал нажимать все клавиши, перебирая их последовательно. В результате получилась такая картинка:

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Вы видите нажатую левую кнопку мыши? Это тоже реакция на нажатие одной кнопки, и, как можно заметить, практически все клавиши присутствуют на этой клавиатуре. PrtScr у меня под линуксом просто вызывало создание скриншота и не перехватывалось этим сайтом, то есть и она тоже работает.

Для своего удобства на клавиатуре расположил бумажки, с подписями, где и чего находится. Вопросами обозначены те клавиши, на которые реакции никакой не было.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

На самом деле Right Ctrl

Итак, что же тут интересного:

  1. Клавиши F13, F14, Help, Do, F17, левый Compose Character – не определены. Назначение и функциональность пока неясны.

  2. Клавиша ESC расположена, где находится тильда "~" на обычной клавиатуре, а тильда рядом с клавишей «Z».

  3. Функциональные клавиши типа Home, End, PageUp, PageDown, Isert и т.д. находятся в других местах, но достаточно логично. Не стал их подписывать, потому что и так можно догадаться (например, Re-move = Del, Prev = PageUp). Часть функциональных клавиш расположена на клавишах F18-F20.

  4. Цифровой блок достаточно стандартен, кроме одной клавиши – это клавиша «минуса», она даёт странный код: "±". Да, символ «плюс-минус», который можно набрать прямо с клавиатуры, с одной клавиши (Linux Mint).

❯ Пробуем получить скан-код клавиши


Согласно стандарту, клавиатура при нажатии передаёт скан-код нажатия клавиши и скан-код «отжатия» клавиши.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно
Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Примеры скан-кодов стандартной клавиатуры

Как можно заметить, что добавление новых клавиш клавиатуры осуществляется с помощью код расширения 0xE0, и, можно предположить, что необычные клавиши этого устройства тоже будут идти через дополнительный код.

Для начала попробовал получить скан-коды неизвестных клавиш через утилиту showkey. Для этого нужно полноправно завладеть устройством ввода, без иксов. Поэтому переключаюсь на консоль комбинацией клавиш ctrl-alt-F1 и ввожу:

showkey -scancodes
И начинаю радостно жать на неизвестные клавиши, но удивительно: ничего не происходит! Те клавиши, которые мне удалось перехватить, дают корректный скан-код, а вот «тайные» — «молчат». То есть либо эти клавиши вообще не работают, либо фильтруются на уровне драйвера ядра.

Начал думаю, что же мне проще: подключить логический анализатор, либо найти другой способ получения скан-кодов нажатых клавиш? И тут я вспомнил, что у меня есть тестовая машина с DOS.

❯ Получаю скан-коды под ДОС

Синей пеленой экран заполнил чистый DOS
Мышь…
Стала вдруг квадратной, потеряла форму мышь…
Я разбил окно,
девяностопятое мастдайное окно,
И поставил DOS, и тогда увидел:
Это счастье, — вот оно.

Итак, для того чтобы получать скан-коды клавиш, нужно иметь какую-то программу, которая бы читала их из BIOS. Контроллер клавиатуры позволяет читать коды набранных клавиш из порта 0x60, осталось только это всё аккуратно написать. Для того чтобы понять, о чём я говорю, вы можете посмотреть пример на ассемблере.

Поскольку я человек ленивый, знаю, что всё давно придумано за нас, решил погуглить. У меня как раз в системе есть qbasic, значит, можно сходу найти пример приложения для него. И беглым гуглением, после нескольких тестов нашёл приложение, которое наиболее полно меня устраивает.
Не буду описывать весь код, главное, что оно читает скан-коды из порта, и в удобоваримом для меня виде выводит на экран. Вот, пример чтения кода из порта.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

После того как протестировал в Dosbox, пришла пора проверить на реальном железе.

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Тестовая машина с ДОС

Для своего удобства делал фотографии с именованием «неизвестной» клавиши и её кодом. Так получилось, что после запуска приложения, из буфера читается «мусорный код». Его я прикрывал бумажкой, важно, что ниже. Вот, например, нажатие левой клавиши «Compose Character».

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Как я и предполагал, все они идут через код расширения 0xE0. То есть, код клавиши получается: 0xE00F. Вторая пара байт 0xE08F – это код отпускания этой клавиши (на это действие тоже есть отдельный код).
Ну и по аналогии, остальные клавиши.

Из забавного, что в ДОС даже есть какая-то скромная попытка обрабатывать нажатия на клавиши, например, реагирует на них, запуская копирование (хотя это ошибка).

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Ложное срабатывание

В общем, ДОС хоть и стар, но оказывается местами даже очень полезен.

❯ А что там с документацией?


Явно найти документацию на клавиатуру модели LK46W-A2 мне не удалось. Но, когда я искал документацию на стандарт ps/2, то наткнулся на сайт Keyboard scancodes, в котором есть раздел, посвящённый клавиатурам LK411 и LK450. Нашёл это уже после прохождения всех моих мытарств, но они лишь подтвердили результаты моих экспериментов:

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно


То есть, фактически мне это удалось подтвердить эмпирическим путём, хотя у меня немного другая модель клавиатуры.

❯ Выводы

Реверс-инжиниринг нестандартной ps/2 клавиатуры Timeweb, IT, Программирование, Разработка, Длиннопост, Своими руками, Клавиатура, Реверс-инжиниринг, Терминал, Linux, СССР, Программист, Познавательно

Сравнение Wise 85 и LK46W-A2

Наверное, буду лукавить, если скажу, что текст набран именно на этой клавиатуре. Клавиши мне показались очень тугими. Но попробовал работать с ней, и достаточно быстро привык к такому вот нестандартному расположению клавиш, даже нахожу их весьма удобным и комфортным. Особенно стрелочная часть. Даже не испытывал проблем с набором текста и запуском программ. Поначалу ищешь ESC не там, где он есть. А вот расположение тильды я нахожу очень удобным.

Единственный вопрос, который остался за кадром: почему Linux фильтровал нажатия этих клавиш? Возможно ли поправить dts-файл так, чтобы ядро корректно отрабатывала нажатия этих клавиш? Добавить ими дополнительную, необходимую для комфортной работы функциональность? В общем, вопросов пока больше, чем ответов. Если опытные драйверисты есть, буду рад обсудить этот момент.

Из личного опыта такое расположение нахожу весьма удобным, и резюмируя, могу сказать что клоны клавиатур lk201, в том числе советский клон может быть использован для набора текста. Разве что потребуется программирование некоторых клавиш под свои нужды, и придётся отказаться от правого Alt и Ctrl.

Полезные ссылки:

  1. Keyboard tester online

  2. Keyboard scancodes (основная документация)

  3. The Scan Code values generated by the PC Keyboard

  4. Пример кода чтения скан-кодов клавиатуры, на бейсике.

  5. DEC KEYBOARDS


P.S. Если вам интересно моё творчество, вы можете следить за мной ещё в телеграмме.

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

Показать полностью 23
Timeweb IT Программирование Разработка Длиннопост Своими руками Клавиатура Реверс-инжиниринг Терминал Linux СССР Программист Познавательно
19
7
DELETED
2 года назад

Продолжение поста «Как ограничить зарядку аккумулятора (установить порог заряда) для ноутбуков ASUS на Linux»⁠⁠1

Нашёл более удобный способ:


скачиваем BAT файл https://github.com/tshakalekholoane/bat/releases/

копируем его в папку /usr/local/bin/

в этой папке открываем терминал

вводим команду chmod +x ./bat

далее команду bat --help


Нас интересуют три команды в самом низу:

bat threshold, sudo bat threshold 80, sudo bat persist

Продолжение поста «Как ограничить зарядку аккумулятора (установить порог заряда) для ноутбуков ASUS на Linux» Asus, Fedora, Linux, Аккумулятор, Терминал, Командная строка, IT, Программирование, Ubuntu, Ответ на пост

Последовательно их выполняем.

Вместо значения "threshold 80" можно установить "threshold 60", таким образом аккумулятор будет заряжаться до 60% .

Проверено на deb и rpm дистрибутивах (Kubuntu и Alt linux).


Ссылки на источники:

https://askubuntu.com/questions/1006778/set-battery-threshol...

https://github.com/tshakalekholoane/bat/releases/

Показать полностью 1
Asus Fedora Linux Аккумулятор Терминал Командная строка IT Программирование Ubuntu Ответ на пост
16
JUK1
JUK1
2 года назад

Установка Debian Linux в текстовом режиме⁠⁠

Linux Терминал Видео YouTube IT
1
10
DELETED
2 года назад

Как ограничить зарядку аккумулятора (установить порог заряда) для ноутбуков ASUS на Linux⁠⁠1

Гугл перевод


Новые ноутбуки ASUS поддерживают ограничение уровня заряда батареи, что помогает продлить срок службы батареи. В этой статье объясняется, как установить порог заряда батареи для ноутбуков ASUS в Linux.


Срок службы батареи зависит от возраста, высоких температур, количества циклов зарядки и времени полной зарядки. Порог заряда батареи сокращает время полной зарядки (100%) и, таким образом, улучшает работоспособность/срок службы батареи.


Ноутбуки ASUS поддерживают установку порога заряда, начиная с Linux 5.4 . Метод ядра WMI для установки порогового значения заряда не позволяет указать батарею, предполагая, что это первая батарея ( BAT0). Однако для некоторых более новых ноутбуков ASUS основная батарея называется не BAT0, а BATT(например, Zenbook UM431DA) и BAT1(например, ASUS TUF Gaming FX706II). [Править] А еще есть BATC.


Таким образом, хотя ноутбуки ASUS поддерживают ограничение зарядки аккумулятора, начиная с Linux 5.4, это возможно только для ноутбуков с BAT0. Для ноутбуков ASUS, использующих BATTв качестве основного имени батареи, вам потребуется ядро 5.7 , а для BAT1вас потребуется ядро 5.8 (в инструкциях ниже вы увидите, как именно проверить имя батареи). [Изменить] Для ноутбуков ASUS, использующих имя батареи BATC, вам необходимо использовать Linux 5.9 или новее.


Кроме того, не все ноутбуки ASUS поддерживают настройку порога заряда батареи, поэтому в зависимости от модели вашего ноутбука ASUS это может работать или не работать для вас; нет списка поддерживаемых устройств, которые я мог бы найти.


Важно отметить, что метод ядра WMI для установки порога заряда батареи для ноутбуков ASUS может установить только значение остановки ( charge_control_end_threshold) (он также не может установить порог запуска). Кроме того, при подключении переменного тока, если уровень заряда батареи выше порога остановки зарядки, она не будет разряжаться до порога остановки.


И еще одно замечание. С моим ASUS ZenBook 14 UX433FAC под управлением Ubuntu 20.04 с оболочкой GNOME, при ограничении зарядки аккумулятора, когда уровень заряда равен или превышает порог заряда, а затем подключить ноутбук к сети переменного тока, индикатор батареи на верхней панели меняется с оставшегося времени пока батарея не разрядится до времени, оставшегося до зарядки батареи. Это происходит, даже если аккумулятор не заряжается. Через некоторое время (так что это не происходит мгновенно, когда вы подключаете ноутбук к сети переменного тока), индикатор батареи меняется на «Не заряжается», как и должно быть.


Помимо ASUS, некоторые ноутбуки Lenovo и Huawei (последний получил поддержку Linux 5.5 ) также имеют поддержку ограничения зарядки аккумулятора. Но поскольку у меня есть только ноутбук ASUS и я не могу протестировать его на других устройствах, это руководство предназначено только для ASUS. Lenovo поддерживает это уже довольно давно, а TLP поддерживает встроенную настройку (только для IBM/Lenovo ThinkPad). В качестве примечания, вот графический интерфейс для TLP , чтобы легко настроить его, если вы еще не используете его.



1. Узнайте название аккумулятора вашего ноутбука ASUS.


Давайте начнем с выяснения названия батареи для вашего ноутбука ASUS. Это можно сделать с помощью следующей команды:


ls /sys/class/power_supply


Эта команда должна вывести что-то вроде этого:


AC0 BAT0


В этом примере (из моего ноутбука ASUS) имя батареи — BAT0, но, как я упоминал выше, для вас это также может быть BAT1 или BATT, это единственные имена батарей, поддерживаемые ядром для ноутбуков ASUS.


2. Создайте службу systemd для установки порога остановки заряда батареи при загрузке.


Перед созданием службы systemd проверьте, есть ли на вашем ноутбуке charge_control_end_threshold( /sys/class/power_supply/BAT*без нее это не сработает):


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


Если эта команда возвращает путь к charge_control_end_threshold, ваш ноутбук ASUS поддерживает ограничение зарядки аккумулятора. Если команда возвращает ошибку о том, что такого файла или каталога нет, значит, ваш ноутбук не поддерживает установку порога заряда.

Если на вашем ноутбуке ASUS есть этот файл, мы можем продолжить. Создайте файл, который мы будем называть battery-charge-threshold.service./etc/systemd/system


Вы можете открыть этот файл в текстовом редакторе консоли по умолчанию, используя:


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


или любой другой графический редактор, который вы хотите использовать (например, чтобы Gedit открывал этот файл как root :)gedit admin:///etc/systemd/system/battery-charge-threshold.service

В этот файл вам нужно будет вставить следующее:


[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


Здесь измените BATTERY_NAME на название батареи ( BAT0, BAT1 или BATT) и CHARGE_STOP_THRESHOLD на порог остановки заряда батареи, который вы хотите использовать (в диапазоне от 1 до 100). Обратите внимание, что один пользователь не мог установить порог заряда на любое значение, а только на 60, 80 и 100.

Из того, что я читал, для наилучшего срока службы батареи, когда ноутбук большую часть времени подключен к сети переменного тока, установите порог остановки заряда батареи на уровне 50 или 60. Если батарея используется довольно часто, установите порог остановки зарядки батареи на уровне 50 или 60. около 90.


3. Включите и запустите службу systemd battery-charge-threshold.


Теперь давайте включим и запустим только что созданный сервис systemd battery-charge-threshold:


sudo systemctl enable battery-charge-threshold.service

sudo systemctl start battery-charge-threshold.service


С помощью systemd 220 можно включить и запустить службу напрямую с помощью systemctl enable --now, но я предпочитаю использовать 2 команды на случай, если некоторые читатели используют более старую версию systemd.

Если вы хотите изменить пороговый уровень остановки заряда батареи, вам нужно отредактировать /etc/systemd/system/battery-charge-threshold.serviceфайл и изменить число в ExecStart строке (после echo) на новое значение, которое вы хотите использовать, а затем перезагрузить systemd (поскольку содержимое файла изменилось ) и перезапустите службу systemd с помощью следующих команд:


sudo systemctl daemon-reload

sudo systemctl restart battery-charge-threshold.service


4. Убедитесь, что порог остановки заряда аккумулятора работает.


Если ваш ноутбук ASUS поддерживает это, предел зарядки аккумулятора теперь должен быть установлен на значение, которое вы использовали на шаге 2.

Вы можете проверить это, зарядив свой ноутбук до порога, установленного в battery-charge-threshold.service, а затем использовать эту команду:


cat /sys/class/power_supply/BATTERY_NAME/status


Замените BATTERY_NAME на название батареи, как описано в шаге 1.


Если порог остановки заряда батареи работает, команда должна показать следующий вывод:

Not Charging


Если он говорит «Discharging», убедитесь, что ваш ноутбук ASUS действительно работает от сети переменного тока, а не от батареи. Однако, если он говорит «Charging», ну... тогда ваш ноутбук заряжается выше порога остановки зарядки, так что это не работает для вас, либо потому, что ваш ноутбук ASUS не поддерживает это (что странно, если у вас есть charge_control_end_threshold как упоминается в шаге 2), либо вы используете версию Linux, которая слишком старая для ограничения зарядки аккумулятора на вашем ноутбуке ASUS, ну или из-за человеческой ошибки .



Дополнительно: если вы не используете systemd, вы также можете сделать это с помощью cron, запустив

sudo crontab -e


и вставив следующую строку, хотя это не во всех случаях надежно из того, что я читал (я не уверен, почему):


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


Замените CHARGE_STOP_THRESHOLD на пороговое значение остановки заряда батареи, которое вы хотите использовать, и BATTERY_NAME на имя батареи, как показано на шаге 1.


Зачем использовать службу systemd или задание cron? Согласно пользователю u/esrevartb, от которого я адаптировал эти инструкции, « кажется, что правило udev не работает либо потому, что путь sysfs батареи еще не инициализирован, когда правило применяется, либо потому, что этот конкретный атрибут charge_control_end_threshold не может быть модифицировал таким образом ».


Добавлено. Чтобы легко установить порог заряда для ноутбуков ASUS (автоматическая настройка службы systemd и возможность изменить порог заряда с помощью команды), а также проверить текущий порог заряда, см . bat .



В TLP 1.4.0 также добавлена поддержка ограничения зарядки аккумулятора на ноутбуках ASUS.


Оригинал статьи:

https://www-linuxuprising-com.translate.goog/2021/02/how-to-...



У меня на ASUS tuf A15  в ОС Fedora 36 workstation команда:


cat /sys/class/power_supply/BATTERY_NAME/status


выдаёт


Unknown


однако, процесс заряда не превышает установленных мною 60%

Как ограничить зарядку аккумулятора (установить порог заряда) для ноутбуков ASUS на Linux Asus, Fedora, Linux, Аккумулятор, Терминал, Командная строка, IT, Программирование, Длиннопост
Показать полностью 1
Asus Fedora Linux Аккумулятор Терминал Командная строка IT Программирование Длиннопост
8
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
1092
ypuH0TEPAnEBT
ypuH0TEPAnEBT
2 года назад
IT-юмор

Когда работаешь в терминале⁠⁠

Когда работаешь в терминале
Терминал Linux Командная оболочка bash IT юмор Кот Мемы Юмор Картинка с текстом
28
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии