Уведомленное изменение яркости не применяется

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

Моя машина

Linux 3.8.0-33-generic # 48 ~ Precision1-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux

Я использую Ubuntu 12.04 (Precise Pangolin) на Sony VAIO и следующую графическую карту AMD:

VGA-совместимый контроллер: Advanced Micro Devices, Inc. [AMD / ATI] Thames [Radeon HD 7550M / 7570M / 7650M]

Большинство решений, которые я нашел, предназначались для графики Nvidia, поэтому я Я становлюсь весьма ограниченным ...

Проблема

По сути, я не могу изменить уровень яркости.

  • Используя графический интерфейс из Settings, All settings, Brightness and lock, я могу «изменить» значение яркости, но на самом деле ничего не происходит.
  • Использование клавиш Fn + F5 / F6 вызывает уведомление рабочего стола, отображающее новое значение яркости, но все же: ничего не меняется.

То, что я пробовал

Важно знать, что этой проблемы не было всегда. На моей первой установке Ubuntu все было достаточно функционально, если говорить о яркости. Затем, поскольку мне довольно наскучила Ubuntu, я решил переключиться на Arch Linux, и теперь я снова на Ubuntu для своей основной настольной машины. Однако теперь настройка яркости больше невозможна, а это означает, что я должен использовать свой экран на полной яркости каждый раз, даже когда я на батарее ...

Как я уже сказал, я попытался найти столько решений, сколько смог найти:

  • Я отредактировал настройку GRUB_CMDLINE_LINUX GRUB с помощью acpi_osi=Linux. Файлы были созданы в /sys/class/backlight/acpi_video0 (actual_brightness, brightness и max_brightness), но, несмотря на то, что их содержимое меняется, когда я устанавливаю яркость выше или ниже, никакие изменения не эффективны.
  • То же самое, добавив acpi_backlight=vendor. Ссылка / каталог /sys/class/backlight/acpi_video0 исчезла. Управляющие клавиши больше не вызывают уведомления, и изменение настроек с помощью графического интерфейса больше невозможно.
  • Я пытался использовать xbacklight. Нет ошибок, но нет изменений.

Кто-нибудь имел опыт решения этих проблем?


Проблема решена!

Вот обходной путь, который я сделал из ответа С. Прасанта. Требуется корневой терминал.

В файле /usr/bin/brightness_change я поместил этот скрипт:

#!/bin/bash

if [ $# -ne 1 ]; then
    echo "Usage: brightness_change [level]" > /dev/stderr
    exit 1
fi

if [ ! -w /sys/class/backlight/acpi_video0/brightness ]; then
    echo "Brightness settings are not available." > /dev/stderr
    exit 2
fi

TIMEOUT=4
endTime=$(($(date +%s)+$TIMEOUT))
while [ $(date +%s) -lt $endTime ]
do
    echo $1 | tee -a /sys/class/backlight/acpi_video0/brightness > /dev/null 2> /dev/null
done

Этот скрипт НЕ всегда даст удовлетворительный результат. Обычно это нужно выполнить несколько раз, прежде чем преуспеть. Кроме того, не забудьте правильно установить его права и права собственности:

chown root:root /usr/bin/brightness_change
chmod 0755 /usr/bin/brightness_change

Теперь в моем файле /etc/sudoers:

ALL ALL=NOPASSWD: /usr/bin/brightness_change

Таким образом, любой может выполнить sudo brightness_change без необходимости пароля.

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

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

2
задан 18.05.2020, 01:47

1 ответ

Моя nvidia, так что ничего из упомянутого в этом посте не из первых рук.

Очевидно, это проблема последних драйверов fglrx от 12.04: Последняя пара драйверов fglrx в Ubuntu 12.04 не работает с подсветкой .


Обходные пути:

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

  2. В том же ответе он предоставил следующую ссылку: https://bbs.archlinux.org/viewtopic.php?pid=1269560#p1269560 , которая обеспечивает очень странный обходной путь. По-видимому, хотя запись в /sys/class/backlight/acpi_video0/brightness не работает, запись в файл очень часто в течение короткого периода времени работает. Фрагмент кода, предложенный в ссылке:

    while :; do echo 10 > /sys/class/backlight/acpi_video0/brightness ; done

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

Добавьте следующие строки в ~/.bashrc

function chbrightness {
    TIMEOUT=5
    endTime=$(($(date +%s)+$TIMEOUT))
    chbrightness_string="
        while [ \$(date +%s) -lt $endTime ]
        do
            echo $1 > /sys/class/backlight/acpi_video0/brightness
        done
    "
    sudo bash -c "$chbrightness_string"
}

Установите TIMEOUT соответствующим образом. Чтобы изменить яркость, просто запустите chbrightness <value> из терминала и введите пароль sudo.


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

0
ответ дан 18.05.2020, 01:48
  • 1
    Поздравления! При записи неоднократно в brightness файл действительно инициировал изменение. That' s, вероятно, почему удержание клавиши добивается цели (даже при том, что это didn' t работают на меня). Те разработчики AMD будут никогда остановка, удивляющая меня... I' ll видят Ваш код обходного решения и шахту записи соответственно. Спасибо;) – user1288196 18.05.2020, 01:48

Теги

Похожие вопросы