无法更改Lenovo笔记本电脑的亮度
亮度调节键< Fn + ⇑ / ⇓ >无效(尽管它们被环境识别),我也无法使用GUI工具更改亮度。 这似乎是Linux本身的一个问题,而不是桌面环境。
我可以在Windows操作系统中更改亮度,因此不是某种硬件故障。
细节:
联想B570(型号名称:20093)
集成的英特尔高清显卡
Kubuntu 11.04(Linux 2.6.38-10-generic,KDE 4.7.0),一切都是最新的
没有专有的图形驱动程序(只有Wi-Fi一个)
我尝试过的:
- 编辑
/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
:acpi_osi=Linux
,acpi_backlight=vendor
,nomodeset
。 是的,我做了update-grub
- 编辑
/etc/X11/xorg.conf
(没有这样的文件,即使在sudo dpkg-reconfigure xserver-xorg
) - 编辑
/proc/acpi/video/VGA/LCD/brightness
(没有这样的文件) -
sudo setpci -s 00:02.0 F4.B=
(无效果)XX -
xbacklight -set
(“XXNo outputs have backlight property
”)
我该如何解决这个问题?
试试这个 。 它适用于我的Ubuntu 14,联想B570,英特尔图形。
打开终端并创建以下配置文件(如果它不存在):
sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
现在我们需要编辑这个文件。 您可以使用任何编辑器,无论是终端还是图形编辑器。
sudo gedit /usr/share/X11/xorg.conf.d/20-intel.conf
将以下行添加到此文件:
Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
保存。 注销并重新登录。
如果GUI工具失败,请尝试使用终端 。
-
打开终端
-
运行:
ls /sys/class/backlight/*/brightness
。 示例输出将是:/sys/class/backlight/acpi_video0/brightness
-
如果没有找到,内核不支持亮度控制(缺少驱动程序?)。 否则,您可以使用以下命令(相应地替换
acpi_video0
):-
获取当前亮度级别:
cat /sys/class/backlight/acpi_video0/brightness
-
获得最大亮度级别:
cat /sys/class/backlight/acpi_video0/max_brightness
这些命令返回亮度级别,范围从零到max_brightness (参见上文)。
-
-
要更改亮度级别,需要在
brightness
文件中写入一个数字。 这不能由像gedit
这样的编辑器来完成。 假设您想将亮度更改为5,则必须运行:echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
或者,如果您只想将亮度级别设置为可用的最高级别:
sudo tee /sys/class/backlight/acpi_video0/brightness < /sys/class/backlight/acpi_video0/max_brightness
-
安装
linux-kamal-mjgbacklight
– Linux内核的补丁。- 检查它是否适合您:
lsmod | grep ^i915
应该出现类似i915 331519 3
东西。 如果没有输出,这将不起作用。 -
sudo add-apt-repository ppa:kamalmostafa/linux-kamal-mjgbacklight
- 安装更新(
sudo apt-get update; sudo apt-get upgrade
)
- 检查它是否适合您:
-
重启。
-
现在,您可以使用终端调整亮度,如Lekensteyn所建议的那样 。
如果您可以通过终端+sudo
更改亮度,这就是答案的结束。
如果你在GNOME桌面上,亮度甚至可能已经完全运行。 -
下载我的亮度变换器脚本 ,允许它执行,并将其放到/ usr / local / bin / :
wget -O brightness http://ideone.com/plain/yPlo5
chmod +x brightness
sudo mv brightness /usr/local/bin
-
我们必须允许编辑亮度文件,以便在任何地方都不需要
sudo
。
此外,我们希望在系统启动时将亮度设置恢复为先前的设置(不幸的是,默认情况下不会保存)。上面提到的
brightness
脚本可以处理它(使用restore
参数),只需将其添加到自动运行。
为此,我们将编辑/etc/rc.local(sudosudo nano /etc/rc.local
或任何编辑器而不是nano)。
在exit 0
行之前添加以下行:
/usr/local/bin/brightness restore
-
现在最好重新启动。
-
因此
brightness
脚本有效。 您可以随时前往终端并键入以下内容:-
brightness
– 获取当前亮度设置 -
brightness value
– 将亮度设置为值 -
brightness inc step
,brightness dec step
降低brightness dec step
–brightness dec step
增加或减少亮度(如果未指定,则从配置文件中使用默认值,通常为最大亮度的10%)
-
-
现在您可能希望将亮度变化映射到热键。
- 将XF86BrightnessUp设置为
brightness inc
- 将XF86BrightnessDown设置为
brightness dec
- 将XF86BrightnessUp设置为
-
如果你想调整一些东西,请务必查看/etc/bx_brightness.conf
您可以使用brightness inc
/减少更改brightness inc
更改的步骤
感谢Toz在这个post中的无价帮助。
我认为我发现使用udev规则调整intel_backlight的现有方法很容易且影响最小。
当我在运行内核3.2的Lenovo G360笔记本上按Fn + 向上 / 向下时,我注意到“背光”子系统的“改变”动作。 所以我写了一个/etc/udev/rules.d/99-writeintelbacklight.rules
的规则如下:
ACTION=="change", SUBSYSTEM=="backlight", RUN+="/usr/sbin/writeintelbacklight.sh"
使shell脚本/usr/sbin/writeintelbacklight.sh
包含:
#!/bin/bash intelmaxbrightness=`cat /sys/class/backlight/intel_backlight/max_brightness` acpimaxbrightness=`cat /sys/class/backlight/acpi_video0/max_brightness` scale=`expr $intelmaxbrightness / $acpimaxbrightness` acpibrightness=`cat /sys/class/backlight/acpi_video0/brightness` newintelbrightness=`expr $acpibrightness \* $scale` curintelbrightness=`cat /sys/class/backlight/intel_backlight/actual_brightness` if [ "$newintelbrightness" -ne "$curintelbrightness" ] then echo $newintelbrightness > /sys/class/backlight/intel_backlight/brightness fi exit 0
当然,你需要做一个sudo chmod +x /usr/sbin/writeintelbacklight.sh
。
这不会使您的Fn键工作,但您可以分配任何其他键来调整亮度。
我尝试了其中几种解决方案,但在找到这个小指标程序http://codevanrohde.nl/wordpress/?p=128之前,没有任何方法可以帮助我。 有了它,您可以设置热键来控制亮度,使用鼠标滚轮或从指示器的下拉列表中选择。 我已经用’Win + Alt’取代了’Fn’,这对我来说非常相似,现在我也可以用外接键盘!
要添加PPA并安装:
sudo add-apt-repository ppa:indicator-brightness/ppa sudo apt-get update && sudo apt-get install indicator-brightness
热键应分配给:
/opt/extras.ubuntu.com/indicator-brightness/indicator-brightness-adjust --up
和
/opt/extras.ubuntu.com/indicator-brightness/indicator-brightness-adjust --down
脚注:开箱即用,birghtness指示灯识别我系统中的7个亮度级别。 通过将acpi_backlight=vendor
添加到/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
行,该数字最多可达16!
我有一个lenovo ideapad z400。
我尝试了上面列出的所有TIPS,没有成功。
所以我找到了一个非常好用的不同的:
将以下行放在/ etc / default / grub中
GRUB_CMDLINE_LINUX="acpi_backlight=vendor acpi_osi=Linux resume=/dev/sdYY"
YY =交换区域,使用swapon -s查看交换设备。
以root身份执行update-grub
重启后问题解决了。
我在Ubuntu 14.04上有一个带有Nvidia显卡和二进制驱动程序的Thinkpad T450s。 为了使背光工作,我必须通过在intel设备定义中添加以下行来编辑/etc/X11/xorg.conf文件(安装二进制驱动程序时会创建xorg.conf文件):
Option "Backlight" "intel_backlight"
完整的部分现在是:
Section "Device" Identifier "intel" Driver "intel" BusID "PCI:0@0:2:0" Option "Backlight" "intel_backlight" Option "AccelMethod" "SNA" EndSection
这对于KDE用户不起作用,因为它写在https://launchpad.net/~kamalmostafa/+archive/linux-kamal-mjgbacklight
KDE桌面用户注意事项
KDE桌面用户:此PPA可能无法修复您的背光控制热键:此修复程序需要内核模块提供新的
/sys/class/backlight/intel_backlight
接口(无论您的桌面如何都可以使用)以及桌面模块来访问它接口。 对于Gnome来说,这个PPA中更新的gnome-power-manager提供了这个,但KDE的等价物尚未开发出来。“
但是,您可以尝试在此处找到的解决方法。
这就是输入终端echo XXX | sudo tee /sys/class/backlight/intel_backlight/brightness
echo XXX | sudo tee /sys/class/backlight/intel_backlight/brightness
其中XXX是一个整数值。
在我的情况下,XXX可以是从0到4882的值,但要小心:如果你写0,屏幕将是完全黑色,你什么都不会。
这是你可以做的补丁。
使用名称.modificarBrillo.sh创建此脚本(在我的情况下,我在我的主文件夹中创建它:〜/ .modificarBrillo.sh)
#!/bin/bash if [ -z "$1" ]; then echo "ERROR: Tiene que introducir un parámetro: \"a\" para aumentar o \"d\" para disminuir" exit else if [ "$1" != "a" ] && [ "$1" != "d" ]; then echo "ERROR: el parámetro de entrada sólo puede ser o \"a\" para aumentar el brillo o \"d\" para disminuirlo" exit fi fi MAX_BRILLO=`cat /sys/class/backlight/intel_backlight/max_brightness` MIN_BRILLO_ABSOLUTO="0" MIN_BRILLO="100" #el brillo mínimo puede ser 0 pero eso deja la pantalla completamente a oscuras INTERVALO=`expr $MAX_BRILLO - $MIN_BRILLO_ABSOLUTO` INTERVALO=`expr $INTERVALO / 10` brillo=`cat /sys/class/backlight/intel_backlight/actual_brightness` if [ "$1" = "a" ]; then let "brillo = brillo + INTERVALO" if [ "$brillo" -gt "$MAX_BRILLO" ]; then let "brillo = MAX_BRILLO" fi else let "brillo = brillo - INTERVALO" if [ "$brillo" -lt "$MIN_BRILLO" ]; then let "brillo = MIN_BRILLO" fi fi echo "$brillo" | tee /sys/class/backlight/intel_backlight/brightness
但是,由于前一个脚本需要执行权限,因此/ sys / class / backlight / intel_backlight / brightness只能由root编辑,您必须在终端中执行:
chmod a+x ~/.modificarBrillo.sh sudo chmod a+w /sys/class/backlight/intel_backlight/brightness`
每次启动都必须执行最后一个命令,因为启动时会更新亮度文件的权限。 为此, sudo vim /etc/rc.local
并在“exit 0”行之前添加命令sudo chmod a+w /sys/class/backlight/intel_backlight/brightness
最后,您应该安装xbindkeys以指定Function键来执行脚本。
在我的例子中,我将行添加到配置文件〜/ .xbindkeysrc中
#Aumentar brillo "/home/alvaro/.modificarBrillo.sh a" m:0x0 + c:233 XF86MonBrightnessUp #Disminuir brillo "/home/alvaro/.modificarBrillo.sh d" XF86MonBrightnessDown
但您也可以安装程序xbindkeys-config以图形方式执行proccess。
编辑/etc/default/grub
文件并添加
pcie_aspm=force acpi_backlight=vendor
之后
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
然后整行看起来像这样:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force acpi_backlight=vendor"
有关详细信息,请访问此链接 。
我有同样的问题,我在ubuntu 14.04(Unity)中使用Gnome3.10。 我在笔记本电脑上安装了tlp来控制温度。 我刚删除’tlp’并重新启动系统,我可以使用function(fn)+箭头键调整屏幕亮度。
它可能有助于检查一次。
与联想IP G50-70有同样的问题(显然)。 – 事实上,没有任何function键“出现”工作。 最终在Bios中我发现了一个’Hotkey’启用/禁用function。 矛盾的是,它是“启用”,但这实际上可以对function键进行单键按下操作。 事实上,如果你使用传统的’Fn + Function keyX’技术,它们就不起作用了。
如果你’禁用’Bios中的热键function,那么function键’按预期’工作(Fn +function键)。 – 执行此操作后,所有function键都正常工作。 进步如此之多
我不得不将这些行添加到grub:
acpi_backlight=vendor acpi_osi=linux thinkpad-acpi.brightness_enable=1
注意最后一个。 这是使亮度键工作的那个。
您可以使用此程序包通过xbacklight
命令从命令行(终端)处理亮度。
xbacklight 可以安装在软件中心。 或者在终端:
sudo apt-get update && sudo apt-get install xbacklight
您可以使用
-
xbacklight -inc
以增加值< ... >
亮度 -
xbacklight -dec
以降低值< ... >
亮度