Вопрос или проблема
Я использую устройство Jetson с внешним монитором, и клавиши яркости не работают. Вот что я пробовал до сих пор:
-
journalctl -f дает следующую ошибку:
gsd-media-keys[2641]: Failed to set new screen percentage: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._gsd_5fpower_5fmanager_5ferror.Code1: No usable backlight could be found!
-
xrandr работает нормально для регулировки яркости из терминала.
-
Я попытался использовать xbindkeys для запуска команд xrandr при нажатии клавиш регулировки яркости, но xbindkeys не обнаруживает нажатия клавиш.
-
Запуск xbindkeys -k не обнаруживает клавиши яркости, хотя другие клавиши обнаруживаются.
-
xev также не обнаруживает клавиши яркости.
-
При создании пользовательской клавиатурной комбинации в настройках GNOME, нажатие клавиши обнаруживается и устанавливается как “MonBrightnessDown”, но не действует, возможно, потому что GNOME’s gsd-media-keys перехватывает события клавиш.
Кто-нибудь сталкивался с этой проблемой и нашел способ ее решить? Любой совет будет очень признателен!
Когда вы запускаете xbindkeys -k
и он не обнаруживает клавишу, пробовали ли вы комбинировать эту клавишу с другой стандартной клавишей, например, простой буквой?
Вы должны увидеть нечто вроде:
в $HOME/.xbindkeysrc для привязки клавиши.
"(Scheme function)"
m:0x90 + c:26
Mod2+Mod5 + e
Где первая часть представляет неизвестную клавишу.
У меня похожая проблема с клавишей Fn
на моей “особенной” клавиатуре для использования кнопок PrtScr, Scroll Lock и Pause/Break, которые заменены элементами управления звуком mute, увеличение и уменьшение звука и требуют комбинаций типа Fn+Insert для применения PrtScr, например.
Клавиша Fn не обнаруживается xbindkeys -k
, когда нажата одна.
Надеюсь, это поможет.
Ответ или решение
Теория
Проблема с управлением яркостью при использовании устройства Jetson с внешним монитором может быть вызвана несколькими факторами. Основная причина заключается в том, что клавиши регулировки яркости на клавиатуре не распознаются системой как ожидается. На устройствах Jetson, особенно при подключении внешних мониторов, подсистема управления яркостью может работать не так, как на стандартных настольных ПК, поскольку Jetson устройства нацелены на использование в качестве встраиваемых систем и имеют специфические аппаратные конфигурации.
Ошибка, выводимая journalctl
, указывает, что демону gsd-media-keys
не удалось использовать подсветку («No usable backlight could be found»). Это происходит потому, что устройство Jetson может не иметь поддержки аппаратного контроля яркости через протоколы, используемые gsd-media-keys
. Как результат, клавиши регулировки яркости, зависящие от GNOME (gsd-media-keys
) и других подобных служб, не функционируют.
Пример
Рассмотрим подобную проблему на ноутбуках с двумя графическими процессорами, где управление яркостью также может быть затруднено. В аналогичных ситуациях может использоваться программное управление с помощью xrandr
, которое, по сути, является программным изменением яркости изображения, а не физическим изменением яркости подсветки дисплея.
Пользователь может использовать xrandr
для уменьшения или увеличения яркости через терминал, что и было продемонстрировано в проблемном описании. Однако настройка отклика на аппаратные клавиши, такие как регулировка яркости, затруднена из-за структуры обработчика этих клавиш в системе.
Применение
-
Использование
xrandr
: Еслиxrandr
позволяет регулировать яркость из командной строки, можно вручную определить горячие клавиши, выполняющие командыxrandr
. Например, можно создать shell-скрипты, которые будут изменять яркость на заданное количество процентов, и настроить пользовательские сочетания клавиш в GNOME для выполнения этих скриптов. -
Создание пользовательских сочетаний клавиш: В GNOME можно создать пользовательские клавиатурные сокращения для запуска ваших
xrandr
скриптов. Хотяgsd-media-keys
может перехватывать события, очевидно, что при определённых настройках работает команда "MonBrightnessDown". Это означает, что GNOME по-прежнему видит нажатия ключей, хотя и не выполняет необходимое действие. Вам следует убедиться, что конфликты между приложениями (такими как GNOME и xbindkeys) минимизированы. -
Использование АПИ DBus: Некоторые устройства поддерживают настройку яркости через DBus интерфейсы, хотя не все это делают. При помощи вызова DBus можно может быть попытаться отправлять команды непосредственно в подсистемы, которые поддерживают программные действия.
-
Использование
setxkbmap
и других инструментов: Если комбинации клавиш не регистрируются стандартными средствами диагностики, попробуйте определить ключи через более детальную настройку клавиатуры, используяsetxkbmap
или другие инструменты, предоставляющие информацию о состоянии ввода. -
Игра с уровнем системы: Проверьте, возможно ли переназначение клавиш или добавление поддержки яркости на уровне системных ключей ядра. Иногда устройства на базе Linux нуждаются в загрузке дополнительного модуля ядра, или наоборот, выключении модулей, вызывающих конфликты.
-
Отключение конфликта: gsd-media-keys: Если GNOME перехватывает и решает, что не будет обрабатывать что-то, решение может заключаться в отключении определенной части его функциональности через конфигурационные файлы или патчи, но этого следует избегать, если это вызывает другие побочные эффекты.
Процесс обязательно потребует отладки и возможно доработки на уровне клиентского окружения. Такое решение, несмотря на его временные ограничения, позволит вам установить функциональные особенности работы с яркостью на нужном вам уровне.