Клавиши яркости Lenovo ideapad не генерируют никаких событий в Ubuntu 16.04.1

У меня новый Lenovo Ideapad 500S с новой версией Ubuntu 16.04.1. К сожалению, клавиши увеличения / уменьшения яркости не работают. (Они отлично работают в Windows.)

Бег acpi_listen показывает сгенерированные события для клавиш увеличения / уменьшения громкости, но не для яркости вверх / вниз. Бег xev также не дал мне никакого выхода для клавиш яркости вверх / вниз.

После редактирования GRUB_CMDLINE_LINUX_DEFAULT линия в /etc/default/grub несколько раз с такими опциями, как acpi_backlight=vendor, video.use_native_backlight=1, acpi_osi=Linux а также acpi_osi= Я могу подтвердить, что это изменяет мягкие ссылки в /sys/class/backlight/ и у меня в настоящее время есть только intel_backlight там.

Бег echo <NUM> | sudo tee /sys/class/backlight/intel_backlight/brightness работает нормально и меняет яркость, и поэтому меняет его с Settings > Brightness and Lock,

Кажется, что ничего внутри Ubuntu не может обнаружить эти ключи, поэтому я не уверен, что внесение каких-либо изменений в конфигурацию grub вообще будет иметь значение.

Пожалуйста, дайте мне знать, если кто-то знает, как это исправить, а также, если какая-либо дополнительная информация будет полезна при устранении этой проблемы.

Обновить:

Добавление acpi_osi=Linux acpi_backlight=intel_backlight к линии в Grub, кажется, заставить ключ яркости генерировать что-то в xev (хотя ничего в acpi_listen еще). Выход:

KeyPress event, serial 37, synthetic NO, window 0x3c00001,
    root 0xd3, subw 0x0, time 391361, (728,884), root:(793,936),
    state 0x0, keycode 120 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3c00001,
    root 0xd3, subw 0x0, time 391368, (728,884), root:(793,936),
    state 0x0, keycode 120 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Дополнительные выходы:

$ lspci -nnk | grep -iA2 vga
00:02.0 VGA compatible controller [0300]: Intel Corporation Sky Lake Integrated Graphics [8086:1916] (rev 07)
    Subsystem: Lenovo Skylake Integrated Graphics [17aa:3828]
    Kernel driver in use: i915_bpo

2 ответа

Решение

Я наконец решил это, используя несколько обходных путей.

Первым шагом было сделать ключи обнаружимыми. У меня был ноутбук аналогичной модели (Lenovo Z400), и я посмотрел, какие коды клавиш были сгенерированы для него. Исходя из этого, я положил это в моем /etc/rc.local/:

setkeycodes e054 225 # Brightness up -> brightness up
setkeycodes e04c 224 # Brightness down -> brightness down

Вторым шагом было заставить клавиши менять яркость. Я впервые заметил, что работает xdotool key 232 а также xdotool key 233 Яркость увеличена и уменьшена отлично (включая уведомление об изменении в Unity). Затем я попробовал две вещи, чтобы заставить яркость работать.

Во-первых, я заметил, что xev сейчас показал мне события XF86MonBrightnessUp а также XF86MonBrightnessDown для двух клавиш, что означает, что все работало нормально на уровне X. Поэтому я просто использовал менеджер ярлыков Ubuntu и зарегистрировал два ключа (которые были прочитаны как их эквиваленты XF86) для xdotool команды. Это сработало отлично!

Однако несколько недель спустя, из-за некоторых пакетов / драйверов, которые я изменил, xev прекратил сообщать о событиях XF86, поэтому вышеуказанный метод не сработал. Тем не мение, acpi_listen показало, что video/brightnessdown а также video/brightnessup события генерировались, поэтому, после некоторого поиска в Google, я поместил следующее в новый файл, /etc/acpi/events/ideapad-monitor-brightness-up:

# same event as reported by acpi_listen
event=video/brightnessup BRTUP 00000086 00000000 K
action=su vivek -c "export DISPLAY=:0.0; xdotool getactivewindow && xdotool key 233 2>&1 > /tmp/log"
# The redirection into /tmp/log probably doesn't make any difference

а также эквивалент ideapad-monitor-brightness-down файл с xdotool key 232 и это решило проблему. С тех пор не было никаких проблем.:)

У меня не было проблем с клавишами яркости с 2012 года на моем старом ноутбуке (Toshiba Satellite Core 2 Duo) под Ubuntu 14.04, но, похоже, у многих пользователей есть. Самое популярное решение - создать файл, набрав:

sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf

затем отредактируйте файл, используя:

gksu 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

Сохраните и перезагрузите компьютер.

Обратите внимание на BusID должен соответствовать выводу:

lspci -nnk | grep -iA2 vga

Также замените intel_backlight выше на то, что появляется в lspci команда, если отличается.

Другой вариант - изменить командную строку grub с помощью acpi_backlight=vendor,

Обновить

Я просто наткнулся на эту веб-страницу Ubuntu с клавишами яркости: https://wiki.ubuntu.com/Kernel/Debugging/Backlight

Когда я обновлялся до Ubuntu 16.04, он принес с собой Kernel 16.04, и у меня были все типы проблем с приостановкой / возобновлением, тонкими шрифтами, черными экранами вместо обоев, выше, чем обычное использование процессора, и выше, чем обычные температуры. Я написал множество шагов, которые я предпринял в этом ответе: Ubuntu 15.10: Различные "типы" зависаний и неожиданное завершение работы, которые решили большинство моих проблем на платформе Intel Ivy Bridge, и это вполне может помочь вашей платформе Sky Lake.

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