无法更改亮度(Ubuntu 16.04 LTS,Unity)

我对Linux系统一般都不太熟悉(我使用的是Ubuntu 16.04 LTS),在调节笔记本亮度方面遇到了困难。
当我按下Fn+F8Fn+F9时,亮度条会显示出来,但实际屏幕亮度没有变化。
我尝试了这篇帖子中描述的每种方法(如何在Ubuntu 14.04中调节屏幕亮度?),但都没有成功。 安装和使用xbacklight没有效果,编辑"intel_backlight"文件中的亮度也是一样。
有人知道如何解决这个问题吗?

1我以前用Toshiba C660 satelite也遇到过同样的问题。直到我在"附加驱动程序"选项卡中使用了Nvidia驱动程序,它才开始工作。使用开源驱动程序无法解决问题。你有没有遇到这个情况?你正在使用哪个驱动程序? - Mookey
我认为你应该至少添加型号名称。 - lrkwz
1显卡是Intel® HD Graphics 3000。我对Linux处理计算机驱动程序的方式还不太熟悉,所以不确定你所说的“附加驱动程序选项卡”是什么意思。 - Andrei
我在我的笔记本电脑(康柏 cq70)上发现了一个奇怪的解决办法。不需要按 Fn+f7 调暗和 Fn+f8 调亮,我可以使用 Ctrl+f10 来调暗,按下 Ctrl+f11 来调亮。 - Joel Sjögren
这在Ubuntu 22.04 LTS上仍然无法正常工作。 - Soerendip
11个回答

这不会使你的亮度功能键起作用,但是可以绕过此问题。
使用以下命令安装亮度控制器
sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update

对于具有多显示器支持和色温支持的第二版:

sudo apt install brightness-controller

enter image description here

对于支持最多4个显示器的版本1:
sudo apt install brightness-controller-simple

Brightness Controller Version 1 (注意:版本1已不再更新)

注意:这并不会降低背光的强度,因此无法节省电池电量。但您可以将其作为最后的手段来保护眼睛。在没有亮度控制选项的桌面上也适用。


20这不是一个亮度控制器。它只是用来调整系统的颜色。 - Harshit Chaudhary
1@HarshitChaudhary 你是对的.. 这是这个版本的一个bug。谢谢! - williamj949
1请参考此链接以获取更多详细信息:https://bugs.launchpad.net/hundredpapercuts/+bug/1270579 - williamj949
终于我可以设置亮度了。不知何故,我只有主要亮度可用,次要亮度无效。而显然设置菜单和xbacklight使用的是次要亮度。各种各样的grub解决方案对我都没有用(我尝试了许多)。[我使用的是ASUS A555U,ubuntu 16.04 - 为了节省其他人的麻烦] - JasoonS
1@JasoonS 你无法调整副屏亮度,因为你的电脑只连接了一个显示器。 - Archisman Panigrahi
@ArchismanPanigrahi 谢谢,这很有道理。总之,这个方法有效,所以赞一个 (y) - JasoonS
@HarshitChaudhary 目前看起来它似乎能够很好地控制亮度,就像它所声称的那样。但并不能控制颜色。 - xji
这对我一点用都没有。亮度控制窗口显示“未找到主要设备”,就是这样。没有任何控制选项,什么都没有。我不明白为什么这个问题如此严重。Ubuntu应该能够开箱即用地处理这个问题。:( - Vala
你好 - 弹出对话框,但没有效果:在MSI笔记本电脑上安装了14.04版本,具有集成在主板上的混合英特尔图形和作为独立显卡的NVIDIA(噢)。在命令行上运行brightness-controller时,第一行显示xrandr: Failed to get size of gamma for output default,然后每次调整滑块时都会显示xrandr: Gamma size is 0. - WillC
适用于Ubuntu 16.04 + Asus ROG。 1)在grub中设置acpi_backlight = native(如果您正在查看此页面,您可能已经尝试过grub)2)我需要退出flux / redshift才能使此应用生效。现在屏幕亮度可控,而且还有“flux效果”的额外好处。完美。谢谢。 - Sterls

硬件亮度按钮

