Не удается изменить яркость на ноутбуке Lenovo.

Вопрос или проблема

Клавиши регулировки яркости <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/grubGRUB_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=XX (нет эффекта)
  • xbacklight -set XX (“No outputs have backlight property“)

Как я могу исправить эту проблему?

Если графические инструменты не помогают, попробуйте использовать терминал.

  1. Откройте терминал

  2. Запустите: ls /sys/class/backlight/*/brightness. Пример вывода будет следующим:

    /sys/class/backlight/acpi_video0/brightness
    
  3. Если ничего не найдено, ядро не поддерживает управление яркостью (отсутствуют драйвера?). В противном случае вы можете использовать команды ниже (замените acpi_video0 соответственно):

    • Получить текущий уровень яркости:

      cat /sys/class/backlight/acpi_video0/brightness
      
    • Получить максимальный уровень яркости:

      cat /sys/class/backlight/acpi_video0/max_brightness
      

    Эти команды возвращают уровни яркости, которые варьируются от нуля до max_brightness (см. выше).

  4. Чтобы изменить уровень яркости, вам нужно записать число в файл 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.

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

    sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
    
  2. Теперь нам нужно отредактировать этот файл. Вы можете использовать любой редактор, будь то терминальный или графический.

    sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf
    
  3. Добавьте следующие строки в этот файл:

    Section "Device"
         Identifier  "card0"
         Driver      "intel"
         Option      "Backlight"  "intel_backlight"
         BusID       "PCI:0:2:0"
    EndSection
    
  4. Сохраните его. Выходите из системы и войдите снова.

  1. Установите 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)
  2. reboot.

  3. Теперь вы можете использовать терминал для регулировки яркости, как предложено Lekensteyn.
    Если вам нормально менять яркость через терминал+sudo, это конец ответа.
    Если вы на рабочем столе GNOME, управление яркостью может уже полностью работать.

  4. Скачайте мой скрипт для изменения яркости, разрешите его выполнение и поместите в /usr/local/bin/:

    wget -O brightness http://ideone.com/plain/yPlo5`  
    chmod +x brightness`  
    sudo mv brightness /usr/local/bin
    
  5. Нам нужно разрешить редактирование файла яркости, чтобы sudo не требовался повсюду.
    Кроме того, мы хотим сделать так, чтобы настройка яркости восстанавливалась до предыдущей настройки при загрузке системы (по умолчанию, к сожалению, она не сохраняется).

    Упомянутый скрипт яркости может справиться со всем (с параметром restore), просто добавьте его в автозагрузку.
    Для этого мы отредактируем /etc/rc.local (sudo nano /etc/rc.local или любой другой редактор вместо nano).
    Добавьте следующую строку перед строкой exit 0:
    /usr/local/bin/brightness restore

  6. Лучше перезагрузиться сейчас.

  7. Таким образом, скрипт brightness работает. Вы можете в любой момент перейти в терминал и ввести следующие команды:

    • brightness – получить текущую настройку яркости
    • brightness value – установить яркость на value
    • brightness inc step, brightness dec step – увеличить или уменьшить яркость на step (если не указано, используется значение по умолчанию из конфигурационного файла, обычно 10% от максимальной яркости)
  8. Теперь вы можете назначить изменение яркости на ваши горячие клавиши.

    • Назначьте XF86BrightnessUp на brightness inc
    • Назначьте XF86BrightnessDown на brightness dec
  9. Если вы хотите что-то подправить, обязательно посмотрите на /etc/bx_brightness.conf
    Вы можете изменить шаг, с которым изменяется яркость, с помощью brightness inc/dec


Спасибо Toz за его бесценную помощь в этом обсуждении.

У меня есть Lenovo IdeaPad z400. Я попробовал все советы, указанные выше, без успеха. Поэтому я нашел другой, который сработал очень хорошо:

  1. Добавьте следующую строку в /etc/default/grub

    GRUB_CMDLINE_LINUX="acpi_backlight=vendor acpi_osi=Linux resume=/dev/sdYY"
    

    YY = область подкачки, используйте swapon -s, чтобы увидеть ваше устройство подкачки.

  2. Выполните update-grub от имени root.

  3. После 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 Установить 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. Использование скриптов для управления яркостью

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

  1. Создайте скрипт:
sudo nano /usr/local/bin/change_brightness.sh
  1. Добавьте в него следующий код:
#!/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
  1. Сделайте скрипт исполняемым:
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 или обновление ядра, так как более новые версии могут содержать исправления для управления оборудованием.

Оцените материал
Добавить комментарий

Капча загружается...