解决 Linux 桌面亮度调整不工作

Posted user-for-once

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 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,系统出现亮度滑块,亮度快捷键有效.

 

 

别的情况还是看上面的思路,双显卡用户尽量去想办法屏蔽掉独显,除非说你的独显可以单独工作.

总的来说没有必要使用任何亮度插件,调整起来麻烦且浪费精力.

  

以上是关于解决 Linux 桌面亮度调整不工作的主要内容,如果未能解决你的问题,请参考以下文章

「Bug」联想拯救者 R9000P 安装 Linux 后无法调整显示器亮度

Mint linux中调整屏幕亮度的方法

Win10下怎样通过设置NVIDIA显卡调整显示器的亮度

Fedora桌面系统Idea中的部分中文无法显示解决

如何通过 Swift 使用 NSSlider 为 NSImage 类调整亮度?

ISO调整和亮度公式的代码实现