自Ubuntu LTS 18.04起

下面是使用xbacklight控制亮度所需的每个步骤:

  1. $ sudo nano /etc/default/grub,并将相应的行替换为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
  2. $ sudo update-grub
  3. 别开玩笑了,请确保适当的驱动程序实际上已安装$ sudo apt install xbacklight xorg xserver-xorg-video-intel
  4. 发出$ find /sys -type f -name brightness应该会得到类似于/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness的东西
  5. $ cd /sys/class此目录应包含一个名为brightness的符号链接,指向在上一步中发现的亮度设备。如果缺少它,请创建它:$ sudo ln -s /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness /sys/class/brightness
  6. $ cat /etc/X11/xorg.conf应该读取:

    Section "Device"
        Identifier      "Device0"
        Driver          "intel"
        Option          "Backlight"      "intel_backlight"
    EndSection
    
    Section "Monitor"
        Identifier      "Monitor0"
    EndSection
    
    Section "Screen"
        Identifier      "Screen0"
        Monitor         "Monitor0"
        Device          "Device0"
    EndSection
    

    如果不是这样,请使用$ sudo nano /etc/X11/xorg.conf进行编辑

  7. 物理XF86MonBrightnessDownXF86MonBrightnessUp键的分配在此为Xubuntu LTS或XFCE用户解释

  8. 最后,重新启动以使这些更改生效。

更精细的亮度控制(适用于所有 Ubuntu 版本)

如果亮度控制太粗糙,那么可以进行额外调整

Ubuntu LTS 16.04

要查看是否具有集成的英特尔视频图形,请输入以下命令:

$ ls /sys/class/backlight/
    intel_backlight  panasonic

至少应该提及intel_backlight,很可能还包括OEM名称,例如panasonicdell_backlight等。
如果是这种情况,请继续创建以下文件。
$ sudo nano /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

重启,享受你的背光按钮吧![来源]

在Ubuntu LTS 16.04之前

在(X)Ubuntu 14.04 LTS下,通过在/etc/default/grub文件中的GRUB_CMDLINE_LINUX_DEFAULT=行中添加acpi_osi=Linux,可以正常控制我使用的Panasonic Toughbook CF-52的亮度:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"

发行
$ sudo update-grub

编辑后重启之前。

2我在我的笔记本电脑上尝试了这个修复方法,它配备了一张集成的英特尔图形卡(通过ls命令显示为带有背光),还有第二张Nvidia 960M。重新启动后,我看到一个紫色的屏幕,但除此之外没有其他显示内容 - 我可以调整背景亮度,但无法登录,因为屏幕上除了全屏的紫色洗涤效果外,什么都看不到。 - Tony Suffolk 66
@TonySuffolk66 你的电脑配置是所谓的混合显卡环境,这有点棘手。个人而言,我对此没有经验。然而,点击上述链接将为你提供一些答案。 - Serge Stroobandt
1解决了我在Lenovo W520上使用Ubuntu 16.04的问题。 - Ihor Pomaranskyy
你也可以读/写设备文件(作为root用户),例如在我的情况下:“echo 45 > /sys/class/backlight/radeon_bl0/brightness”。看起来范围是0-255。 - akom
1这个答案对我也适用!!!我是Linux使用者,使用xfce界面。非常感谢 Gin Gordon。 - user690429
1修复了在Ubuntu 17.04上的问题,现在功能键可以再次控制亮度。 - Michael Allan Jackson
116.04之后的版本也适用于Debian Stretch。 - Jonathan E. Landrum
1在Lenovo W520上使用Ubuntu 16.04进行工作。 - Han
1适用于Dell Inspiron 7370在Ubuntu 16.04上的工作。 - Israel Morales
8@SergeStroobandt sudo ln -s /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness /sys/class/brightness ln: failed to create symbolic link '/sys/class/brightness': Operation not permitted 我该怎么办? - Pranav
@Pranav,你解决了ln的问题吗? - João Pimentel Ferreira
Unity仍然使用X11配置吗? - Soerendip

另一个选项是应用程序Redshift,除了调节亮度外,还可以调整色温以减少夜间的蓝光。

