环境:ubuntu 12.10 x64,bios(已尝试过 2.06、2.50)。W530 2436CTO、3720QM、K1000M。
问题描述如下(乍一看可能重复)
安装 Nvidia 驱动(x-updates 上的 Nvidia 当前版本,或 Nvidia 下载站点上的 304.32~311.32 不同版本)后屏幕背光一直处于最高级别。更改值/sys/class/backlight/acpi_video/brightness
没有任何效果。似乎亮度控制完全不起作用。
我曾尝试将acpi=thinkpad
, acpi=vendor
,添加acpi=legacy
到 Linux 内核参数中,但没有成功(应该是的,因为从一开始我就能看到thinkpad_acpi
mod 已加载)。
我也尝试过修改/usr/share/X11/xorg.conf.d
以包含一个conf文件来包含
Option "RegistryDwords" "EnableBrightnessControl=1" (either manually, or via modify /usr/share/ubuntu-drivers-common/quirks/
允许包含参数...有点奇怪,在提供的材料中nvidia-current
,这些选项被添加到屏幕部分。我试图将它们放在设备和屏幕部分,但仍然没有运气)什么都没有改变。
在任一情况下,cat /proc/driver/nvidia/parameter
都显示空字符串RegistryDwords
,但我可以在/var/log/Xorg.0.log
下面包含字符串中找到日志:
19.745] (==) NVIDIA(0): RGB weight 888
[ 19.745] (==) NVIDIA(0): Default visual is TrueColor
[ 19.745] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[ 19.745] (**) NVIDIA(0): Option "NoLogo" "True"
[ 19.745] (**) NVIDIA(0): Option "RegistryDwords" "EnableBrightnessControl=1"
[ 19.745] (**) NVIDIA(0): Enabling 2D acceleration
[ 20.588] (II) NVIDIA(GPU-0): Display (Lenovo Group Limited (D
没有任何迹象表明该选项是非法的(因为我试图使用一些不可接受的选项名称)。
所以我不得不怀疑,是否还有其他因素影响了这一点?
我曾看到一些线程提到 gnome 设置守护进程中的某些内容可能会产生类似的问题,但是这些线程中的解决方案没有帮助。
Nvidiabl 模块可以帮助调暗屏幕,但是存在导致背光太暗的问题:/sys/class/backlight/nvidia-
背光/亮度中读取的亮度值非常大(可能是随机的,从 3000+ 到 10k+),而max_brightness
仅仅是127
。设置下面的任何值127
都会导致屏幕太暗而无法阅读,所以这种解决方法对我来说也不起作用。
因为我看到有人使用 W530 + Nvidia + Ubuntu X64 工作正常,并且我尝试过从支持 K1000m 的第一个测试版到最新版本的 nvidia 驱动程序,我怀疑是什么原因导致了这个问题,我应该如何继续分析?
答案1
希望这对其他人有帮助。在完成以下操作后,背光键对我来说可以正常工作:a. 升级到 bios 2.51(可能不是强制性的,但我还没有通过降级 bios 进行测试。b. 在 bios 中,关闭安全启动,在启动选项卡中打开 CSM 模式。
我的内核现在使用以下选项启动:“nox2apic acpi_backlight=vendor acpi_osi=Linux”,我的 nvidia 驱动程序版本是:nvidia-experimental-310.14
选项“RegistryDwords” “EnableBrightnessControl=1”仍然保留在 xorg 配置中。
现在在/sys/class/backlight/目录下只能看到thinkpad_screen,修改brightness文件的值对屏幕背光没有影响,但是热键F8/F9可以工作。(还是不知道为什么)。
答案2
我在 Lenovo W530 上运行 Mint 17 x64,配备 Quadro K1000M,采用独立模式,安装了 Nvidia 331.38。
经过一天的各种尝试后,我让亮度控制正常工作。
以下是我所做的事情的列表:
我已将 bios 更新至最新可用版本 (G5ET99WW (2.59)) [ 以下是如何从 USB 闪存盘进行刷新的教程]
- 使用“NVIDIA X 服务器设置”->“X 服务器显示配置”->“保存到 X 配置文件”生成新的 xorg.conf
然后在 /etc/X11/xorg.conf 中的设备部分添加“EnableBrightnessControl=1”:
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "Quadro K1000M" Option "RegistryDwords" "EnableBrightnessControl=1" EndSection
- 重新启动后,我在 /sys/class/backlight 中唯一能找到的是:
thinkpad_屏幕
- 然后我尝试将 /etc/default/grub 中的“GRUB_CMDLINE_LINUX_DEFAULT”设置为:
GRUB_CMDLINE_LINUX_DEFAULT="安静启动 acpi_osi=Linux acpi_backlight=供应商"
或者
GRUB_CMDLINE_LINUX_DEFAULT="安静启动 nox2apic acpi_osi=Linux acpi_backlight=供应商"
但没有效果
- 最后我将其设置为仅:
GRUB_CMDLINE_LINUX_DEFAULT="安静启动 nox2apic"
- 重启后亮度控制按钮(Fn+F8 和 F9)开始工作,在 /sys/class/backlight 中我发现 acpi_video0 而不是 thinkpad_screen
$ ll /sys/class/backlight total 0 lrwxrwxrwx 1 root root 0 Aug 10 10:14 acpi_video0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0/