无法控制屏幕亮度 - ACPI 错误 - Lenovo Legion Y540

无法控制屏幕亮度 - ACPI 错误 - Lenovo Legion Y540

我在 4 个不同的 Linux 发行版(mint、manjaro、debian、ubuntu)上观察到了相同的行为,它们在启动时显示 ACPI 错误(图片链接:https://i.stack.imgur.com/RtxgL.jpg编辑:这似乎是一个不相关且无害的错误,已报告并标记为无法修复https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1864895),然后系统运行正常,但我无法控制停留在 100% 的屏幕亮度。这是一个大问题,因为我晚上工作,300 尼特的屏幕会灼伤我的眼睛,使笔记本电脑无法使用,同时还会耗尽电池。在网上查找,这是一个常见问题:

亮度控制键在联想 Y540 上不起作用,但 xrandr 起作用
https://www.reddit.com/r/Ubuntu/comments/cxygkp/brightness_not_working_on_ubuntu18_nvidia_rtx/
联想 Y540 亮度调节不起作用 https://www.reddit.com/r/pop_os/comments/ckkqod/cannot_change_screen_brightness_lenovo_legion_y540/

但每个人似乎都以同样的方式“解决”了他们的问题:将 BIOS 设置从独立显卡更改为可切换显卡。遗憾的是,我的处理器是 i7-9750HF 变体,它不包含集成 GPU(这就是 F 部分的含义)。这意味着我只有 RTX 2060 独立 GPU,我无法选择可切换显卡,因为没有其他可切换的显卡。

以下是我尝试过但无效的一些方法的列表:

  • 测试的 Linux 内核:5.4、5.3、5.0、4.15

  • 测试的 Nvidia 驱动程序:nouveau、430、435、440

  • BIOS 版本:BHCN36WW、BHCN35WW

  • 尝试更新/etc/default/grub acpi_backlight=<all different options>,但没有成功。

  • xbacklight什么也没做。

  • ls /sys/class/backlight仅显示 acpi_video0

  • sudo tee /sys/class/backlight/acpi_video0/brightness <<< 5没有效果

  • 唯一可行的办法是,xrandr --output DP-2 --brightness 1但这不是一个解决方案,因为背光亮度实际上并没有改变,它只是提高了伽玛。这是一种软件解决方法,实际上并不控制硬件。它也不会对电池寿命有所帮助。

我尝试了所有我能找到或想到的解决方案,但都不起作用。这听起来像是可以通过 BIOS 更新来解决的问题,因为它似乎与 BIOS 和 ACPI 有关,但我不知道 BIOS 更新何时或是否会到来,操作系统方面是否有可以解决这个问题的方法?

如果我需要提供任何额外的信息,请告诉我,并提前感谢您的帮助和耐心!

系统信息转储:

  • 处理器:i7-9750HF
  • 显卡:Nvidia RTX 2060
  • 屏幕:1920x1080,300 尼特,144 Hz
  • 笔记本电脑:联想 Legion Y540-15IRH
  • 型号名称:81SX
  • BIOS 版本:BHCN36WW

PS:重新打开安全启动后亮度控制问题就会消失。但遗憾的是,其他问题出现了,显然是因为它加载了 nouveau 驱动程序,但没有告诉你它加载了(gui 会说你正在使用专有驱动器,但 inxi -Gx 会告诉你你正在使用 nouveau 驱动器的真相)。我本来想尝试将其列入黑名单,但结果发现它已经被列入黑名单,而且还是加载了它。

答案1

我注意到您还没有尝试在 xorg.conf 中启用背光。 请参阅 archwiki 中的“启用亮度控制”提示。

我有可切换显卡,但由于 Windows 双启动,我将 BIOS 设置为独立显卡。所以我也不得不寻找另一种解决方案。

$ uname -a
Linux fifi 5.3.0-42-generic #34-Ubuntu SMP Fri Feb 28 05:49:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux


$ less /etc/X11/xorg.conf
Section "Device"
        Identifier "Nvidia Card"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BoardName "GeForce GTX 1650"
    Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection

$ ls /sys/class/backlight/nvidia_0/
power/  actual_brightness  bl_power  brightness  device@  max_brightness  subsystem@  type  uevent

答案2

我也有同样的联想 Legion Y540 笔记本电脑。这个问题现在已在新更新中修复,但您必须将 BIOS 中的图形选项从 切换Discrete GraphicsSwitchable Graphics

您还必须更新 grub 配置(即编辑文件/etc/default/grub然后运行sudo update-grub),如下所示:

GRUB_CMDLINE_LINUX_DEFAULT="acpi_osi=linux acpi_backlight=intel"

确认acpi_backlight=intel不应将其设置为vendor。将其设置为 会vendor停止功能键的工作。

答案3

我尝试了这里写的所有方法,但都没有成功。不过,我编写了一个小型 Python GUI 脚本,可以通过 GUI 更改亮度。

请检查 https://github.com/momen84/brightness_controller

答案4

该问题已在 Linux 内核 5.16.0 中修复(无需修改)(在使用 liquorix 内核的 Ubuntu 21.10 中测试)。

细节:https://gitlab.freedesktop.org/drm/amd/-/issues/1671

相关内容