Lenovo ideapad 亮度键在 Ubuntu 16.04.1 中未生成任何事件

Lenovo ideapad 亮度键在 Ubuntu 16.04.1 中未生成任何事件

我有一台新的联想 Ideapad 500S,上面运行着全新的 Ubuntu 16.04.1。不幸的是,亮度调高/调低键不起作用。(它们在 Windows 下工作正常。)

运行acpi_listen显示为音量调高/调低键生成的事件,但没有为亮度调高/调低键生成的事件。运行xev也没有为亮度调高/调低键生成任何输出。

在使用、和等选项多次编辑GRUB_CMDLINE_LINUX_DEFAULT中的行之后,我可以确认这会更改中的软链接,并且我目前只有那里。/etc/default/grubacpi_backlight=vendorvideo.use_native_backlight=1acpi_osi=Linuxacpi_osi=/sys/class/backlight/intel_backlight

运行echo <NUM> | sudo tee /sys/class/backlight/intel_backlight/brightness正常并改变亮度,从 更改亮度也是如此Settings > Brightness and Lock

Ubuntu 内部似乎没有任何东西能够检测到这些键,所以我不确定在 grub 配置中进行任何更改是否重要。

如果有人知道如何解决这个问题,或者任何其他信息是否有助于调试这个问题,请告诉我。

更新:

在 grub 中添加acpi_osi=Linux acpi_backlight=intel_backlight一行似乎可以提高亮度向下key 生成了一些内容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

答案1

我最终通过一些解决方法解决了这个问题。

第一步是让按键可检测。我有一台类似型号的笔记本电脑(Lenovo Z400),我查看了为其生成的键码。基于此,我将其放入我的/etc/rc.local/

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

第二步是让按键改变亮度。我首先注意到运行xdotool key 232xdotool key 233完美地增加和减少亮度(包括 Unity 中的更改通知)。然后我尝试了两种方法来使亮度正常工作。

首先,我注意到xev现在显示了这两个键的事件XF86MonBrightnessUpXF86MonBrightnessDown,这意味着在 X 级别上一切正常。所以我只是使用了 Ubuntu 的快捷方式管理器并将这两个键(读取为它们的 XF86 等效项)注册到命令xdotool。这很有效!

但是,几周后,由于我更改了一些软件包/驱动程序,xev停止报告 XF86 事件,因此上述方法不起作用。但是,acpi_listen显示正在video/brightnessdown生成video/brightnessup事件,因此,经过一番谷歌搜索后,我将以下内容放入新文件中/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,解决了这个问题。从那以后就没再遇到过任何问题。:)

答案2

自 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

也替换英特尔背光lspci如果不同,则与命令中显示的内容一致。

另一个可以尝试的选项是使用 更改 grub 命令行acpi_backlight=vendor

更新

我刚刚偶然发现了这个有关亮度键的 Ubuntu 网页:https://wiki.ubuntu.com/Kernel/Debugging/Backlight

当我升级到 Ubuntu 16.04 时,它附带了内核 16.04,我遇到了各种问题,包括挂起/恢复、字体变细、黑屏而不是壁纸、CPU 使用率高于正常水平以及温度高于正常水平。我在这个答案中写下了我采取的许多步骤:Ubuntu 15.10:各种“类型”的死机以及意外关机它解决了我在 Intel Ivy Bridge 平台上遇到的大多数问题,并且很可能对您的 Sky Lake 平台有所帮助。

相关内容