解决 Linux 桌面亮度调整不工作
工作原因开始使用Ubuntu.桌面环境为GNOME,不过亮度调整和桌面环境没多大关系.
思路:
不管是GNOME还是Unity,都会尝试自己去接管亮度调整,也就是去 /sys/class/backlight下面去找brightness.所以说亮度无法调整大概可以归类到两种情况:
1.sys/class/backlight/下面是空的,多见于英伟达独显以及某些逗比笔记本.
2.sys/class/backlight/下面有多个,多见于双显卡笔记本
既然都想调亮度了,肯定是把linux作为主力系统使用的,所以先安装好闭源驱动,再说调整亮度的事情.
笔者的情况是Thinkpad P51,使用discreted graphic,核显完全禁用,输出与运算都由NVIDIA独显负责.故属于情况1,这个情况下NVIDIA驱动接管了亮度调整,但默认不开启亮度调整功能.解决的话,需要开启NVIDIA的亮度调整handler,怎么搞下面再说.
总体的思路总结起来,大概就是想办法让/sys/class/backlight下面只有一个brightness,并且是有效的那一个.
工作:
情况1:对于NVIDIA独显,加核心参数把亮度调整handler开启就行了.
对于非NVIDIA独显的,在grub中的内核启动参数加上 acpi_osi=Linux 基本可以解决问题.
情况2:这个情况考虑禁掉独显,或者去用bumblebee,但最终的思路同上,想办法只留一个有效的brightness在/sys/class/backlight中,哪个有效请自行 echo 到brightness中改值测试
笔者的情况:
NVIDIA独显,Ubuntu 18.04,操作如下:
1.安装至少387版本的NVIDIA闭源驱动,笔者使用390.24(亮度调整handler 从387开始作为beta性功能提供,默认关闭)
2.在moprobe.conf中给nvidia kernel模块加参数,这个文件在哪自己用whereis找吧.把如下内容加进去
options nvidia Nvreg_EnableBacklightHandler=1
3.重新加载kernel参数,也就是让上一步的操作生效
# update-initramfs
4.重启电脑,亮度就应该正常了,检查/sys/class/backlight,下面有唯一的nvidia_0,系统出现亮度滑块,亮度快捷键有效.
别的情况还是看上面的思路,双显卡用户尽量去想办法屏蔽掉独显,除非说你的独显可以单独工作.
总的来说没有必要使用任何亮度插件,调整起来麻烦且浪费精力.