AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 691614
Accepted
Alexandru Dinu
Alexandru Dinu
Asked: 2022-02-22 11:03:42 +0800 CST2022-02-22 11:03:42 +0800 CST 2022-02-22 11:03:42 +0800 CST

仅在系统从睡眠状态恢复后更改亮度才有效

  • 772

我有一台在内核 5.17 上运行 Manjaro 21.2.3 的 Lenovo Legion Slim 7 笔记本电脑(15ACH6)。

我面临的问题是,在干净启动时,我无法更改系统亮度(使用 Fn 键或更改brightnessin的实际值/sys/class/backlight)。然而,在让系统进入睡眠状态然后恢复之后,亮度控制就可以正常工作了——尽管亮度级别没有被保留。

内容/sys/class/backlight:

amdgpu_bl1 -> ../../devices/pci0000:00/0000:00:08.1/0000:05:00.0/backlight/amdgpu_bl1/
nvidia_0 -> ../../devices/pci0000:00/0000:00:01.1/0000:01:00.0/backlight/nvidia_0/
nvidia_wmi_ec_backlight -> ../../devices/pci0000:00/PNP0C14:00/wmi_bus/wmi_bus-PNP0C14:00/603E9613-EF25-4338-A3D0-C46177516DB7/backlight/nvidia_wmi_ec_backlight/

实际亮度值写入文件,nvidia_wmi_ec_backlight/brightness其他2个保持不变。

加载的 nVidia 内核模块:

nvidia_uvm           2650112  0
nvidia_drm             73728  2
nvidia_modeset       1163264  3 nvidia_drm
nvidia_wmi_ec_backlight    16384  0
nvidia              39133184  99 nvidia_uvm,nvidia_modeset
wmi                    40960  3 nvidia_wmi_ec_backlight,wmi_bmof,ideapad_laptop

在小于 5.16 的内核上,该nvidia_wmi_ec_backlight模块不存在,我无法更改亮度。我想知道是什么原因导致该模块仅在从 sleep 恢复后才能正常运行。

我怀疑某种竞争条件或不正确的初始化。为了理解这种行为,我应该做什么样的调查?


内核模块的源代码在这里:nvidia-wmi-ec-backlight.c.


输出inxi -Fz:

System:
  Kernel: 5.17.0-1-MANJARO x86_64 bits: 64 Desktop: GNOME 41.3
    Distro: Manjaro Linux
Machine:
  Type: Laptop System: LENOVO product: 82K8 v: Legion S7 15ACH6
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: NO DPK serial: <superuser required>
    UEFI: LENOVO v: HACN27WW date: 08/02/2021
Battery:
  ID-1: BAT0 charge: 64.3 Wh (90.6%) condition: 71.0/71.0 Wh (100.0%)
CPU:
  Info: 8-core model: AMD Ryzen 9 5900HX with Radeon Graphics bits: 64
    type: MT MCP cache: L2: 4 MiB
  Speed (MHz): avg: 1526 min/max: 400/4680 cores: 1: 1397 2: 1397 3: 1397
    4: 1395 5: 1396 6: 1395 7: 1397 8: 1397 9: 1397 10: 3482 11: 1395 12: 1396
    13: 1396 14: 1395 15: 1397 16: 1397
Graphics:
  Device-1: NVIDIA GA106M [GeForce RTX 3060 Mobile / Max-Q] driver: nvidia
    v: 510.47.03
  Device-2: AMD Cezanne driver: amdgpu v: kernel
  Device-3: Syntek Integrated Camera type: USB driver: uvcvideo
  Display: x11 server: X.org 1.21.1.3 driver: loaded: amdgpu,ati,nvidia
    unloaded: modesetting,nouveau,radeon resolution: <missing: xdpyinfo>
  OpenGL: renderer: AMD RENOIR (DRM 3.44.0 5.17.0-1-MANJARO LLVM 13.0.0)
    v: 4.6 Mesa 21.3.5
Audio:
  Device-1: NVIDIA driver: snd_hda_intel
  Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor driver: N/A
  Device-3: AMD Family 17h HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.17.0-1-MANJARO running: yes
  Sound Server-2: PulseAudio v: 15.0 running: yes
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb
  Report: rfkill ID: hci0 rfk-id: 4 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: see --recommends
Drives:
  Local Storage: total: 953.87 GiB used: 169.04 GiB (17.7%)
  ID-1: /dev/nvme0n1 vendor: SK Hynix model: HFS001TDE9X084N
    size: 953.87 GiB
Partition:
  ID-1: / size: 905.83 GiB used: 169.04 GiB (18.7%) fs: ext4
    dev: /dev/nvme0n1p3
  ID-2: /boot/efi size: 511 MiB used: 288 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: partition size: 32 GiB used: 0 KiB (0.0%)
    dev: /dev/nvme0n1p2
Sensors:
  System Temperatures: cpu: N/A mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 452 Uptime: 8m Memory: 30.79 GiB used: 3.68 GiB (12.0%)
  Shell: Zsh inxi: 3.3.12

更新:似乎在干净启动时我可以使用amdgpu_bl1控制器控制亮度:

echo 50 | sudo tee /sys/class/backlight/amdgpu_bl1/brightness

从睡眠中恢复后,开始nvidia_wmi_ec_backlight负责。

nvidia suspend
  • 2 2 个回答
  • 309 Views

2 个回答

  • Voted
  1. Best Answer
    Alexandru Dinu
    2022-03-17T10:40:51+08:002022-03-17T10:40:51+08:00

    我联系了该模块的作者 Daniel Dadap,nvidia-wmi-ec-backlight他提出了一个补丁来解决我的问题。

    您可以在此处关注邮件列表中的讨论: https ://patchwork.kernel.org/project/platform-driver-x86/patch/[email protected]/

    • 1
  2. Felicia
    2022-02-22T14:12:18+08:002022-02-22T14:12:18+08:00

    作为后备,您可以使用 xrandr 从命令行控制亮度。假设输出设备名为 DP-1(运行 xrandr 找出),它可以设置为:

    xrandr --output DP-1 --brightness .8
    

    这会将亮度设置为 80%。您还可以创建一个 Bash 函数来设置亮度,例如:

    brightness() {
        DEV=$(xrandr |grep ' connected' |awk '{print $1}')
        (($1 >= 15 && $1 <= 115)) &&
           xrandr --output "${DEV}" --brightness \
             $(awk -v n="$1" 'BEGIN { printf "%.2f", n / 100 }') ||
        echo "invalid input"
     }
    

    这将接受 15 到 115 之间的值作为亮度级别(以允许轻微的过饱和伽马):

    brightness 100   # full brightness
    brighness 40    # 40%, very dim
    brightness 105  # over-saturated
    
    • 0

相关问题

  • 阻止进程在 GPU 上运行

  • Steam 无法在 Arch Linux 上启动 - 可能是 libGL 错误(nvidia)

  • Debian 9 上的 CUDA - 工具包在哪里?

  • 是否可以在 ElementaryOS 或 Deepin 上安装和使用 CUDA Toolkit?

  • 安装nvidia驱动后,电脑锁定后死机,连tty都进不去

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve