内核参数

内核参数

问题

当我按下 Fn+增加/减少亮度时,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/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)

然而!

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

请帮帮我,我的眼睛里都是血(它们看起来很亮)我不知道该怎么办......

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

答案1

2019 年 6 月 16 日更新

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

video.use_native_backlight=1

这个答案了解更多信息。


原始答案

最终的参考似乎是Arch Linux我曾多次访问这个网站来解决难题。

内核参数

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

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

acpi_backlight=video
acpi_backlight=vendor
acpi_backlight=native

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

acpi_backlight=xxxx尝试grub 内核参数行中的每个选项

何时xbacklight不起作用

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

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

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

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

一种解决方法是使用内核 API 在每次值改变时 inotify触发。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 图形论坛:

答案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 下看到该问题。

(已报告错误这里

答案3

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

我正在编辑/etc/default/grub

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

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

保存文件并运行:

sudo update-grub 

所有工作都再次使用快捷键#noobie fail 希望这可以帮助到某人。

答案4

我有一台 Sony VPCEH 笔记本,也遇到了同样的问题。我尝试了这个对我有用的解决方案:http://ubuntuforums.org/showthread.php?t=2221452#6

简要地/usr/share/X11/xorg.conf.d/20-nvidia.conf:使用root权限,创建包含以下内容的文件

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 410M"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
EndSection

注销并重新登录进行测试。上面的链接还指出:“如果出现问题,只需删除该文件并重新启动即可恢复系统”,但我不需要这个附加功能。

注销并登录后,亮度控制再次开始工作。希望它也能帮到你……

或者这个可以在我的笔记本电脑 sony 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 将以下内容粘贴到文件中:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro K1000M"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
EndSection

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

在此处输入图片描述

相关内容