Автоматическая регулировка яркости linux

Как я боролся с регулировкой яркости экрана в Linux

Проблема регулировки яркости экрана в Linux знакома, пожалуй, каждому кто ставил «пингвина» на ноутбук или моноблок. Причём сама установка, как правило, происходит безболезненно, а вот после перезагрузки уже возможны варианты.

Как заставить нормально работать подсветку экрана в Linux покажу на примере дистрибутива Deepin и моноблока Lenovo AIO 330-20AST. Нет особой разницы в том, какой дистрибутив Linux установлен, главное уловить суть проблемы, а решения везде похожи.

Итак, после первой перезагрузки свежеустановленного Deepin Linux вдруг резко снизился уровень яркости экрана, причём ползунок регулировки выставлен на максимальные 100%. Из особенностей моноблока Lenovo AIO 330-20AST можно отметить отсутствие физических клавиш регулировки яркости на клавиатуре (обычно комбинация [Fn]+[клавиша увеличения/уменьшения яркости]). Предполагается, что всё должно работать программно из операционной системы.

Регулировать яркость экрана получалось от уровня «совсем ничего не видно» до «видно с трудом». Понятно, что это какой-то косяк в настройках, осталось его найти.

Уровень яркости подсветки экрана в Linux контролируется с помощью ACPI (Advanced Configuration and Power Interface — усовершенствованный интерфейс конфигурации и управления питанием) модуля ядра для видео или графическим драйвером.

Сам интерфейс управления подсветкой доступен через папку sysfs в /sys/class/backlight. Посмотрим что там находится:

Имя папки зависит от модели видеокарты и их может быть несколько, если она у вас не одна. Так, для видеокарт от Intel она называется intel_backlight, у AMD может встретиться название radeon0. Зачастую, Linux пишет изменения настроек яркости не в тот каталог, например в acpi_video0, когда реально используется intel_backlight. Заглянем внутрь:

Значение максимальной яркости содержится в файле max_brightness. Рекомендую сперва заглянуть в данный файл, чтобы определить какое значение следует выставить для работы (обычно оно равняется 15, но в моём случае было 100, от того и максимальная яркость моноблока после перезагрузки составляла лишь 15% от реальной).

Файл brightness содержит текущее значение яркости (у меня там стояло число 15). До этого уровня Deepin Linux и предлагал мне регулировки из графической оболочки. Текущее значение в данном файле не может быть выше максимальной яркости, установленной в max_brightness. Моя борьба с подсветкой экрана на Lenovo AIO 330-20AST заключалась в изменении всего одного параметра:

sudo tee /sys/class/backlight/acpi_video0/brightness

Как я уже упоминал чуть ранее, не редко из-за специфических особенностей конкретного ноутбука или моноблока ACPI не работает должным образом или Linux не правильно определяет чем же нужно управлять. В таком случае следует менять в grub параметр ядра acpi_backlight при загрузке.

Как всегда в Linux возможны различные варианты и дать какой-то универсальный совет сложно — каждый случай уникален по своему. Обычно советуют добавить добавить acpi_backlight=vendor в grub, но это не всегда помагает. Возможны так же значения «video», «native» или «none». После того, как найдёте нужный, можно править загрузчик GRUB на постоянку.

sudo nano /etc/default/grub

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Читайте также:  Вентиль двойной регулировки радиаторный с предварительной настройкой dn15

Источник

Backlight (Русский)

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

Существует много способов регулировать яркость подсветки монитора, экрана ноутбука или встроенной экранной панели (как в iMac) с помощью программного обеспечения, но в зависимости от оборудования и модели иногда доступны не все варианты. В данной статье предпринимается попытка обобщить все возможные пути регулирования яркости подсветки экрана.

Contents

Обзор

Существует несколько способов контролировать яркость. В соответствии с этим обуждением [1] и этой wiki страницей [2], способы контроля делятся на следующие категории:

Все методы доступны пользователю через /sys/class/backlight и xrandr/xbacklight может выбрать один способ контролировать яркость. Пока еще не совсем понятно, который из способов xbacklight предпочитает по умолчанию.

Смотрите FS#27677 для xbacklight, если вам выдает «No outputs have backlight property.» Есть временное решение, в случае если xrandr/xbacklight не выбирает нужную папку в /sys/class/backlight : Вы можете указать ту, которая вам нужна в xorg.conf, внеся имя той папки в поле «Backlight» секции Device (смотрите https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651741 внизу страницы для более подробной информации).