示例用法:redshift -b 0.8将在0到1的范围内将亮度设置为0.8


使用Redshift时,我遇到了多个命令堆叠的问题,导致屏幕闪烁。如果我关闭终端,Redshift就停止工作了。 - drewburr
从Redshift文档中:Redshift有一个亮度调节设置,但它的工作方式与大多数人可能期望的不同。实际上,它是通过操纵伽马斜坡来获得的虚假亮度调节,这意味着它不会减少屏幕的背光。 - rustyx

我使用的是联想Z570,将acpi_backlight=none添加到/etc/default/grub并更新grub后,Fn键正常工作。

这个对我来说有效(索尼 Vaio VPCEG30EL) - revliscano

在XFCE中,您必须在XFCE电源管理器的“常规”选项卡下启用“处理显示亮度键”。

enter image description here


在16.04版本中,软件仓库里有一个叫做"backlight-indicator"的软件包,它可以利用你的摄像头来调节背光(或者不调节),并且可以根据使用交流电和/或电池的情况进行差异化设置。

无法找到包backlight-indicator 没有可用的LSB模块。 分销商ID:Ubuntu 描述:Ubuntu 16.04.1 LTS 版本号:16.04 代号:xenial - Enigma
http://www.ubuntuupdates.org/package/atareao_atareao/xenial/main/base/backlight-indicator - Andor Kiss
你应该添加这个@Enigma ppa:sudo add-apt-repository ppa:atareao/atareao - Mohammad Rafigh

对于在Ubuntu 22.04上使用AMD Radeon显卡(这紧随Serge的答案):
  • 安装先决条件包:

    sudo apt install xbacklight
    sudo apt install xorg
    
  • 查找亮度配置文件

    sudo find /sys -type f -name brightness
    
  • 您可能会看到多个选项,但需要指示图形驱动程序的选项。在我的情况下,它是:

    /sys/devices/pci0000:00/0000:00:08.1/0000:07:00.0/backlight/amdgpu_bl1/brightness
    
  • 创建/编辑/etc/X11/xorg.conf使其如下所示:

    Section "Device"
        Identifier      "Device0"
        Driver          "amd"
        Option          "Backlight"      "amdgpu_bl1"
    EndSection
    
    Section "Monitor"
        Identifier      "Monitor0"
    EndSection
    
    Section "Screen"
        Identifier      "Screen0"
        Monitor         "Monitor0"
        Device          "Device0"
    EndSection
    
  • 编辑GRUB文件/etc/default/grub中的参数GRUB_CMDLINE_LINUX_DEFAULT为:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"
    
  • 更新GRUB文件

    sudo update-grub
    
  • 重新启动


在我的情况下,问题是由于我的图形驱动程序出现了一些问题。将它们更改为稳定版本解决了这个问题。

我在我的Asus UX303UB上进行了修复,有一点不同:

  • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="设置为(acpi_osi=对我有效,其他选项没有生效,从这里获得的)。当然,在此之后运行update-grub。这会使功能键响应并显示Ubuntu通知,但实际上并不改变亮度。还有一个来自其他答案的东西:
  • sudo nano /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

现在唯一的问题是将Fn+F7与xset dpms force standby关联起来,以关闭屏幕。

1对我没用。登录后出现黑屏。 - Jordan Silva
1这个命令搞坏了我的系统。启动时卡住了。别尝试这个。 - sv_jan5
@sv_jan5 @JordanSilva 奇怪,你有16.04.02吗?确切地说是华硕UX303UB吗?请使用lsb_release -asudo dmidecode -t baseboard进行检查。 - Pablo Bianchi
lsb_release -a 的输出结果如下: 没有可用的 LSB 模块。 发行版 ID:Ubuntu 描述:Ubuntu 16.04.2 LTS 发布版本:16.04 代号:xenial - sv_jan5

在遵循了接受的答案后,Ubuntu 18.04仍然无法正常工作。然后,我修改了/etc/default/grub文件,添加了以下行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=none"

不是:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"

并运行:

sudo update-grub

然后重新启动。它完美地运行了。

什么都不起作用。。 - Soerendip