NVIDIA背光亮度问题


8

问题

当我按Fn + Increase / Descrese亮度时,Unity会显示控件,但是什么也没发生。在控制台中,X服务器运行时亮度也无法正常工作。

经检查的解决方案

我已经在google中尝试过此问题的所有可能解决方案,但没有任何效果:

  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 /亮度
  7. 将linux内核从4.8更新到4.10和4.12
  8. 从旧矩阵替换EDID(会破坏所有内容)
  9. setpci -v -H1 -s 00:01.0 3e.W = 0,然后使用Fn +键更改背光。
  10. xrandr-输出DP-0-亮度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)

然而!

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

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

更新! 两年后,我了解到问题出在lightdm(或X服务器)内部。当我停下来时一切都很好...


也许最好的方法是378驱动程序,并使用它来修复暂停/恢复错误。有哪些错误?
WinEunuuchs2Unix

Unity界面的错误-窗口和菜单边界周围的一些瑕疵。有描述-bugs.launchpad.net/ubuntu/+source/unity/+bug/1675597
Max Tkachenko

我认为有人在一两个月前说过它已在381版本或类似版本中得到修复。我认为是谁说的askubuntu.com/users/15811/rinzwind,但我认为是askubuntu.com/users/167850/pilot6
WinEunuuchs2Unix

1
臭虫以暂停是固定的,但背光不工作:(我已经尝试381..and许多其他版本..
最大特卡琴科

您能用以下输出更新您的问题吗?for i in /sys/class/backlight/*; do echo $i; cat $i/brightness; cat $i/actual_brightness; cat $i/max_brightness; done
WinEunuuchs2Unix

Answers:


8

更新2019年6月16日

上个月,在报告问题2年后,OP发现LightDM(Ubuntu Unity Desktop Manager)是问题的根源。也就是说,除了下面的列表之外grub,还可以尝试另一个参数:

video.use_native_backlight=1

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


原始答案

最终参考似乎是在Arch Linux中,该站点我已多次访问以解决棘手的问题。

内核参数

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

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

acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native

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

尝试使用acpi_backlight=xxxxgrub内核参数表行中的每个选项

什么xbacklight时候不行

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

在某些系统上,键盘上的亮度键可以正确修改acpi界面中的值/sys/class/backlight/acpi_video0/actual_brightness如我们在注释中所尝试),但是屏幕的亮度不会改变。来自桌面环境的亮度小程序(即,Ubuntu亮度设置滑块)也可能显示更改无效。

如果您已经测试了建议的内核参数并且只能xbacklight工作,那么您可能会遇到BIOS与内核驱动程序不兼容的情况。

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

解决方法是每次使用inotify内核api来触发更改xbacklight/sys/class/backlight/acpi_video0/actual_brightness

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

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

#!/bin/sh

path=/sys/class/backlight/acpi_video0

luminance() {
    read -r level < "$path"/actual_brightness
    factor=$((100 / max))
    printf '%d\n' "$((level * factor))"
}

read -r max < "$path"/max_brightness

xbacklight -set "$(luminance)"

inotifywait -me modify --format '' "$path"/actual_brightness | while read; do
    xbacklight -set "$(luminance)"
done

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


专用论坛

为了获得更多支持,有专门的Linux Graphics论坛:


谢谢您这么大的回答!1)在您的grub内核参数表行上尝试每个acpi_backlight = xxxx选项---是的,我已经尝试了很多次而没有任何结果。
Max Tkachenko

不幸的是,xbacklight也不起作用:(
Max Tkachenko

我认为这是一个驱动程序错误。.并且我需要nvidia开发团队的人:)
Max Tkachenko

如果我没记错的话,通常在linux驱动程序上工作的nVidia团队刚刚调动下来,将来几天可能会不再有相同的linux支持。
Ben-Nabiy Derush

@ ben-NabiyDerush我记得去年Nvidia举办了一个论坛,专门旨在找出用户遇到的问题并与他们合作解决问题。我相信Linux是他们的重点。我今天再次去寻找论坛,但找不到。我的确找到了另外两个支持论坛,并用它们更新了答案。
WinEunuuchs2Unix

2

嗨,我很抱歉,如果这不是聪明的人已经排除的东西,因为我对命令行还不熟悉,但是重新安装后我遇到了这个问题,上述所有解决方案都对我不起作用(MSI pe706QE nvidia 960m )。

我的编辑/etc/default/grub者:

gksudo 'insert editor of choice not in quotes' /etc/default/grub

并注意到该nomodeset文件仍位于文件的底部(我不记得要永久添加它)并删除了它。

保存文件并运行:

sudo update-grub 

所有人都可以使用快捷键#noobie再次使用,希望这可以对某人有所帮助。


2

我有一台Sony VPCEH笔记本电脑,我遇到了同样的问题。我尝试了适用于我的解决方案:http//ubuntuforums.org/showthread.php? t= 2221452#6简要地说:具有root特权,创建文件/usr/share/X11/xorg.conf.d/20- nvidia.conf具有以下内容

“设备”标识部分“设备0”驱动程序“ nvidia”供应商名称“ NVIDIA Corporation”板名称“ GeForce 410M”选项“ RegistryDwords”“ EnableBrightnessControl = 1” EndSection

注销并再次登录以进行测试。并轻轻添加:“如果出现问题,只需删除该文件并重新启动即可恢复系统。” 但是我不需要那个添加。注销并登录后,亮度控件再次开始工作。我希望它也对您有帮助...

或与我的笔记本电脑索尼VPCEJ2C5E下的ubuntu 16.04一起工作,但与nvidia 378.13一起工作后,我暂时没有使用390.25驱动程序。

我可以在Ubuntu 12.04上的Lenovo W530上使用亮度键。如今,X会自动进行自我配置,因此创建xorg.conf文件可能会使您的系统不灵活。相反,您可以在/usr/share/X11/xorg.conf.d/中的文件中添加一个节,并且X将在自动生成的配置中包括该节。因此,要使屏幕亮度键与Nvidia图形卡一起使用,请在xorg.conf.d目录中创建一个文件,例如:sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia-brightness.conf将以下内容粘贴到文件中:

“设备”标识节“设备0”驱动程序“ nvidia”供应商名称“ NVIDIA Corporation”板名“ Quadro K1000M”选项“ RegistryDwords”“ EnableBrightnessControl = 1” EndSection

注销并重新登录,或重新启动,您的亮度键现在应该可以工作了!

在此处输入图片说明


2

根据wineunuuchs2unix的请求,我在这里重新发布对类似问题的回答

尝试 acpi_osi=

几天前升级到Bionic时,我遇到了类似的问题(我有NVIDIA GeForce GTX 1060 Mobile,但对我来说/sys/class/backlight却显示为空)。

在完成背光调试过程时,我通过内核参数发现了一种解决方法:

  • 在“软件和更新”→“其他驱动程序”中,确保已选择nvidia-driver-396(或最新的元软件包;在撰写本文时,最新的是396)。
  • /etc/default/grub通过运行命令进行编辑sudo nano /etc/default/grub(可以选择替换nano为您喜欢的编辑器)。
  • 找到设置的行GRUB_CMDLINE_LINUX_DEFAULT并将其添加acpi_osi=在引号的末尾。在大多数系统上,这将使您保持在线阅读GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="
  • 保存并退出编辑器。
  • 运行命令sudo update-grub并重新启动。

(如果这些步骤不起作用,请通过重复该过程来恢复设置,但是acpi_osi=在编辑GRUB配置时将其删除。)

如果您可以选择的话,另一种解决方法是切换到主线内核。特别是,我在主线内核版本4.17下看不到该问题。

(错误报告在这里。)


1
不幸的是,这没有帮助:(
Max Tkachenko

1

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

sudo backlight.sh "brightness-level-number"

克隆存储库,

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


谢谢!不幸的是,它使用了“ echo $ 1> / sys / class / backlight / 0 / brightness;”。这与我在下面的“ 6.更改/ sys / class / backlight /亮度”中写的相同
Max Tkachenko

这不是/sys/class/backlight/0/brightness正确的路径/sys/class/backlight/acpi_video0/brightness
endrias

或其他具有专用图形硬件的系统的类似路径。
endrias

无论如何,它都不起作用:(
Max Tkachenko

1

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

sudo apt-get install-重新安装xbacklight

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

xbacklight -inc 20#将背光增加20%

xbacklight -dec 30#减少30%

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

xbacklight -get#获取当前级别

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


1
抱歉,但是xbacklight在已检查的解决方案列表中。.它不起作用:(
Max Tkachenko

1

一个程序解决所有这些问题!

我有GTX 1060 6Gb台式机Ubuntu 16.04

无需执行任何操作,只需在ppa上安装亮度控制器即可:

https://launchpad.net/~apandada1/+archive/ubuntu/brightness-controller/

为我解决了这个问题(请参见屏幕截图),但是它与redshift冲突,因此您需要删除redshift

您可以将其添加到启动中以方便使用


1
谢谢您的回答。但是我认为这是不对的,文本来自站点:“这是一个基于软件的调光器”。它不控制你的背光功率,它与RGB曲线仅软件解决方案:(一点点后,我会尽力的。
最大特卡琴科

试试看,它确实有效:)
Go MasterZero

我已经测试过了 正如我所说的是软件解决方案,它不能节省电池,并且会损坏图片颜色。xrandr-输出DP-0-亮度$ VALUE ---做同样的事情。
Max Tkachenko

感谢您的反馈,GUI仍然很不错
Go MasterZero

1

我终于解决了这个问题,原始海报列出的所有在线解决方案都不适合我。解决问题的方法是转到/ etc / default / grub并在以下行中:GRUB_CMDLINE_LINUX_DEFAULT

新增:

“ acpi_osi =”

而且也不要在其上使用“ nomodeset”。Ppl最初添加了nomodeset来解决软件渲染问题,但这实际上导致Linux无法识别Nvidia驱动程序。

最后,确保您进入Linux开始菜单驱动程序管理器,并将Nvidia驱动程序更新为430或更高版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.