无法更改Lenovo笔记本电脑的亮度


43

亮度调整键< Fn+ / >无效(尽管它们可以被环境识别),并且我也无法使用GUI工具更改亮度。在Linux本身而不是桌面环境中,这似乎是一个问题。

我可以在Windows操作系统中更改亮度,因此这不是某种硬件故障。

详细信息:
          联想B570(型号名称:20093)
          集成英特尔高清显卡
          Kubuntu 11.04(Linux 2.6.38-10-generic,KDE 4.7.0),所有最新信息
          没有专有的图形驱动程序(仅Wi-Fi一个)

我尝试过的

  • 编辑/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULTacpi_osi=Linuxacpi_backlight=vendornomodeset。是的,我做到了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 XX(“ No outputs have backlight property”)

如何解决此问题?


1
此问题已在Ubuntu 11.10中修复!
Oleh Prypin 2011年

5
在Ubuntu 12.04中,这似乎再次被破坏了。
Mittenchops 2012年

和Ubuntu 16.04仍然。
迭戈

Answers:


10

试试这个。它适用于我的Ubuntu 14,Lenovo B570,Intel Graphics。

打开终端并创建以下配置文件(如果不存在):

须藤触摸/usr/share/X11/xorg.conf.d/20-intel.conf

现在我们需要编辑该文件。您可以使用任何编辑器,无论是终端编辑器还是图形编辑器。

须藤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

保存。注销并重新登录。


谢谢-这也适用于运行Xubuntu 15.04“ vivid”的Samsung N220上网本和集成Intel Graphics(GMA 3150)
Andrew

1
不,那杀死了我的X。必须再次在恢复控制台中删除文件。
towi

这在Lenovo P500上不起作用。
加伦

2
这为我工作在Thinkpad T460与Ubuntu 17.04,我必须先注销,然后登录。
埃利奥特Gorokhovsky

要检查PCI总线ID,请运行lspci -nn。也就是说,这在Thinkpad E490中对我不起作用。
恩里科

38

