Legion 5 pro 亮度控制在带有 nvidia 驱动程序 460 的 ubuntu 20.04 上不起作用

pau*_*usx 7 nvidia backlight brightness drivers 20.04

我的笔记本电脑似乎处于最大亮度,除了显示滑块的弹出通知外,亮度控制滑块/Fn 键对屏幕亮度没有影响。这个问题对于 Legion 系列(或其他一些笔记本电脑)来说并不是什么新鲜事,但与其他(旧)legion 5 笔记本电脑不同,对于 Ubuntu 20.04.2,没有一个潜在的解决方案对我有用。在 Ubuntu 和 Manjaro 的不同变体上有针对完全相同的笔记本电脑的解决方案,但在普通的 Ubuntu 20.04 上仍然不起作用,这就是为什么它有点令人困惑。

所以我的笔记本电脑的配置是AMD 5800H + Nvidia RTX3070。我目前使用 ubuntu 20.04.2 使用主线内核 5.10.0-051000-generic。我已经添加了 Nvidia 图形 PPA,目前在驱动程序 v460.67 上。我处于 dGPU 模式(显卡直接连接到屏幕)。这是 conf 位置:

 /usr/share/X11/xorg.conf.d$ ll
total 36
drwxr-xr-x 2 root root 4096 Apr  6 21:34 ./
drwxr-xr-x 5 root root 4096 Feb  9 19:50 ../
-rw-r--r-- 1 root root   92 Okt 22  2019 10-amdgpu.conf
-rw-r--r-- 1 root root  239 Apr  6 20:34 10-nvidia-brightness.conf
-rw-r--r-- 1 root root  206 Apr  6 21:34 10-nvidia.conf
-rw-r--r-- 1 root root 1350 Jan 17 10:13 10-quirks.conf
-rw-r--r-- 1 root root   92 Okt 22  2019 10-radeon.conf
-rw-r--r-- 1 root root 1429 Aug 13  2019 40-libinput.conf
-rw-r--r-- 1 root root 3458 Mär 11  2020 70-wacom.conf
Run Code Online (Sandbox Code Playgroud)

以下是相关文件的输出:

/usr/share/X11/xorg.conf.d$ cat 10-nvidia-brightness.conf 
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce RTX 3070 Laptop GPU"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
EndSection

/usr/share/X11/xorg.conf.d$ cat 10-nvidia.conf 
Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
EndSection
Run Code Online (Sandbox Code Playgroud)

注意:即使对于 10-nvidia.conf,我也尝试过,Option "RegistryDwords" "EnableBrightnessControl=1"但仍然没有结果。

我已将新司机列入黑名单:

cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf 
blacklist nouveau
options nouveau modeset=0
Run Code Online (Sandbox Code Playgroud)

还添加了以下内容,以便 Nvidia 驱动程序首先加载:

cat /etc/initramfs-tools/modules
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax:  module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod

# Other settings...
nvidia
nvidia-drm
nvidia-modeset
Run Code Online (Sandbox Code Playgroud)

我曾尝试向 grub 添加参数,例如acpi_backlight=vendor, acpi_backlight=video, acpi_backlight=none, acpi_backlight=nativevideo.use_native_backlight=1但它们都不起作用。

因此,如果有人需要,这里有一些相关的输出:

sudo lshw -C display
  *-display                 
       description: VGA compatible controller
       product: NVIDIA Corporation
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: iomemory:fa0-f9f iomemory:fc0-fbf irq:76 memory:d0000000-d0ffffff memory:fa00000000-fbffffffff memory:fc00000000-fc01ffffff ioport:2000(size=128) memory:d1080000-d10fffff

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

驱动程序中还有一个错误https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-455/+bug/1905591导致使用不同笔记本电脑的人遇到类似问题,但对于某些人来说,他们的通过将模块添加到 /etc/initramfs-tools/modules 解决了问题,但对于某些问题仍未解决。现在是另一件事,我看到两份报告使用相同的笔记本电脑,正如我提到的,通过执行上述步骤的一些组合,它正在为他们工作:

  1. 这家伙使用 Regolith Linux 1.5.3 https://www.reddit.com/r/GamingLaptops/comments/ls9k5r/legion_5_pro_other_info_64gb_ram_upgrade_linux/

  2. 这家伙用 Manjaro https://www.reddit.com/r/LenovoLegion/comments/miqbv4/lenovo_legion_5_pro_actual_linux_experience_and/

我也尝试过 Kernel 5.11.11,但它仍然不起作用,最后一件事,更改滑块或按下按钮会更改文件/sys/class/backlight/nvidia_0/brightness的值,其他两个文件始终显示:

cat actual_brightness
0
cat max_brightness 
100
Run Code Online (Sandbox Code Playgroud)

所以这就是我尝试和测试的一切。如果有人对这个问题有任何新的想法或指示,我将不胜感激。

最后一件事,我目前正在使用xrandr --output DP-4 --brightness 0.5来拯救我的眼睛。如果有人可以评论这是否有助于(以任何方式)减少硬件级别屏幕背光的压力,将会有所帮助,因为它通常处于最大亮度。

gia*_*moc 8

我有相同的 Legion,目前我设法按照本指南控制亮度(非常感谢 u/fkorol,我使用内核 5.11.16): https: //www.reddit.com/r/linux_gaming/comments /mmptqi/lenovo_legion_5_ubuntu_2004_final_guide_dream/

我在这里报告上面链接中所写内容的主要部分,以防它消失:

第一步:在 BIOS 中(lenovo 屏幕上的 F2)必须设置为 HYBRID 模式。

1-安装主线软件将内核版本升级到最新的5.11.x版本:

sudo add-apt-repository ppa:cappelikan/ppa

须藤apt更新

sudo apt安装主线

然后打开主线并安装最新版本(撰写本文时为 5.11.11)。

重新启动笔记本电脑

2- 对于 5.11.11 或更高版本,编辑 grub 并添加条目 amdgpu.backlight=0

须藤纳米 /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="安静飞溅 amdgpu.backlight=0"

sudo 更新 grub

再次重新启动笔记本电脑

这就是全部!在 5.11 中,触摸板可以原生工作,通过对 grub 的调整,亮度可以在混合模式下完美工作。

我还添加了一些注释:

  • 在 BIOS 设置中始终使用“动态”模式

  • 在第 1) 点和第 2) 点之间,您可以安装 nvidia-drivers-460

  • 如果您安装 nvidia 驱动程序,安装后您应该启动:

    sudo prime-select 按需

  • 在此状态下,您的计算机将使用 iGPU 进行所有活动。如果您想使用 dGPU 执行任务,您可以在命令之前定义这些变量 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

例如,您可以使用以下命令在 dGPU 上启动 glxheads 命令:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxheads
Run Code Online (Sandbox Code Playgroud)