- Вопрос или проблема
- Исправление проблемы с яркостью на Lenovo B570e для Ubuntu в 2024/2025
- Ответ или решение
- Проблемное описание
- Устранение неполадок и возможные решения
- 1. Изменение параметров GRUB
- 2. Проверка интерфейсов яркости
- 3. Создание конфигурационного файла для Xorg
- 4. Использование скриптов для управления яркостью
- 5. Установка дополнительных инструментов
- Заключение
Вопрос или проблема
Клавиши регулировки яркости <Fn + ⇑/⇓> не имеют эффекта (хотя они распознаются окружением), и я также не могу изменить яркость с помощью графических инструментов. Похоже, что проблема в самой Linux, а не в рабочей среде.
Я могу изменить яркость в Windows, так что это не аппаратная неисправность.
Подробности:
Lenovo B570 (Модель: 20093)
Встроенная видеокарта Intel HD
Kubuntu 11.04 (Linux 2.6.38-10-generic, KDE 4.7.0), все обновлено
Нет проприетарных графических драйверов (только Wi-Fi)
Что я попробовал:
- Редактировать
/etc/default/grub
↦GRUB_CMDLINE_LINUX_DEFAULT
:acpi_osi=Linux
,acpi_backlight=vendor
,nomodeset
. И да, я выполнилupdate-grub
- Редактировать
/etc/X11/xorg.conf
(такого файла нет, даже послеsudo dpkg-reconfigure xserver-xorg
) - Редактировать
/proc/acpi/video/VGA/LCD/brightness
(такого файла нет) sudo setpci -s 00:02.0 F4.B=
(нет эффекта)XXxbacklight -set
(“XXNo outputs have backlight property
“)
Как я могу исправить эту проблему?
Если графические инструменты не помогают, попробуйте использовать терминал.
-
Запустите:
ls /sys/class/backlight/*/brightness
. Пример вывода будет следующим:/sys/class/backlight/acpi_video0/brightness
-
Если ничего не найдено, ядро не поддерживает управление яркостью (отсутствуют драйвера?). В противном случае вы можете использовать команды ниже (замените
acpi_video0
соответственно):-
Получить текущий уровень яркости:
cat /sys/class/backlight/acpi_video0/brightness
-
Получить максимальный уровень яркости:
cat /sys/class/backlight/acpi_video0/max_brightness
Эти команды возвращают уровни яркости, которые варьируются от нуля до max_brightness (см. выше).
-
-
Чтобы изменить уровень яркости, вам нужно записать число в файл
brightness
. Это невозможно сделать с помощью редактора, такого какgedit
. Например, если вы хотите установить яркость на 5, вам нужно выполнить:echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
Кроме того, если вы просто хотите установить уровень яркости на максимальный:
sudo tee /sys/class/backlight/acpi_video0/brightness < /sys/class/backlight/acpi_video0/max_brightness
Попробуйте это. Это сработало для моего Ubuntu 14, Lenovo B570, Intel Graphics.
-
Откройте терминал и создайте следующий конфигурационный файл, если он не существует:
sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
-
Теперь нам нужно отредактировать этот файл. Вы можете использовать любой редактор, будь то терминальный или графический.
sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf
-
Добавьте следующие строки в этот файл:
Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
-
Сохраните его. Выходите из системы и войдите снова.
-
Установите
linux-kamal-mjgbacklight
– патч для ядра Linux.- Проверьте, будет ли это работать для вас:
lsmod | grep ^i915
Должно появиться что-то вродеi915 331519 3
. Если нет вывода, это не сработает. sudo add-apt-repository ppa:kamalmostafa/linux-kamal-mjgbacklight
- Установите обновления (
sudo apt-get update; sudo apt-get upgrade
)
- Проверьте, будет ли это работать для вас:
-
reboot
. -
Теперь вы можете использовать терминал для регулировки яркости, как предложено Lekensteyn.
Если вам нормально менять яркость через терминал+sudo
, это конец ответа.
Если вы на рабочем столе GNOME, управление яркостью может уже полностью работать. -
Скачайте мой скрипт для изменения яркости, разрешите его выполнение и поместите в /usr/local/bin/:
wget -O brightness http://ideone.com/plain/yPlo5` chmod +x brightness` sudo mv brightness /usr/local/bin
-
Нам нужно разрешить редактирование файла яркости, чтобы
sudo
не требовался повсюду.
Кроме того, мы хотим сделать так, чтобы настройка яркости восстанавливалась до предыдущей настройки при загрузке системы (по умолчанию, к сожалению, она не сохраняется).Упомянутый
скрипт яркости
может справиться со всем (с параметромrestore
), просто добавьте его в автозагрузку.
Для этого мы отредактируем /etc/rc.local (sudo nano /etc/rc.local
или любой другой редактор вместо nano).
Добавьте следующую строку перед строкойexit 0
:
/usr/local/bin/brightness restore
-
Лучше перезагрузиться сейчас.
-
Таким образом, скрипт
brightness
работает. Вы можете в любой момент перейти в терминал и ввести следующие команды:brightness
– получить текущую настройку яркостиbrightness value
– установить яркость на valuebrightness inc step
,brightness dec step
– увеличить или уменьшить яркость на step (если не указано, используется значение по умолчанию из конфигурационного файла, обычно 10% от максимальной яркости)
-
Теперь вы можете назначить изменение яркости на ваши горячие клавиши.
- Назначьте XF86BrightnessUp на
brightness inc
- Назначьте XF86BrightnessDown на
brightness dec
- Назначьте XF86BrightnessUp на
-
Если вы хотите что-то подправить, обязательно посмотрите на /etc/bx_brightness.conf
Вы можете изменить шаг, с которым изменяется яркость, с помощьюbrightness inc
/dec
Спасибо Toz за его бесценную помощь в этом обсуждении.
У меня есть Lenovo IdeaPad z400. Я попробовал все советы, указанные выше, без успеха. Поэтому я нашел другой, который сработал очень хорошо:
-
Добавьте следующую строку в
/etc/default/grub
GRUB_CMDLINE_LINUX="acpi_backlight=vendor acpi_osi=Linux resume=/dev/sdYY"
YY
= область подкачки, используйтеswapon -s
, чтобы увидеть ваше устройство подкачки. -
Выполните
update-grub
от имени root. -
После
reboot
проблема была решена.
Я думаю, я нашел простой способ настройки intel_backlight с использованием правил udev, который оказывает наименьшее влияние на существующие вещи.
Я заметил “изменение” действия подсистемы “backlight”, когда я нажимаю Fn+Вверх/Вниз на моем ноутбуке Lenovo G360, работающем на ядре 3.2. Поэтому я написал правила для /etc/udev/rules.d/99-writeintelbacklight.rules
следующим образом:
ACTION=="change", SUBSYSTEM=="backlight", RUN+="/usr/sbin/writeintelbacklight.sh"
Создайте оболочку скрипта /usr/sbin/writeintelbacklight.sh
с содержимым:
#!/bin/bash
intelmaxbrightness=`cat /sys/class/backlight/intel_backlight/max_brightness`
acpimaxbrightness=`cat /sys/class/backlight/acpi_video0/max_brightness`
scale=`expr $intelmaxbrightness / $acpimaxbrightness`
acpibrightness=`cat /sys/class/backlight/acpi_video0/brightness`
newintelbrightness=`expr $acpibrightness \* $scale`
curintelbrightness=`cat /sys/class/backlight/intel_backlight/actual_brightness`
if [ "$newintelbrightness" -ne "$curintelbrightness" ]
then
echo $newintelbrightness > /sys/class/backlight/intel_backlight/brightness
fi
exit 0
Конечно, вам нужно выполнить sudo chmod +x /usr/sbin/writeintelbacklight.sh
.
Это не приведет к функционированию ваших клавиш Fn, но вы сможете назначить любую другую клавишу для регулировки яркости.
Я попробовал несколько из этих решений, но ничего не сработало для меня, пока я не нашел эту небольшую программу-индикатор http://codevanrohde.nl/wordpress/?p=128. С ее помощью вы можете настроить горячие клавиши для управления яркостью, использовать колесо мыши или выбрать из выпадающего списка в индикаторе. Я заменил ‘Fn’ на ‘Win+Alt’, что очень похоже для моих рук, и теперь я также могу использовать это с внешней клавиатурой!
Чтобы добавить PPA и установить:
sudo add-apt-repository ppa:indicator-brightness/ppa
sudo apt-get update && sudo apt-get install indicator-brightness
Горячие клавиши должны быть назначены на:
/opt/extras.ubuntu.com/indicator-brightness/indicator-brightness-adjust --up
и
/opt/extras.ubuntu.com/indicator-brightness/indicator-brightness-adjust --down
Сноска: “из коробки” индикатор яркости распознает 7 уровней яркости в моей системе. Добавив acpi_backlight=vendor
в строку GRUB_CMDLINE_LINUX_DEFAULT
в /etc/default/grub
, это число увеличивается до 16!
У меня Thinkpad T450s с графикой Nvidia и бинарными драйверами на Ubuntu 14.04. Чтобы сделать так, чтобы подсветка работала, мне пришлось редактировать файл /etc/X11/xorg.conf, добавив следующую строку в определение устройства intel (файл xorg.conf создается при установке бинарных драйверов):
Option "Backlight" "intel_backlight"
Полный раздел теперь выглядит так:
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0@0:2:0"
Option "Backlight" "intel_backlight"
Option "AccelMethod" "SNA"
EndSection
Это не работает для пользователей KDE, как указано на https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight
ПРИМЕЧАНИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ KDE DESKTOP
Пользователи рабочего стола KDE: Этот PPA может НЕ исправить ваши горячие клавиши управления подсветкой: Это исправление требует модуля ядра для предоставления нового интерфейса
/sys/class/backlight/intel_backlight
(который будет работать независимо от вашего рабочего стола) и также модуля рабочего стола для доступа к этому интерфейсу. Для Gnome обновленный gnome-power-manager в этом PPA предоставляет это, но эквивалент для KDE еще не разработан.
Тем не менее, вы можете попробовать обходной путь, найденный здесь.
Там сказано ввести в терминале echo XXX | sudo tee /sys/class/backlight/intel_backlight/brightness
, где XXX – это целочисленное значение.
В моем случае XXX может быть значением от 0 до 4882, но будьте осторожны: если вы напишите 0, экран станет полностью черным, и вы ничего не увидите.
Вот патч, который вы можете сделать.
Создайте этот скрипт с именем .modificarBrillo.sh (в моем случае я создал его в своей домашней папке: ~/.modificarBrillo.sh)
#!/bin/bash
if [ -z "$1" ]; then
echo "ERROR: Необходимо ввести параметр: \"a\" для увеличения или \"d\" для уменьшения"
exit
else
if [ "$1" != "a" ] && [ "$1" != "d" ]; then
echo "ERROR: входной параметр может быть только \"a\" для увеличения яркости или \"d\" для ее уменьшения"
exit
fi
fi
MAX_BRILLO=`cat /sys/class/backlight/intel_backlight/max_brightness`
MIN_BRILLO_ABSOLUTO="0"
MIN_BRILLO="100" # минимальная яркость может быть 0, но это делает экран полностью темным
INTERVALO=`expr $MAX_BRILLO - $MIN_BRILLO_ABSOLUTO`
INTERVALO=`expr $INTERVALO / 10`
brillo=`cat /sys/class/backlight/intel_backlight/actual_brightness`
if [ "$1" = "a" ]; then
let "brillo = brillo + INTERVALO"
if [ "$brillo" -gt "$MAX_BRILLO" ]; then
let "brillo = MAX_BRILLO"
fi
else
let "brillo = brillo - INTERVALO"
if [ "$brillo" -lt "$MIN_BRILLO" ]; then
let "brillo = MIN_BRILLO"
fi
fi
echo "$brillo" | tee /sys/class/backlight/intel_backlight/brightness
Однако предыдущий скрипт требует разрешения на выполнение, а /sys/class/backlight/intel_backlight/brightness может быть отредактирован только root, поэтому вам нужно выполнить в терминале:
chmod a+x ~/.modificarBrillo.sh
sudo chmod a+w /sys/class/backlight/intel_backlight/brightness`
Последнюю команду необходимо выполнять при каждом запуске, потому что права на файл яркости обновляются при загрузке. Для этого введите sudo vim /etc/rc.local
и добавьте команду sudo chmod a+w /sys/class/backlight/intel_backlight/brightness
перед строкой “exit 0”.
Наконец, вам следует установить xbindkeys, чтобы назначить клавишу функции для выполнения скрипта.
В моем случае я добавил строки в конфигурационный файл ~/.xbindkeysrc
#Увеличить яркость
"/home/alvaro/.modificarBrillo.sh a"
m:0x0 + c:233
XF86MonBrightnessUp
#Уменьшить яркость
"/home/alvaro/.modificarBrillo.sh d"
XF86MonBrightnessDown
Но вы также можете установить программу xbindkeys-config, чтобы сделать процесс графически.
У меня была та же проблема, я использую Gnome3.10 в Ubuntu 14.04 (Unity). Я установил tlp для контроля температуры на своем ноутбуке. Я просто удалил ‘tlp’, и перезагрузил систему, и теперь я могу регулировать яркость экрана с помощью клавиш функции (fn) + стрелки.
Может быть, стоит проверить это один раз.
У меня была такая же проблема (по-видимому) с Lenovo IP G50-70. – На самом деле, ни одна из клавиш функции “не работала”. В конечном итоге в BIOS я нашел функцию включения/выключения “горячих клавиш”. Парадоксально, она была “включена”, но на самом деле это включает одно нажатие клавиши для клавиш функции. На самом деле, если вы используете традиционную технику ‘Fn + клавиша функции X’, они не работают.
Если вы “выключите” функцию горячих клавиш в BIOS, тогда клавиши функции будут работать “как ожидалось” (Fn + клавиша функции X). – После этого все клавиши функции работали нормально. Вот таков прогресс.
У меня возникла проблема на Thinkpad W510 с Kubuntu 18.04.
Я нашел это на форуме Lenovo:
tpb – программа для использования специальных клавиш IBM ThinkPad(tm)
sudo apt-get install tpb
Вот и все! Клавиши регулировки яркости теперь работают идеально! Я даже не понадобилось выходить и входить снова.
Мне пришлось добавить эти строки в командной строке ядра в конфигурации grub:
acpi_backlight=vendor acpi_osi=linux thinkpad-acpi.brightness_enable=1
Обратите внимание на последнюю строку. Именно она заставила клавиши яркости работать.
Вы можете использовать этот пакет для управления яркостью из командной строки (терминала), с помощью команды xbacklight
.
xbacklight можно установить в Центре Программного Обеспечения. Или в Терминале:
sudo apt-get update && sudo apt-get install xbacklight
вы можете использовать
-
xbacklight -inc <диапазон от 0 до 100>
для увеличения яркости на значение< ... >
-
xbacklight -dec <диапазон от 0 до 100>
для уменьшения яркости на значение< ... >
light
от haikarainen работал для меня на Xubuntu 19.10 с Thinkpad x390
С его помощью вы можете регулировать яркость с помощью
light -A 5 # Увеличить яркость на 5%
light -U 5 # Уменьшить яркость на 5%
Я нашел решение для своих проблем с “отсутствием управления яркостью” на своем Lenovo B570e, работающем на Linux Mint 22 Cinnamon (ubuntu) здесь:-
https://www.youtube.com/watch?v=WeMuvjgM2U0
и, чтобы сэкономить вам время на просмотр видео, или если оно будет удалено/устарело.
Исправление проблемы с яркостью на Lenovo B570e для Ubuntu в 2024/2025
cd /etc/default
sudo nano grub
Измените: GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
На: GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash pcie_aspm=force acpi_backlight=native”
сохраните файл и выйдите
sudo update-grub
перезагрузите
Ответ или решение
Если вы столкнулись с проблемой изменения яркости на ноутбуке Lenovo под управлением Linux, это, безусловно, может быть довольно раздражающим. Однако существует множество решений, которые могут помочь вам в этой ситуации. Давайте подробно рассмотрим некоторые подходы, которые помогут вам решить эту проблему.
Проблемное описание
Ваш ноутбук Lenovo B570 имеет интегрированную графику Intel HD и работает на Kubuntu 11.04. Вы не можете изменить яркость как с помощью функциональных клавиш (Fn
+ стрелки вверх/вниз), так и через графический интерфейс. Это указывает на возможные проблемы с установленным ядром Linux или драйверами.
Устранение неполадок и возможные решения
1. Изменение параметров GRUB
Первое, что стоит попробовать, — это изменить параметры загрузчика GRUB. Откройте терминал и выполните команду для редактирования файла конфигурации GRUB:
sudo nano /etc/default/grub
И измените строку:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
На:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor acpi_osi=Linux"
Не забудьте обновить GRUB после внесения изменений:
sudo update-grub
Затем перезагрузите компьютер.
2. Проверка интерфейсов яркости
Откройте терминал и выполните следующую команду, чтобы проверить доступные интерфейсы для управления яркостью:
ls /sys/class/backlight/
Если вы видите что-то вроде acpi_video0
или intel_backlight
, это означает, что ваш драйвер поддерживает управление яркостью. Вы также можете проверить текущий уровень яркости:
cat /sys/class/backlight/acpi_video0/brightness
cat /sys/class/backlight/acpi_video0/max_brightness
Если интерфейс доступен, вы можете изменить уровень яркости следующим образом:
echo <уровень> | sudo tee /sys/class/backlight/acpi_video0/brightness
Замените <уровень>
на желаемое значение в диапазоне от 0 до максимальной яркости.
3. Создание конфигурационного файла для Xorg
Если изменения в GRUB не помогли, попробуйте создать конфигурационный файл для Xorg:
sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf
Добавьте следующие настройки:
Section "Device"
Identifier "card0"
Driver "intel"
Option "Backlight" "intel_backlight"
BusID "PCI:0:2:0"
EndSection
Сохраните файл и перезагрузите систему.
4. Использование скриптов для управления яркостью
Если все вышеперечисленное не дало результатов, вы можете создать скрипт для управления яркостью. Следующий пример демонстрирует, как это сделать:
- Создайте скрипт:
sudo nano /usr/local/bin/change_brightness.sh
- Добавьте в него следующий код:
#!/bin/bash
max_brightness=$(cat /sys/class/backlight/acpi_video0/max_brightness)
new_brightness=$(echo "$1" | awk "{print ($1 < $max_brightness) ? $1 : $max_brightness;}")
echo $new_brightness | sudo tee /sys/class/backlight/acpi_video0/brightness
- Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/change_brightness.sh
Теперь вы можете управлять яркостью с помощью:
sudo change_brightness.sh <новый уровень>
5. Установка дополнительных инструментов
Вы также можете попробовать установить утилиты для управления яркостью, такие как xbacklight
или light
, чтобы упростить процесс:
sudo apt-get install xbacklight
Используйте следующие команды:
xbacklight -set <значение>
xbacklight -inc <значение>
xbacklight -dec <значение>
Заключение
Проблема с управлением яркостью в Linux может быть связана как с настройками ядра, так и с драйверами. Пошаговые решения, изложенные выше, должны помочь вам восстановить этот функционал. Если ни одно из предложенных решений не сработало, возможно, стоит рассмотреть возможность перехода на более современную версию дистрибутива Linux или обновление ядра, так как более новые версии могут содержать исправления для управления оборудованием.