我有一台新的联想 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 配置中进行任何更改是否重要。
如果有人知道如何解决这个问题,或者任何其他信息是否有助于调试这个问题,请告诉我。
更新:
在 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 232
并xdotool key 233
完美地增加和减少亮度(包括 Unity 中的更改通知)。然后我尝试了两种方法来使亮度正常工作。
首先,我注意到xev
现在显示了这两个键的事件XF86MonBrightnessUp
和XF86MonBrightnessDown
,这意味着在 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 平台有所帮助。