Клавиши яркости 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.