如果GUI工具失败,请尝试使用终端

  1. 打开一个终端

  2. 运行:ls /sys/class/backlight/*/brightness。输出示例如下:

    /sys/class/backlight/acpi_video0/brightness
    
  3. 如果未找到任何内容,则内核不支持亮度控制(缺少驱动程序?)。否则,您可以使用以下命令(相应替换acpi_video0):

    • 获取当前的亮度级别:

      cat /sys/class/backlight/acpi_video0/brightness
      
    • 获取最大亮度:

      cat /sys/class/backlight/acpi_video0/max_brightness
      

    这些命令返回的亮度级别从零到max_brightness(请参见上文)。

  4. 要更改亮度级别,您需要在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
    

5
当然,驱动程序存在一些问题!如果此命令行工作正常,则GUI也将工作。但是,当然它不起作用– _
Oleh Prypin 2011年

@Lekensteyn:[没有用,在11.04下使用Ubuntu]-我已经尝试了很多,但是不能实时工作。您是说要更改此设置,它会实时显示还是在重启后显示?

2
变化是实时的。
Lekensteyn 2011年

即使以超级用户身份,我也无法使用tee更改亮度级别。为什么会这样呢?
加伦

@Galen如果您在写入文件时没有记错,则可能是特定于模型的问题。尝试将其报告为错误或搜索您的笔记本电脑型号和“ Linux背光灯”。
Lekensteyn

10
  1. 安装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
  2. 重启。

  3. 现在,您可以使用终端来调整亮度,如建议通过Lekensteyn
    如果可以使用terminal +更改亮度,那就sudo结束了。
    如果您在GNOME桌面上,亮度甚至可能已经完全起作用。

  4. 下载我的亮度转换器脚本,执行它,并将其放在/ usr / local / bin /中
    wget -O brightness http://ideone.com/plain/yPlo5
    chmod +x brightness
    sudo mv brightness /usr/local/bin

  5. 我们必须允许编辑亮度文件,所以sudo到处都不需要。
    另外,我们希望在系统启动时使亮度设置恢复为以前的设置(不幸的是,默认情况下未保存)。

    提到的brightness脚本可以处理所有操作(带有restore参数),只需将其添加到自动运行即可。
    为此,我们将编辑/etc/rc.localsudo nano /etc/rc.local或使用任何编辑器代替nano)。
    在该行之前添加以下exit 0行:
    /usr/local/bin/brightness restore

  6. 最好现在重新启动。

  7. 因此该brightness脚本有效。您可以随时到终端输入以下内容:

    • brightness -获取当前的亮度设置
    • brightness value-将亮度设置为
    • brightness inc step,- 逐步增加或减少亮度(如果未指定,则使用配置文件中的默认值,通常为最大亮度的10%)brightness dec step
  8. 现在,您可能需要将亮度更改映射到您的热键。

    • XF86BrightnessUp设置为brightness inc
    • XF86BrightnessDown设置为brightness dec
  9. 如果要调整某些内容,请确保查看/etc/bx_brightness.conf。
    您可以使用brightness inc/ 更改更改亮度的步骤。dec


感谢Toz这个主题上的无价帮助。


1
在Ubuntu 11.10中不再需要此功能
Oleh Prypin 2011年

4

我想我发现使用udev规则调整intel_backlight的现有方法的简便且影响最小。

当我在运行内核3.2的Lenovo G360笔记本电脑上按Fn+ Up/ 时,我注意到“背光”子系统的“更改”动作Down。所以我写了/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


1
在grub引导内核参数中添加了“ acpi_backlight =供应商acpi_osi = linux video.brightness_switch_enabled = 1”,“ Fn +上/下”来更改Brigtness在我的G360上有效。无需编写上面的Udev规则。
littlebat

似乎仅添加一个内核参数“ acpi_backlight = vendor”现在对我的G360也有效。但是,两种添加内核参数的方法都会偶尔停止工作。我的案例的详细信息请参见:Bug 44809-[Arrandale背光]通过RANDR进行的亮度对Sony VAIO VPCYA1V9E没有影响:bugs.freedesktop.org/show_bug.cgi?
littlebat 2012年

4

这将使您的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

脚注:开箱即用的亮度指示可以识别我系统中的7种亮度。通过添加acpi_backlight=vendor到行GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub,这个数字被撞高达16!


4

我有一个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

重新启动后,问题已解决。


它对我有用,但是,发生了一些奇怪的事情。当亮度设置为最大时,屏幕上没有显示亮度(完全暗),有什么建议吗?谢谢
Adriano Rivolli

2

我在Ubuntu 14.04上有一个带有Nvidia图形和二进制驱动程序的Thinkpad T450。为了使背光灯正常工作,我必须通过将以下行添加到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

1

这不适用于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/brightnessXXX是整数值的终端。

在我的情况下,XXX的值可以是0到4882之间的值,但请注意:如果您输入0,则屏幕将完全变黑,并且您什么也不会看到。


1

这是您可以做的补丁。

创建名为.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`

在每次启动时都必须执行最后一个命令,因为亮度文件的权限会随启动而更新。为此,请在“ exit 0”行之前sudo vim /etc/rc.local添加命令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以图形方式执行该过程。


1

编辑/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"

有关更多详细信息,请访问此链接


1

我遇到了同样的问题,我在ubuntu 14.04(Unity)中使用了Gnome3.10。我在笔记本电脑中安装了用于温度控制的TLP。我刚刚删除了“ tlp”,然后重新启动了系统,并且可以使用function(fn)+方向键来调整屏幕亮度。

它可能有助于检查一次。


1

(显然)Lenovo IP G50-70存在相同的问题。-实际上,没有一个功能键“似乎”起作用。最终,我在Bios中找到了一个“热键”启用/禁用功能。矛盾的是,它是“已启用”,但是实际上这可以对功能键进行一次按键操作。实际上,如果您使用传统的“ Fn +功能keyX”技术,则它们将无效。

如果您“禁用” BIOS中的热键功能,则功能键将“按预期”工作(Fn +功能键)。-完成此操作后,所有功能键均正常运行。进步很大


1

我必须将这些行添加到grub中:

acpi_backlight=vendor acpi_osi=linux thinkpad-acpi.brightness_enable=1

注意最后一个。那就是使亮度键起作用的那个。


0

您可以使用此软件包通过命令从命令行(终端)处理亮度 xbacklight

安装xbacklight可以在软件中心中安装xbacklight。或在终端中:

sudo apt-get update && sudo apt-get install xbacklight

您可以使用

  • xbacklight -inc <range from 0 to 100> 增加价值的亮度 < ... >

  • xbacklight -dec <range from 0 to 100> 降低亮度 < ... >


使用Thinkpad E490为我工作。谢谢!
恩里科

0

我在运行kubuntu 18.04的Thinkpad W510上遇到问题。

我在联想论坛上找到了这个:

tpb-使用IBM ThinkPad(tm)特殊键的程序

sudo apt-get install tpb

瞧!亮度调节键现在可以完美工作了!我什至不需要注销并重新登录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.