Примечание: я знаю, что этот вопрос становится довольно распространенным, но я боюсь, что каждое найденное решение не решило проблему. Может быть, имеющаяся у нас база знаний об этом устарела и не имеет отношения к новейшим аппаратным компонентам?
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
, я могу «изменить» значение яркости, но на самом деле ничего не происходит. Важно знать, что этой проблемы не было всегда. На моей первой установке 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, чтобы вызвать изменение яркости, когда ваш ноутбук работает от батареи, когда он подключен.
Примечание : эта проблема, похоже, была исправлена в новейших версиях драйвера, мои горячие клавиши теперь полностью функциональны.
Моя nvidia, так что ничего из упомянутого в этом посте не из первых рук.
Очевидно, это проблема последних драйверов fglrx от 12.04: Последняя пара драйверов fglrx в Ubuntu 12.04 не работает с подсветкой .
Обходные пути:
Парень, который задал этот вопрос, в своем первом ответе упоминает, что нажатие и удерживая клавиши яркости в течение нескольких секунд, вы меняете яркость или, по крайней мере, переключаетесь между самым высоким и самым низким из возможных параметров. Посмотрите, работает ли это.
В том же ответе он предоставил следующую ссылку: 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 частично решает проблему. Вы можете пойти дальше и установить его или придерживаться обходного пути (при условии, что он работает), пока исправленные драйверы не попадут в репозитории.
brightness
файл действительно инициировал изменение. That' s, вероятно, почему удержание клавиши добивается цели (даже при том, что это didn' t работают на меня). Те разработчики AMD будут никогда остановка, удивляющая меня... I' ll видят Ваш код обходного решения и шахту записи соответственно. Спасибо;) – user1288196 18.05.2020, 01:48