自从在 2010 年末的 Macbook Air 上安装了 Linux Mint (XFCE) 后,我在使用专有 Nvidia 驱动程序时遇到了改变亮度的问题。
亮度功能键从来都不起作用(但奇怪的是音量键可以),但直到最近我才能够使用命令调整亮度xbacklight
。然而,我最近acpi_backlight=vendor
从 grub 配置中删除了该标志,这甚至消除了这种能力。出于某种原因,重新放回该标志并没有让我恢复使用的能力xbacklight
,所以现在我根本无法调整亮度。
此时,我很高兴能重新获得使用的能力xbacklight
。现在使用该命令不会产生任何输出,没有错误,没有消息,什么都没有。
/etc/default/grub 的相关部分(acpi_backlight=vendor
当它停止工作时我删除的唯一东西):
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash acpi_osi=linux
acpi_backlight=vendor"
GRUB_CMDLINE_LINUX=""
我在 /usr/share/X11/xorg.conf.d/10-nvidia-brightness.conf 有一个自定义 X11 配置文件:
Section "Device"
Identifier "Default Device"
Driver "nvidia"
BoardName "GeForce 320M"
Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection
有人知道为什么移除标志并重新插入会破坏我的使用能力xbacklight
吗?(我已经运行了update-grub
好几次都无济于事)。
提前致谢。
答案1
这个问题不只限于 Macbook。其他品牌甚至 Toshiba satellite L510 也存在同样的问题。我找到了一个足够简单的解决方案
在我目前遇到的所有 Linux 系统中,甚至在 Android 手机和其他基于 Android 的设备中,目录中都有与/sys/class/backlight/acpi_video0
屏幕亮度相关的配置文件 - 更准确地说,是 LED 屏幕的背光。以下是ls /sys/class/backlight/acpi_video0
ls /sys/class/backlight/acpi_video0 的输出:
不同的系统有不同的屏幕亮度分辨率。我的系统分辨率为 8,即 [0,7]。你可以通过 查看屏幕亮度分辨率的上限cat /sys/class/backlight/acpi_video0/max_brightness
。
然后将您想要的任何值写入文件/sys/class/backlight/acpi_video0/brightness
,只要数字小于max_brightness
,您的系统就会立即达到该亮度值。例如,由于我的系统的分辨率范围是 0-7,因此echo 3 > /sys/class/backlight/acpi_video0/brightness
使我的屏幕半亮。同时echo 0 > /sys/class/backlight/acpi_video0/brightness
使背光尽可能暗而不关闭屏幕。
为了方便起见,请使用以下脚本从终端调整屏幕亮度。将脚本文件放入/bin
或 shell$PATH
环境变量中的其他目录中backlight.sh
,并使其可执行。以下是脚本
#!/bin/bash
## MAX_BRIGHTNESS variable takes the value in /sys/class/backlight/acpi_video0/max_brightness
MAX_BRIGHTNESS=$(cat /sys/class/backlight/acpi_video0/max_brightness);
error_report(){printf "error: the backlight brightness value \"$1\" is out of range, use only [0,$MAX_BRIGHTNESS]\n";}
if [ $1 -ge 0 ] && [ $1 -le $MAX_BRIGHTNESS ]; then echo $1 > /sys/class/backlight/acpi_video0/brightness ; else error_report ; fi;
将此脚本保存到 $PATH 目录中后backlight.sh
,打开根终端并运行以下命令。
[email protected]# backlight.sh 0
然后你的屏幕就会变暗。尝试使用其他值,只要这些值不超过 max_brightness。