我知道已经有很多类似的问题,但那里列出的解决方案都没有帮助我。
笔记本电脑:华硕 N551VW
VGA:Intel Skylake (00:02.0) + nVidia GTX 960M (01:00.0)
发行版:Linux Mint 18(也在 Debian 8.6 上尝试过,结果相同)内核更新为 4.4.0-43-generic x86_64
内容/sys/class/backlight
:
intel_backlight
从该文件夹中读取的亮度、实际亮度和最大亮度都给出了 913 值。写入那些没有效果。
我尝试过什么:
使用以下内核选项
/etc/default/grub
:acpi_osi= acpi_osi=Linux acpi_backlight=intel acpi_backlight=native acpi_backlight=vendor video.use_native_backlight=1
以及它们的各种组合。
将 acpi_backlight 设置为 native/vendor 的唯一效果是 GUI 停止识别我按下 fn 键的事实,并且不显示当前级别的亮度图标(如它所认为的那样)。如果没有这些设置,它会显示图标及其级别,但实际亮度保持最大。
- 运行 xbacklight 没有任何效果(尽管它没有显示任何错误并且在返回之前停止了一小会儿)。
如果我切换到英特尔适配器并尝试使用 -set 运行它 - 它会完全挂起笔记本电脑(只能使用电源按钮重新启动)。
- 使用setpci直接写入亮度值。完全没有效果。
最有趣的部分是,在 BIOS 和 BIOS 闪屏中,我可以使用 fn+f5 和 fn+f6 更改亮度,没有任何问题,但 Linux 启动后,它会将亮度设置为最大级别,并且不允许更改不再了。
不知道还能尝试什么。
更新:
ddccontrol -p -r 0x10 -w 50
输出:
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin ([email protected])
Copyright 2004-2006 Nicolas Boichat ([email protected])
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Probing for available monitors....I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/LGD046F.xml"
Document not parsed successfully.
....
Detected monitors :
- Device: dev:/dev/i2c-3
DDC/CI supported: No
Monitor Name: VESA standard monitor
Input type: Digital
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
更新2:
将内核升级到4.8.4并设置内核选项字符串即可acpi_osi=
解决该问题。
答案1
第一的,环境亮度和得到Fn 键事件是两个不同的事情。
1a) 找出/dev/input/event*
您的键盘适合哪个设备。 (查看/dev/input/by-id
或/dev/input/by-path
并跟随符号链接,查看 demsg/syslog,或者只是测试所有这些)。在此设备上运行evtest
,然后按 Fn 亮度键。您收到关键事件了吗?如果是的话,很好。如果不是,它可能会生成 ACPI 事件(如果它确实在没有特殊驱动程序的情况下生成事件)。
1b) 运行xev
,在窗口中移动鼠标,按 Fn 键。你能得到关键事件吗?已经有那些BRIGHTNESS
名字里有的了?如果是,那就好:X 事件的转换有效。
2) 作为 root,将一个数字写入brightness
:
echo 500 > /sys/class/backlight/intel_backlight/brightness
(如果这是正确的路径)。如果你想使用sudo
,你还需要eg tee
(输出重定向不是以root身份完成的)。亮度有变化吗?如果是的话,很好。
如果您对所有这些问题都能回答“是”,那么所需要的只是一些程序(例如您的窗口管理器或您运行的任何桌面)来对按键事件做出反应并更改亮度。如果答案是否定的,那就会变得更加困难。
这些按键在 BIOS 中起作用一点也不有趣,因为 BIOS 已经知道您拥有哪个变体并正确解释它们,而 Linux 还不知道如何做到这一点。
答案2
由于您已经尝试了许多解决方案但没有成功,所以我认为您的硬件对于您的内核来说太新了...
尝试更新的内核(或者只是具有更新内核的实时发行版,例如 ubuntu 16.10 具有 4.8...)