Предыдущая часть руководства по настройке Xfce тут.
Что характеризует ноутбук? Правильно, мобильность. А мобильность достигается за счёт того, что ноутбук таскает с собой автономный источник питания, то бишь батарею. Естественное желание, чтобы ноутбук выполнял свои функции как можно дольше. Соответственно, нужно настроить Debian таким образом, чтобы деградация батареи на ноутбуке происходила как можно медленнее, а это зависит от характера использования ноутбука - от батареи или от розетки.
Итого, у нас есть две крайности. Первая - это выжать из автономности ноутбука как можно больше. Вторая - ноутбук нужен лишь для того, чтобы заменить стационарный компьютер и поэтому он почти всегда подключён к розетке. У любого нормального ноутбука (попадаются и ненормальные, как у меня, например, с недоделанным BIOS, где у ACPI нет нижнего порога) есть два параметра, которые управляют зарядкой - нижний порог заряда, при достижении которого батарея начинает заряжаться и верхний порог заряда, при достижении которого батарея прекращает заряжаться.
Считается, что щадящим режимом для батареи считается режим 40-60. Т.е. при достижении 40% заряда батареи, начинается её зарядка. А при достижении 60% батареи зарядка прекращается. Совершенно очевидно, что автономность при этом околонулевая и поэтому режим лучше всего подходит для ноутбуков, почти постоянно подключённых к розетке.
Соответственно, когда нужна максимальная автономность, следует использовать режим 20-80 или даже 20-95. В этом случае батарея деградирует быстрее, но автономность работы будет сильно выше. Батарея деградирует с космической скоростью при заряде ниже 20%, поэтому лучше не доводить до такой ситуации.
Итого, для постоянного подключения к розетке используем режим 40-60, а для максимальной автономной работы режим 60-95 или даже 75-95. Нижний порог 60 во втором случае для того, чтобы батарея начала заряжаться при первом же подключении к розетке, т.к. при работе от батареи, порог в 20% заряда можно отследить лишь глазами (ну и уведомлениями).
Установка tlp
Устанавливаем утилиту, которая показывает потребление батареи:textsudo aptitude install powertopУстанавливаем утилиту управления энергопотреблением:
textsudo aptitude install tlpПосмотрим сколько пожирает энергии ноутбук, работающий от батареи. Для этого вводим команду:
textsudo powertopУ меня ноутбук уже настроен, так что потребление относительно(того что было раньше) небольшое:
Для начала проверим саму батарею:textsudo tlp-stat -b
На что нужно обратить внимание на этом скрине.
Во-первых, батарея называется BAT1
Во-вторых, её расчётная остаточная ёмкость - 97,4% от номинала.
В-третьих, то, о чём я говорил - конкретно у меня контроллер батареи поддерживает лишь верхний порог заряда (вывод /sys/class/power_supply/BAT1/charge_control_end_threshold ), нижнего нет. Я очень сильно надеюсь на то, что производитель в будущих версиях BIOS исправит свой косяк, но надежды мало.
Нижний порог заряда вывелся бы как /sys/class/power_supply/BAT1/charge_control_start_threshold
Ну что ж, настроим нашу батарею. Т.е. мой ноутбук очень тяжёлый и не предполагает работы от батареи, то я его настраиваю на стратегию 40-60.
Просмотр всех параметров tlp. Параметры по умолчанию находятся в файле /usr/share/tlp/defaults.conf, пользовательские(переопределённые) параметры находятся в файле /etc/tlp.conf. Команда выводит их все с учётом переопределённых:textsudo tlp-stat -cКусок вывода:
/etc/tlp.conf L0038: TLP_ENABLE="1"
defaults.conf L0007: TLP_WARN_LEVEL="3"
/etc/tlp.conf L0038 указывает на то, что параметр был переопределён пользователем (в файле /etc/tlp.conf)
defaults.conf указывает, что параметр взят из файла с настройками по умолчанию /usr/share/tlp/defaults.conf.
Если настройки по умолчанию устраивают, в принципе можно их оставить, но явное всегда лучше неявного, поэтому я переопределяю настройки по умолчанию. Если в дальнейшем дефолтные настройки поменяются (после обновления пакета), то мои настройки останутся нетронутыми.
Для внесения настроек нужно отредактировать файл /etc/tlp.conf. Строки закомментированы символом #:textsudo nano /etc/tlp.confПервый параметр, который мы видим
TLP_ENABLE=1
По умолчанию он равен 1 и означает, что tlp управляет энергосбережением.Настройка батареи
Мотаем вниз до значения:
RESTORE_THRESHOLDS_ON_BAT=1
Восстанавливает значения для параметров START_CHARGE_THRESH_BAT1 и STOP_CHARGE_THRESH_BAT1 после событий, которые сбрасывают пороги на значения по умолчанию (например, команда tlp recalibrate)
Устанавливаем значения для начала зарядки батареи и конца, в процентах:
START_CHARGE_THRESH_BAT1=40
STOP_CHARGE_THRESH_BAT1=60
Перед длительным НЕиспользованием ноутбука желательно использовать команду:textsudo tlp setcharge 40 50 BAT1а потом зарядить ноутбук до 50%. После перезагрузки пороговые значения восстановятся до заданных (40-60 в моём случае).
Включаем экономию в режиме подключения к сети (устройства могут отключаться):
RUNTIME_PM_ON_AC="auto"
Включаем экономию в режиме работы от батареи:
RUNTIME_PM_ON_BAT="auto"
Включение управления электропитанием дисткреной видеокарты для гибридной графики
При работе от встроенной видеокарты, дискретная видеокарта всё равно потребляет энергию, тем самым разряжая батарею. Необходимо включить управление электропитанием для дискретной видеокарты. Для этого сначала нужно выяснить номер устройства на шине PCI, а затем внести его в список устройств, для которых tlp будет принудительно включать управление питанием (переводить в режим auto).
Вывод всех устройств на шине PCI:textlspciПримерный вывод:
text00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Root Complex 00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Phoenix IOMMU 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge 00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix GPP Bridge 00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix GPP Bridge 00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix GPP Bridge 00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge 00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix GPP Bridge 00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix GPP Bridge 00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge 00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 19h USB4/Thunderbolt PCIe tunnel 00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge 00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Host Bridge 00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Internal GPP Bridge to Bus [C:A] 00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Internal GPP Bridge to Bus [C:A] 00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Internal GPP Bridge to Bus [C:A] 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 71) 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51) 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 0 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 1 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 2 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 3 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 4 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 5 00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 6 00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Phoenix Data Fabric; Function 7 01:00.0 VGA compatible controller: NVIDIA Corporation GB206M [GeForce RTX 5060 Max-Q / Mobile] (rev a1) 01:00.1 Audio device: NVIDIA Corporation Device 22eb (rev a1) 02:00.0 Non-Volatile memory controller: Sandisk Corp WD PC SN5000S M.2 2280 NVMe SSD (DRAM-less) 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15) 04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8852CE PCIe 802.11ax Wireless Network Controller (rev 01) 05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9C1a (DRAM-less) 66:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 (rev b6) 66:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Radeon High Definition Audio Controller [Rembrandt/Strix] 66:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Phoenix CCP/PSP 3.0 Device 66:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15b9 66:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15ba 66:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Audio Coprocessor (rev 63) 66:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h/1ah HD Audio Controller 67:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Function 67:00.1 Signal processing controller: Advanced Micro Devices, Inc. [AMD] AMD IPU Device 68:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Phoenix Dummy Function 68:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15c0 68:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15c1 68:00.5 USB controller: Advanced Micro Devices, Inc. [AMD] Pink Sardine USB4/Thunderbolt NHI controller #1Из вывода видно, что искомая видеокарта это
01:00.0 VGA compatible controller: NVIDIA Corporation GB206M [GeForce RTX 5060 Max-Q / Mobile] (rev a1)
Встроенная видеокарта:
66:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 (rev b6)
Для того, чтобы позволить tlp управлять электропитанием дискретной видеокарты(отключать, когда на неё нет нагрузки), нужно добавить её номер в параметр RUNTIME_PM_ENABLE (несколько устройств добавляются в кавычках через пробел)textRUNTIME_PM_ENABLE="01:00.0"Есть обратный параметр RUNTIME_PM_DISABLE, который отключает управление электропитанием для критичных устройств (указываются PCI-адреса).
Для драйверов существует отдельный параметр RUNTIME_PM_DRIVER_DENYLIST. По умолчанию в него уже внесены mei_me, nouveau, radeon, xhci_hcd.
xhci_hcd – это драйвер USB 3.0-контроллеров. Все USB-устройства (мыши, клавиатуры, веб-камеры, внешние диски) подключены к контроллеру, который работает через этот драйвер. Таким образом, TLP никогда не будет пытаться перевести в спящий режим сам USB-контроллер, и мышь и клавиатура всегда будут работать.
nouveau и radeon – это открытые драйверы для видеокарт NVIDIA и AMD. Они включены в чёрный список, чтобы предотвратить случайное отключение дискретной графики.
mei_me – это драйвер для Intel Management Engine (системная служба). Его отключение может привести к нестабильности.
AMDGPU_ABM_LEVEL_ON_AC=0 - Адаптивная подсветка экрана (ABM) — функция, которая автоматически затемняет тёмные участки изображения, чтобы сэкономить энергию. 0 означает отключено.
AMDGPU_ABM_LEVEL_ON_BAT=0 - То же самое, но при работе от батареи
Настройка процессора
CPU_SCALING_GOVERNOR_ON_AC=powersave - Политика управления частотой процессора при работе от сети. powersave предпочитает минимальную частоту, но при нагрузке повышает её. Это стандартный энергосберегающий режим, рекомендуемый для большинства систем.
CPU_SCALING_GOVERNOR_ON_BAT=powersave - то же самое, что и CPU_SCALING_GOVERNOR_ON_AC, только от батареи.
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance - Управляет энергоэффективностью процессора Intel/AMD (HWP — Hardware‑controlled Performance States). balance_performance даёт хорошую производительность с умеренным энергопотреблением. Другие варианты: performance, balance_power, power.
CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power - При работе от батареи смещает баланс в сторону экономии энергии.
CPU_MIN_PERF_ON_AC=0 - Минимально допустимая производительность (0–100) при питании от сети. 0 означает, что система может снижать частоту до самого низкого возможного уровня.
CPU_MAX_PERF_ON_AC=100 - Максимальная производительность (0–100) при питании от сети. 100 — разрешено использовать полную частоту.
CPU_MIN_PERF_ON_BAT=0 - Минимальная производительность при работе от батареи.
CPU_MAX_PERF_ON_BAT=50 - Максимальная производительность от батареи ограничена 50% — это ограничивает максимальную частоту процессора, продлевая время работы.
CPU_BOOST_ON_AC=1 - Разрешает технологию Turbo Boost (автоматическое повышение частоты выше номинала) при питании от сети. 1 = включено.
CPU_BOOST_ON_BAT=0 - Отключает Turbo Boost при работе от батареи — экономит энергию и уменьшает нагрев.
Настройка дисков
DISK_IDLE_SECS_ON_AC=0 - Время бездействия диска (в секундах), после которого включается «laptop mode» — режим, когда данные копятся в памяти и реже пишутся на диск. 0 означает, что этот режим отключён — диск работает в обычном режиме.
DISK_IDLE_SECS_ON_BAT=2 - Включает «laptop mode» через 2 секунды простоя диска (экономия энергии).
MAX_LOST_WORK_SECS_ON_AC=15 - Это время (в секундах), в течение которого система может откладывать запись данных на диск.
MAX_LOST_WORK_SECS_ON_BAT=60 - При работе от батареи система может ждать до 60 секунд, прежде чем записать данные на диск. Это снижает количество обращений к диску и экономит заряд. При этом данные временно хранятся в памяти, что безопасно — при выключении они всё равно будут записаны.
Настройка общих параметров
NMI_WATCHDOG=0 - отключает механизм мониторинга (NMI watchdog) для обнаружения зависаний ядра. 1 - для отладки ядра.
TLP_DEFAULT_MODE=AC - Если TLP не может сам определить, подключён ли ноутбук к розетке (случается редко), он будет считать, что он работает от сети (AC), и применит настройки для этого режима.
USB_AUTOSUSPEND=1 - Включает автоматическое отключение USB-устройств (мышь, клавиатура, флешка), когда они не используются. Это экономит энергию. Но если мышь будет засыпать и не сразу реагировать на движение, то нужно будет отключить.
После внесения настроек, необходимо перезапустить службу tlp для их применения:
textsudo systemctl restart tlpПосмотреть итоговый список устройств с их статусом управления через tlp:
textsudo tlp-stat -eнапротив устройств, которые tlp не трогает, будет стоять on, а не auto
На всякий случай все мои настройки для tlp для гибридной графики, где встроенная видеокарта это АМД(драйвер amdgpu), а дискретная это NVidiaвсе мои настройки tlp
TLP_ENABLE=1
TLP_DEFAULT_MODE=AC
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave
CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power
CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=50
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0
NMI_WATCHDOG=1
AMDGPU_ABM_LEVEL_ON_AC=0
AMDGPU_ABM_LEVEL_ON_BAT=0
RUNTIME_PM_ON_AC=auto
RUNTIME_PM_ON_BAT=auto
RUNTIME_PM_DRIVER_DENYLIST="mei_me amdgpu"
RUNTIME_PM_ENABLE="01:00.0"
RUNTIME_PM_DISABLE="04:00.0 05:00.0"
USB_AUTOSUSPEND=1
START_CHARGE_THRESH_BAT1=40
STOP_CHARGE_THRESH_BAT1=60
RESTORE_THRESHOLDS_ON_BAT=1
Отключение тачпада при подключенной мышке
К сожалению, данный функционал в Крысе не реализован, поэтому придётся писать скрипт, который потом нужно подключать в автозагрузку. Сам скрипт несложный, но не учитывает всех возможных конфигураций (точнее, наименований мыши). Я исхожу из того, что подключается оптическая мышь, у которой в наименовании обязательно будет указано Optical Mouse
Возможен вариант, когда у мыши не будет в названии этих слов. Точное название мыши можно получить из команды ниже.
Теперь нужно узнать название тачпада. Делается это с помощью команды просмотра всего, что есть устройств ввода:textxinput list
В моём случае это устройство под названием ASCP1201:00 093A:3017 Touchpad
Создаём файл с названием, например, touchpad-toggle.sh куда вставляем следующие строки:text#!/bin/bash#Имена устройств (точные строки из 'xinput list') TOUCHPAD_NAME="ASCP1201:00 093A:3017 Touchpad"
while true; do
#Проверяем, активно ли устройство мыши (id=10) if xinput list --name-only | grep -qi "Optical Mouse"; then
#Мышь найдена - отключаем тачпад xinput disable "$TOUCHPAD_NAME" else
#Мышь не найдена - включаем тачпад xinput enable "$TOUCHPAD_NAME" fi sleep 5 # Пауза 5 секунд перед следующей проверкой done
где значение для TOUCHPAD_NAME совпадает с именем тачпада, которое до этого вывела команда xinput list
Делаем скрипт исполняемым:textchmod +x ~/touchpad-toggle.shТеперь нам нужно добавить скрипт в автозагрузку.
Меню->Диспетчер настроек->Сеансы и запуск->Автозапуск приложений. Нажимаем кнопку Добавить, вставляем Имя, Описание (любые) и команду
/home/lionet/touchpad-toggle.sh где lionet это ник(login) пользователя
Запуск: при входе в систему.
Можно сразу же запустить скрипт, чтобы проверить его работоспособность:textbash ~/touchpad-toggle.sh &запуск приложений через дискретную видеокарту
В Линукс нет возможности автоматического переключения между встроенной видеокартой и дискретной в зависимости от нагрузки. Поэтому приложения, которые требуют дискретной видеокарты, необходимо запускать на ней явно.запуск на Nvidia
Свободный драйвер nouveau не обеспечивает должной производительности, поэтому приведённая ниже информация касается исключительно проприетарных драйверов Nvidia.
Для запуска приложений напрямую через терминал используется следующий шаблон:text__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <путь_до_приложения>Например, для демонстрации работы дискретной видеокарты можно использовать команду:
text__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgearsДля мониторинга процессов, запущенных через дискретную видеокарту используется команда:
textnvidia-smiПри запущенной команде выше для демонстрации работы дискретной выдеокарты nvidia-smi выведет в Processes glxgears
Если запуск приложения идёт через ярлыки (.desktop файлы), то потребуется добавить env
Например, для DaVinci команда запуска будет выглядеть так:textenv __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia /opt/resolve/bin/resolveнастройки игр для Steam
Система запуска игр в Steam не наследует процессы от лаунчера, поэтому его значок запуска модифицировать не нужно (самому лаунчеру дискретная видеокарта не требуется).
Для запуска игр на дискретной видеокарте через лаунчер Steam нужно для каждой игры зайти в её свойства, перейти на вкладку Общие и модифицировать параметры запуска следующим образомtext__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
К сожалению, лаунчер Steam пока не поддерживает глобальную настройку для всех игр.
Для проверки запуска игры на дискретной видеокарте использовать команду, описанную выше nvidia-smi
настройка DaVinci
настройка Blender
textenv __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia blender %fзапуск на AMD
К сожалению, у меня нет гибридной графики с AMD. Но согласно технической информации, к запуску приложений достаточно добавить установку переменной DRI_PRIME=1
Например, для запуска Blender использовать команду:textDRI_PRIME=1 blenderМониторинг запущенных процессов осуществляется с помощью команд:
...для старых видеокарт:textradeontop...для новых видеокарт, у которых есть поддержка технологии ROCm:
textrocm-smi
утилиты для ноутбуков
Asus
MUX
У некоторых моделей Asus существует аппаратное переключение между гибридной графикой (когда обработка ведётся на дискретной видеокарте, а вывод видео на экран осуществляет встроенная видеокарта) и дискретной видеокартой (когда вывод на экран, а также обработка данных, осуществляется только дискретной видеокартой). Это позволяет убрать накладные расходы и повысить быстродействие графической подсистемы примерно на 10-15%
Для этого у Asus есть утилита supergfxctl.
Установим инструменты для сборки утилиты:
sudo aptitude install curl git build-essential Установим исходники из которых будем собирать утилиту:
git clone https://gitlab.com/asus-linux/supergfxctl.gitПерейдём в созданный каталог:
cd supergfxctlЗапустим сборку утилиты:
make...и её установку в систему:
sudo make installПосле установки в систему запустим сервис, который будет выполнять вывод информации, а также переключение режимов:
sudo systemctl enable --now supergfxd.serviceВыводим справку по командам утилиты:
supergfxctlУзнаём текущий режим:
supergfxctl -gПосмотреть список доступных режимов:
supergfxctl -s[Integrated, Hybrid, AsusMuxDgpu]
Переключить в режим дискретной графики:
supergfxctl -m AsusMuxDgpuПереключить в гибрид:
supergfxctl -m HybridПри переключении в/из гибридного режима перезагрузка не требуется. Достаточно завершить сеанс и зайти снова для применения изменений.
включение подсветки клавиатуры
Мерзкий Asus отдаёт предпочтение Винде, поэтому вместо универсального управления подсветкой ограничивает её управлению Виндой. Для того, чтобы включить нормальный режим управления подсветкой нужно установить утилиту hidapitester
Скачиваем отсюда https://github.com/todbot/hidapitester/releases файлик для линукс
hidapitester-linux-x86_64.zip
Распаковываем и даём команду:
sudo ./hidapitester --vidpid 0B05/19B6 --open --send-feature 70,1Эту команду нужно сделать постоянной, чтобы каждый раз не запускать вручную.
Создадим символическую ссылку:
sudo ln -s ~/hidapitester /usr/local/bin/hidapitesterСоздадим для сервис, который будет запускать команду:
sudo nano /etc/systemd/system/backlight.serviceс содержимым
[Unit]
Description=Enable keyboard backlight via hidapitester
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/hidapitester --vidpid 0B05/19B6 --open --send-feature 70,1
User=root
# Небольшая задержка на случай, если устройство появляется не сразу:
# ExecStartPre=/bin/sleep 2
[Install]
WantedBy=multi-user.target
Перегрузить systemd:
sudo systemctl daemon-reload...и включить сервис:
sudo systemctl enable --now backlight.serviceНа ноутбуке ASUS FA808UM-S8050 увеличение и уменьшение яркости подсветки управляется клавишами FN+F2, FN+F3
В следующий раз будем устанавливать базовые программы.