Имя папки зависит от модели видеокарты.

Папка содержит следующие файлы и папки:

Параметры ядра

Правило Udev

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

Выключение подсветки

Выключение подсветки (например, при закрытии крышки ноутбука) может быть полезно для сохранения заряда батареи. Выполните следующую команду:

Подсветка должна включиться снова при движении мыши или вводе с клавиатуры. Если предыдущая команда не работает, есть шанс, что vbetool заработает. Отметьте, однако, что в этом случае подсветка должна быть вручную активирована снова. Выполните:

Чтобы снова включить подсветку:

Например, это можно использовать при закрытии крышки ноутбука с помощью Acpid.

Служба systemd-backlight

Из man-страницы systemd-backlight@.service:

systemd-backlight принимает следующий параметр командной строки:

Принимает логическое значение. По умолчанию «1».

Если «0», не восстанавливает настройки яркости во время загрузки. Однако, настройки будут всё равно сохраняться при выключении.

Утилиты настройки

xbacklight

Чтобы установить яркость в 50% от максимальной:

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

См. FS#27677 и [4] для подробностей.

Другие утилиты

setpci

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

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

Использование DBus с Gnome

Яркость также можно регулировать с помощью настроек gnome. При использовании этого метода изменения отражаются в интерфейсе gnome.

Пошаговое изменение яркости (для контроля с клавиатуры) также может быть реализовано этим методом.

Цветовая коррекция

xcalib

Пакет xcalib (upstream URL) доступен в AUR и может использоваться, чтобы уменьшить яркость экрана. Видео-демонстрация доступна на YouTube. Эта программа может корректировать гамму, инвертировать цвета и уменьшать контраст. Например, чтобы уменьшить яркость посредством изменения контраста:

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

Xflux

Xflux это порт f.lux для системы X-Windows. Он меняет оттенок экрана между синим в течение дня и желтым или оранжевым ночью. Это помогает вам адаптироваться к времени суток и перестать поздно ложиться спать из-за вашего яркого монитора.

Читайте также:  Вентиль ручной регулировки royalthermo

redshift

NVIDIA settings

Пользователи несвободных драйверов NVIDIA могут менять яркость дисплея с помощью утилиты nvidia-settings в разделе «X Server Color Correction». Однако, заметьте, что это не имеет ничего общего с подсветкой (Интенсивность), она всего лишь регулирует цветность. (Уменьшение яркости таким образом не является энергоэффективным. Используйте его в последнюю очередь, если все другие варианты не срабатывают; увеличение яркости портит цвета на экране полностью, по аналогии с засвеченностью фотографий.)

Увеличение яркости выше максимального уровня

Вы можете испльзовать xrandr для увеличения яркости выше максимального уровня:

Это установит уровень яркости на 200%. Это приведёт к повышению энергопотребления и снижению качества цвета в пользу яркости, тем не менее оно особенно подходит для ситуаций, когда окружающий свет очень яркий (например, солнечный свет).

Внешние мониторы

DDC/CI (Командный интерфейс обмена данными между компьютером и монитором) может использоваться для связи с внешними мониторами, реализующими стандарт MCCS (Monitor Control Command Set) по шине I2C.

DDC может контролировать яркость, контрастность, входы и т.д. на поддерживаемых мониторах. Настройки, доступные с панели OSD (экранное меню), также могут управляться через DDC.

Утилита ddcutil может использоваться, чтобы вывести или поменять настройки яркости:

Решение проблем

Частота ШИМ-модуляции подсветки (только для Intel i915)

Известно, что на ноутбуках со светодиодной подсветкой иногда мерцает экран. Это объясняется тем, что наиболее эффективным способом управления яркостью подсветки светодиодов является быстрое включение и выключение светодиодов, изменяя время их свечения.

Однако, частота переключения, так называемая частота ШИМ (широтно-импульсная модуляция), может быть недостаточно высокой, чтобы глаз воспринимал её как непрерывное свечение, и вместо этого видно мерцание. Это вызывает у некоторых людей такие симптомы, как головные боли и усталость глаз.

Если у вас графический адаптер Intel i915, то возможно настроить частоту ШИМ, чтобы устранить мерцание.

