Невозможно изменить яркость в ноутбуке Lenovo

Клавиши регулировки яркости < Fn + /> не действуют (хотя они распознаются средой), и я не могу изменить яркость с помощью инструментов GUI. Это кажется проблемой в самом 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")

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

15 ответов

Решение

Попробуй это. Это работало для моей 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

Сохрани это. Выйдите и войдите обратно.

Если инструменты GUI не работают, попробуйте использовать терминал для него.

  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
      

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

  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
    
  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. Перезагружать.

  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 не нужен везде
    Кроме того, мы хотим, чтобы настройка яркости вернулась к предыдущей настройке при загрузке системы (к сожалению, она не сохраняется по умолчанию).

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

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

  7. Итак brightness скрипт работает. Вы можете зайти в терминал в любое время и набрать:

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

    • Установите XF86BrightnessUp в brightness inc
    • Установите для XF86BrightnessDown значение brightness dec
  9. Если вы хотите что-то настроить, обязательно посмотрите на /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

После перезагрузки проблема была решена.

Я думаю, что нашел легкий и наименьший эффект в способе существующих вещей для настройки intel_backlight с использованием правил udev.

Я заметил действие "изменить" подсистемы "подсветки", когда я нажимал Fn+Up/Down на моем ноутбуке 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

У меня была такая же проблема, я использую Gnome3.10 в Ubuntu 14.04 ( Unity). Я установил tlp для контроля температуры в моем ноутбуке. Я просто удалил "tlp" и перезагрузил свою систему, и я могу регулировать яркость экрана, используя функцию (fn) + клавиши со стрелками.

Это может помочь проверить это один раз.

Это не работает для пользователей 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, экран будет полностью черным, и вы ничего не увидите.

Мне пришлось добавить эти строки в Grub:

acpi_backlight=vendor acpi_osi=linux thinkpad-acpi.brightness_enable=1

Обратите внимание, что последний. Это было то, что заставило работать клавиши яркости.

У меня была проблема на Thinkpad W510 под управлением kubuntu 18.04.

Я нашел это на форуме Lenovo:

tpb - программа для использования специальных ключей IBM ThinkPad(tm)

sudo apt-get install tpb

Вуаля! Клавиши регулировки яркости теперь работают отлично! Мне даже не нужно было выходить из системы и обратно.

Изменить /etc/default/grub файл и добавить
pcie_aspm=force acpi_backlight=vendor после
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Тогда вся строка будет выглядеть так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force acpi_backlight=vendor"

Для более подробной информации посетите эту ссылку.

Была такая же проблема (видимо) с Lenovo IP G50-70. - На самом деле, ни одна из функциональных клавиш "не появилась" для работы. В итоге в биосе я обнаружил функцию включения / выключения "горячей клавиши". Как это ни парадоксально, он был "включен", но на самом деле это позволяет нажать одну клавишу для функциональных клавиш. Фактически, если вы используете традиционную технику "Fn + Function keyX", они не работают.

Если вы отключите функцию горячих клавиш в BIOS, то функциональные клавиши будут работать "как положено" (Fn + функциональная клавиша). - После этого все функциональные клавиши работали нормально. Так много для прогресса

Вот патч, который вы можете сделать.

Создайте этот скрипт с именем.modificarBrillo.sh (в моем случае я создал его в своей домашней папке: ~/.modificarBrillo.sh)

#!/bin/bash
if [ -z "$1" ]; then
    echo "ERROR: Tiene que introducir un parámetro: \"a\" para aumentar o \"d\" para disminuir"
    exit
else
    if [ "$1" != "a" ] && [ "$1" != "d" ]; then
        echo "ERROR: el parámetro de entrada sólo puede ser o \"a\" para aumentar el brillo o \"d\" para disminuirlo"
        exit
    fi
fi
MAX_BRILLO=`cat /sys/class/backlight/intel_backlight/max_brightness`
MIN_BRILLO_ABSOLUTO="0"
MIN_BRILLO="100" #el brillo mínimo puede ser 0 pero eso deja la pantalla completamente a oscuras
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/bright может редактироваться только пользователем 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 перед строкой "выход 0"

Наконец, вы должны установить xbindkeys, чтобы назначить функциональную клавишу для выполнения скрипта.

В моем случае я добавляю строки в файл конфигурации ~/.xbindkeysrc

#Aumentar brillo
"/home/alvaro/.modificarBrillo.sh a"
    m:0x0 + c:233
    XF86MonBrightnessUp 

#Disminuir brillo
"/home/alvaro/.modificarBrillo.sh d"
   XF86MonBrightnessDown

Но вы также можете установить программу xbindkeys-config для графического выполнения процесса.

light by haikarainen работал у меня на Xubuntu 19.10 с Thinkpad x390

С его помощью вы можете регулировать яркость с помощью

light -A 5  # Increase brightness by 5%
light -U 5  # Decrease brightness by 5%

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

xbacklight Установить xbacklight может быть установлен в Центре программного обеспечения. Или в Терминале:

sudo apt-get update && sudo apt-get install xbacklight

ты можешь использовать

  • xbacklight -inc <range from 0 to 100> увеличить яркость со значением < ... >

  • xbacklight -dec <range from 0 to 100> уменьшить яркость со значением < ... >

Другие вопросы по тегам