nvidia背光亮度问题

Max*_*nko 14 nvidia xorg backlight brightness 16.04

问题

当我按下 Fn+Increase/Descrese 亮度时,Unity 显示控制,但没有任何反应。在 X 服务器运行时,控制台亮度也不起作用。

检查的解决方案

我已经在谷歌中尝试了这个问题的所有可能的解决方案,但没有任何效果:

  1. 在 grub 中写入 acpi_backlight
  2. 使用 apt purge nvidia* 重新安装驱动程序
  3. 在 xorg.conf 中写入“EnableBrightnessControl=1”
  4. 安装 nvidia-375.66、nvidia-378.13、381.22、384.47
  5. “xbacklight -set X”不起作用
  6. 改变 /sys/class/backlight/brightness
  7. 将 linux 内核从 4.8 更新到 4.10 和 4.12
  8. 从旧矩阵替换 EDID(它破坏了一切)
  9. setpci -v -H1 -s 00:01.0 3e.W=0 然后使用 Fn+键更改背光。
  10. xrandr --output DP-0 --brightness 0.5 --- 不好的解决方案

我的系统和情况

我之前在笔记本电脑中使用过 N173HHE-G32 显示矩阵,一切正常。但是今天我把它换成了B173HAN01.2,这个问题就开始了。在 Windows 10 上,我通过从官方 MSI 网站在 nvidia-376 上重新安装驱动程序解决了这个问题。

所以,我可以看到下一个序列:在笔记本电脑启动时亮度最大,然后它是最小(并且正在工作),而“initramfs ...”文本显示在控制台中。并且在 X 服务器启动后,亮度再次达到最大值(损坏)。当 X 服务器停止时,亮度又开始工作了!

MSI GT73VR 7RF, Ubuntu 16.04.2 LTS, NVidia GeForce GTX1080, B173HAN01.2 display matrix

uname -a 
4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1be0 (rev a1)
Run Code Online (Sandbox Code Playgroud)

然而!

但是当我使用 nvidia-378 时它起作用了!不幸的是,378 在 Unity 界面中的挂起模式后有一个严重的错误 :(((

请帮忙,我的眼睛在流血(对他们来说很亮),我不知道该怎么办......

更新! 两年后,我明白问题出在 lightdm(或 X 服务器)内部。当我停止它时一切正常......

Win*_*nix 13

2019 年 6 月 16 日更新

上个月,也就是问题报告两年后,OP 发现 LightDM(Ubuntu Unity 桌面管理器)是问题的根源。也就是说,除了下面的列表,还有另一个grub可以尝试的参数:

video.use_native_backlight=1
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此答案


原答案

最终参考似乎是在Arch Linux 中,我曾多次访问该站点来解决难题。

内核参数

看看你cat /proc/cmdline没有传递额外的内核参数。上面的链接指出:

有时,由于不同的主板实现和 ACPI 怪癖,ACPI 无法正常工作。这包括一些具有双显卡的笔记本电脑(例如带有 Intel/AMD 集成 GPU 的 Nvidia/Radeon 专用 GPU)。在 Nvidia Optimus 笔记本电脑上,内核参数 nomodeset 会干扰调整背光的能力。此外,acpi_video0 backlight即使ACPI已经存在(例如intel_backlight),有时也需要注册自己的,这可以通过添加以下内核参数之一来完成:

acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native
Run Code Online (Sandbox Code Playgroud)

如果您发现改变acpi_video0背光实际上并没有改变亮度,您可能需要使用acpi_backlight=none.

尝试acpi_backlight=xxxxgrub 内核参数行上的每个选项

什么xbacklight时候不起作用

您已经尝试过xbacklight,上面的链接解决了这个问题:

在某些系统上,键盘上的亮度热键正确修改了 acpi 接口的值/sys/class/backlight/acpi_video0/actual_brightness正如我们在评论中尝试过的那样),但屏幕亮度没有改变。桌面环境中的亮度小程序(即Ubuntu 亮度设置滑块条)也可能显示更改无效。

如果您已经测试了推荐的内核参数并且只能xbacklight工作,那么您可能面临 BIOS 和内核驱动程序之间的不兼容问题。

在这种情况下,唯一的解决方案是等待 BIOS 或 GPU 驱动程序制造商的修复。

一种解决方法是使用inotify内核 apixbacklight每次/sys/class/backlight/acpi_video0/actual_brightness更改值时 触发。

首先安装inotify-tools。然后围绕 inotify 创建一个脚本,该脚本将在每次启动时或通过自动启动启动。

以下是您需要创建的脚本,称为: /usr/local/bin/xbacklightmon

video.use_native_backlight=1
Run Code Online (Sandbox Code Playgroud)

上面的链接中有更多内容,但这些步骤是一个很好的起点。


专用论坛

对于额外的支持,有专门的 Linux 图形论坛:


end*_*ias 1

克隆此存储库并将脚本粘贴backlight.sh/bin. 然后使其可执行,然后打开根终端并执行以下命令。

sudo backlight.sh "brightness-level-number"

克隆存储库,

git clone https://github.com/el-beth/backlight.sh.git


dsc*_*001 1

您可以在终端中安装 xbacklight 命令包:

sudo apt-get install --reinstall xbacklight

安装后,您可以使用命令 xbacklight,如下所示:

xbacklight -inc 20 # 增加背光20%

xbacklight -dec 30 # 减少 30%

xbacklight -set 80 # 设置为最大值的 80%

xbacklight -get # 获取当前级别

命令 xbacklight 应该以这种方式工作。