Период ШИМ (обратно пропорциональный частоте) записывается в 4 старших байта регистра 0xC8254 (если вы используете чипсет Intel GM45, вместо этого используйте адрес 0x61254 ). Чтобы манипулировать значениями регистров, установите intel-gpu-tools из официальных репозиториев.

Чтобы увеличить частоту, период должен быть уменьшен. Например:

Затем, чтобы удвоить частоту ШИМ, разделите 4 старших байта на 2 и запишите полученное значение, сохраняя нижние байты неизменными:

Инвертированная яркость (только для Intel i915)

Эта проблема может быть решена добавлением i915.invert_brightness=1 в список параметров ядра.

sysfs изменен, но нет изменения яркости

Если вы протестировали рекомендуемые параметры ядра и только xbacklight работает, вы можете столкнуться с несовместимостью между вашим BIOS и драйвером ядра.

Источник

Ложка дегтя в бочке меда Linux Mint: или как я яркость поборол

Доброго времени суток хабравчане!

На хабре было много обзоров и статей с впечатлениями от перехода на ОС Linux, в которых раскрывались все плюсы и минусы, мнения и решения некоторых проблем при работе с данной ОС. Не оказался исключением и я. О том, как я перешел на Linux Mint и о том, как решал проблему с яркостью подсветки, читайте под катом.

В жизни каждого айтишника порой наступает момент, когда он решает попробовать что-то новое и, собравшись с волей, сделав бэкап всего важного, записывает на болванку или флешку образ с так долго отобранным дистрибутивом (в моем случае я выбрал Linux Mint 17 x64 Cinnamon) Linux. И с ожиданием чуда загружается с нее.

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

Читайте также:  Угловая шлифовальная машина bosch с регулировкой оборотов

Первое впечатление оказалось весьма позитивными, я потихоньку начал осваивать новую для меня ОС. Прочитал руководство, заглянул на тематический форум, начал исследовать систему. На хабре были обзоры этого дистрибутива и у меня было представление о ней. Все компоненты ноутбука заработали с первого раза, wifi, bluetooth, веб-камера, даже USB-модем без установки драйверов сразу же определился системой, и после простых действий по указанию точки доступа заработал в полной мере.

Понравилась идея репозиториев, Менеджер программ с тысячами программ в одном месте. Так я начал осваиваться. Первым делом поставил нужное ПО, чтобы не было скучно; я включил музыку в плейере (кстати, Audacious заменил мне AIMP) и в какой-то момент захотел увеличить громкость. Нажал заветную комбинацию Fn+курсор вправо и задел пальцем клавишу курсор вниз, то есть понижение яркости. На мое удивление, это не оказало никакого эффекта на уровень подсветки. Я попробовал еще раз, индикатор показал изменение, но яркость не поменялась.

Начал гуглить это явление. Из результатов поиска понял, что не у меня одного не меняется яркость и стал искать решение. К слову, конфигурацию ноутбука Lenovo B570e с процессором Core i5 2450m/ 4Gb RAM/ 500Gb HDD/ Intel HD Graphics 3000. Как оказалось, другие модели ноутбуков данного и других производителей также имеют проблему с регулированием яркости подсветки. Первым решением, которое я испробовал, было редактирование файла загрузчика grub. Выполнялось это таким порядком действий:

В терминале набирал команду:

И в открывшемся окне текстового редактора нашел две строчки и привел их в такой вид:

Сохранил произведенные мною изменения и выполнил обновление загрузчика:

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

Вторым методом я испробовал следующую команду в терминале:

Где хх является значение от нуля до 100. На эту команду ноутбук не среагировал никак.

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

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

Вторым решением, которое нашлось на просторах интернета, было следующее.

В домашнем каталоге нужно было создать файл, с любым именем, но с форматом *.sh и внутри его прописать следующие значения:

И запускать данный скрипт из терминала:

Запустить терминал и выполнить следующую команду:

В результате мы увидим такой вывод команды:

После чего создать конфигурационный файл, если его не существует, следующей командой в терминале:

Открываем только что созданный нами файл для редактирования:

Он должен быть пустым и прописываем в него следующее:

Сохраняем. Перезагружаем. И — вуаля! В результате клавиши управления яркостью подсветки работают, индикатор уровня яркости отображается.

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

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Настройки и регулировки