亮度fn键快捷方式在华硕笔记本电脑上不起作用


42

通过fn键的亮度快捷方式不起作用。

我尝试了此答案及其评论中的每个解决方案。编辑/etc/default/grub文件后,我重新启动了。

GRUB_CMDLINE_LINUX="acpi_osi=Linux"
GRUB_CMDLINE_LINUX="acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="acpi_osi=linux acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="acpi_osi_Linux"

还有哪些其他解决方法/解决方案?

相关输出:

$ sudo lshw -C display
  *-display UNCLAIMED     
       description: 3D controller
       product: GK107M [GeForce GT 750M]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: latency=0
       resources: memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       product: 4th Gen Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:50 memory:f7400000-f77fffff memory:d0000000-dfffffff ioport:f000(size=64)

您拥有哪个GPU?
2014年

@Kai我在问题中添加了相关信息。
尼卡比曹

现在,当您说亮度键不起作用时,您是否看到指示条正在移动,表明您正在更改亮度,或者按FN键根本没有任何作用?
约翰·斯科特

是我一些解决方法。希望您会发现它有用
Sergiy Kolodyazhnyy 2015年

太好了,GRUB_CMDLINE_LINUX="acpi_backlight=vendor"为我完成了工作。
米兰

Answers:


52

在终端中:

  1. sudo nano /etc/default/grub

    更改

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="
    

    然后,保存文件。

  2. sudo update-grub

  3. 重新启动计算机。


功能键(Fn+ F5/ F6)现在应该处于活动状态。

我发现grub文件在系统升级后被修改了,不得不再次做一次。


1
要获得完整的亮度范围(首先显示它之后),添加20-intel.conf文件对我有用
srlm 2015年

1
这对我的华硕Q550LF有用!非常感谢!
Ryan Stull 2015年

5
这对我不起作用。我在华硕Zenbook ux305笔记本电脑上运行Ubuntu。还有其他解决方案吗?
Gocht 2015年

9
对于华硕rog gl552vw:intel_idle.max_cstate=1 acpi_osi= acpi_backlight=native在带有内核4.3.3的archlinux上
brauliobo,2016年

2
acpi_osi= acpi_backlight=native在我的ASUS笔记本电脑上就足够了,不需要了intel_idle.max_cstate=1,亮度弹出窗口就可以了。

13

免责声明:我使用华硕305CA在Mint / Mate-18上对此进行了努力,并且使其能够正常工作,我不知道它是否也可以在Ubuntu上运行,但是请尝试...我这样做:

使Fn F5 / F6工作:

sudo emacs /etc/default/grub

更改以下内容: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="

sudo update-grub

重新启动系统...现在应显示启动屏幕。

使用acpi_listen以下命令验证acpi命令:

acpi_listen.

按Fn F5 / F6。我懂了:

video/brightnessdown BRTDN 00000087 00000000 K
video/brightnessup BRTUP 00000086 00000000 K

将事件代码添加到acpi事件:

sudo emacs /etc/acpi/events/asus-keyboard-backlight-down 

event = video / brightnessdown BRTDN 00000087

sudo emacs /etc/acpi/events/asus-keyboard-backlight-up

event =视频/亮度提高BRTUP 00000086

确认您可以通过以下方式更改背光(其中xx是整数):

echo xx | sudo tee /sys/class/backlight/intel_backlight/brightness

创建一个脚本:

sudo emacs /etc/acpi/asus-keyboard-backlight.sh 

将变量添加到文件中:

KEYS_DIR=/sys/class/backlight/intel_backlight

我也将值设置为10而不是1,因为它太慢了:

if [ "$1" = down ]; then
    VAL=$((VAL-10))
else
    VAL=$((VAL+10))
fi

实际的显示亮度不跟随飞溅中的条形。上/下满时,您仍然可以继续按Fn F5 / F6更改亮度。

您需要重新启动acpid才能生效:

sudo service acpid restart

6
如果acpi_listen什么也不显示怎么办?
Eugen Konkov

我确认在华硕K501UX上也能正常工作,并且从最小到最大以及从最小到最大都可以进行20个向上/向下亮度调整...
sHAKaJaada

这适用于华硕Zenbook UX330UA。非常感谢@Lassebassen
圣鲭鱼

确认可以在Asus X550VX(使用Nvidia 950M显卡)上工作。但是,在添加以下内容后,第一个答案也没有其他调整,也可以工作:acpi_osi= acpi_backlight=native
Gobinath

我可以确认该解决方案可与Xubuntu 16.04上的Asus Zenbook UX310一起使用。很好的解决方案!
benjamin button'7

7

这个解决方案为我工作:

打开终端并输入以下命令:

sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf

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

保存后关闭文件,然后返回到终端并键入以下命令:

sudo nano /etc/default/grub

找到这条线

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

并替换为

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=intel"

然后在终端

sudo update-grub

重新启动笔记本电脑,它可能会工作。


我确认这可以用于华硕N56JR。
Michael S.

5

如果您单击电池图标,并且看到一个用于更改亮度的滑块,以及它是否确实起作用,即。如果屏幕的亮度变化,然后将功能就是在那里,你只需要重新映射键盘键。

(因此,无需弄乱内核参数和驱动程序等)

如果单击“ KDE面板”中的“电池”图标并看到以下内容:

电池板

在系统设置→工作区→快捷方式→全局快捷键快捷方式→KDE守护程序中,您将找到Decrease Screen BrightnessIncrease Screen Brightness

它似乎已经映射到Fn+ F5/ Fn+ F6,但是似乎不起作用,所以只需给它Global Alternative映射到Meta+ F5/ Meta+ F6


3

要降低亮度,请遵循以下步骤:

打开系统设置>亮度和锁定

从那里控制您的亮度

您可以尝试以下方法:

https://apps.ubuntu.com/cat/applications/brightness-controller/

如果您想通过按键更改亮度,请执行以下操作:

sudo apt-get install xbacklight xbacklight -set 50

然后打开设置>键盘>快捷方式

添加自定义快捷键,然后在其中输入以下命令: 在此处输入图片说明

xbacklight-十月10

xbacklight -inc 10


我知道如何修改亮度(从UI和从xbacklight)。另外,我无法在fn按键上映射自定义快捷方式。我已经尝试过了。:-(
尼卡比曹

不要使用Fn键使用别的东西
Tejas的Ghalsasi

ALT + F5,ALT + F6已经确定,但我想fn键可以工作...
尼卡比曹

3

在脚本中:

sudo nano /etc/acpi/asus-keyboard-backlight.sh 

华硕E402M的有用选项:

MIN=200
MAX=$(cat $KEYS_DIR/max_brightness)
VAL=$(cat $KEYS_DIR/brightness)

if [ "$1" = down ]; then
    VAL=$((VAL-800))
else
    VAL=$((VAL+800))
fi

2

在我看来,您没有安装专有的NVIDIA驱动程序。如果是这样,则可以尝试使用预安装的程序“其他驱动程序”安装此驱动程序。这在Ubuntu 14.04中应该可以使用,但是在未安装某些其他软件的早期版本的Ubuntu中可能会引起麻烦。因此,如果您不使用Ubuntu 14.04,请不要在未进一步阅读的情况下安装专有驱动程序。

安装驱动程序后,亮度控件仍然不起作用,您可以尝试运行sudo nvidia-xconfig以生成xorg.conf-file。然后,您可以使用编辑该文件sudo gedit /etc/X11/xorg.conf并添加以下行

Option "RegistryDwords" "EnableBrightnessControl=1"

Section "Device"


我不会在我的电脑上安装任何专有的驱动程序...
尼卡比曹

如果您使用的是华硕N56JR,请不要安装专有驱动程序。这将导致您的X服务器不再启动。使用askubuntu.com/questions/41681/…可以解决此问题。
Michael S.

1

在华硕FL555笔记本电脑上尝试了可接受的答案,但是没有运气。我在戴尔机器上遇到了这个答案,它在部分程度上也适用于我的笔记本电脑。
起作用的部分是,我可以更改系统配置中的亮度,并可以使用xbacklight并配置几个自定义键盘快捷键

我仍然还没有弄清楚如何使功能键正常工作。我尝试了各种各样的东西,但是当我尝试时它们并没有显示op作为ACPI键acpi_listen


如我上面建议的那样,您是否尝试过带有intel下一补丁的4.9内核?那应该可以解决很多问题,而不会进一步弄乱配置文件或内核参数……
Vincent Gerris

@ user163217感谢您的更新。我没有这样做是因为我当前正在运行使用旧内核的Ubuntu 16.04。但是在升级系统时,请务必牢记。谢谢!
Audax

绝对没有理由说新的内核不起作用:)。除了主要版本之间的某些例外,您可以运行任何16.10、17.04或其他内核(带有ubuntu补丁)!如果您有兴趣,这里是更多信息。我不知道他们是否会从4.9内核中移植修复程序,我不这样认为,因为据我所知这是一个全面的检查。16.10也具有4.8内核,因此它将一直为17.04,直到随附的Ubuntu内核将为您提供帮助。
文森特·格里斯

1

请检查以下错误报告: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1348890?comments =all和这篇很棒的文章:http : //hansdegoede.livejournal.com/13889.html

造成亮度不正常的原因可能有多种,在我的情况下(华硕UX305FA),按键事件未发送。

您可以通过在终端上执行以下操作来检查:

sudo evemu-record /dev/input/event3

(事件是您的键盘)。当您使用亮度和环境光(对于我来说,fn + A)组合时,请检查事件是否显示以及它们是否正确。

要解决此问题,对我来说,@ Tejas Ghalsasi的xbacklight解决方案与@molhamaleh的代码段结合使用,用于文件:/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

我不需要任何内核参数。似乎acpi_listen给了我:PNP0C14:00 000000ff 00000000用于环境光按钮,亮度的按钮不显示任何内容。

我将看到修复它有多远,它可能需要提交一个内核错误。

阅读Hans的链接以对整个设置有个好主意:)!

[更新]这在4.9的drm-intel-next内核分支中已为我修复。可以在以下位置找到内部版本:http : //kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/

我上周安装了一个,亮度键现在可以使用了。如果您查看错误报告,则可以看到至少有另外两个人在不同的计算机上进行了修复。

所以下载例如:

  linux-headers-4.9.0-997_4.9.0-997.201611212212_all.deb
  linux-headers-4.9.0-997-generic_4.9.0-997.201611212212_amd64.deb
  linux-image-4.9.0-997-generic_4.9.0-997.201611212212_amd64.deb

然后在终端

dpkg -i linux*.deb

然后重启。

Grub应该自动选择最新的,否则按esc并选择。


1

首先-这个答案是针对openSuse的道歉。我无法在那里更新论坛讨论。我的HP 840 G3上的问题非常相似。这可能有助于任何分发。

在openSuse上,我编辑了/etc/rc.d/boot.local文件,并使用以下命令添加了两个键码。

setkeycodes e012 224

setkeycodes e017 225

224225正在为X键码brightness downup

e012并且e017Fn-F5Fn-F6这台机器上。

要在您的计算机上对此进行测试,您需要使用以下命令下拉至虚拟终端:

Ctrl+ Alt+ F1例如。

按下所需的功能键

您可能会直接在控制台中看到该消息,如果没有,请检查dmesg日志中是否存在缺少密钥的错误。它还将为您提供缺少的键代码。就我而言,缺少的键是e012e017

setkeycodes在VT中发出正确的命令。

返回X。(Ctrl+ Alt+ F7)?

在KDE中返回settings > configure desktop > shortcuts > Global shortcuts > power management。降低屏幕亮度(默认设置)增加屏幕亮度(默认设置)。

仅此而已。希望这可以帮助。


1

如果您不方便使用终端,请首先尝试使用此gui方法:

  1. 单击桌面窗口右上角的系统菜单。
  2. 打开系统设置
  3. 点击电源
  4. 单击工具提示“屏幕亮度”(如果有)
  5. 单击“昏暗屏幕以节省电量”,将其切换到关闭位置

检查您的按键现在是否具有其正常的本机功能。如果他们这样做是固定的。此时,您可能需要注销或重新引导以将配置保存为永久配置。

或者,如果您的计算机没有工具提示,可让您单独关闭它,请查看它是否可以让您关闭整个高级硬件控件以重置配置文件,然后在何时/是否再次启用关键功能,请查看是否可以重新打开它,并且功能键仍然起作用。

如果您仍然希望高级硬件控制界面AHCI使显示屏变暗以节省功率,则尝试再次将拨动开关转到打开位置,并测试它们是否仍然有效;如果您的计算机与ahci兼容,则应发现它们仍然可以像宣传的那样运行。

如果他们再次退出工作并且不响应,您可能必须重新打开系统设置来重新启动,甚至注销并重新启动,但是一旦他们重新开始工作,它们应该继续工作并被linux保存并准备在Windows上再次工作。下次启动时,除非您以某种方式再次修改了本机重置和下次启动之间的键绑定

这通常是在错误关闭后发生的,在这种情况下,由于可访问性或其他一些Tweak工具对输入设备进行了一些修改,因此临时易失性配置文件无法成功保存或保存的设置与本机BIOS键绑定冲突。软件控制应将其重置为硬件控制。

如果他们从未使用过Ubuntu,则可能在原始设置中未正确检测到它们,或者出于某种原因在交互式安装期间修改了配置文件。辅助功能?

但是,这样做之后,本机默认的bios函数参考现在应该作为键绑定的默认设置恢复到linux的配置文件中,并且具有适当的关闭周期,它们应该在下次启动时继续存在。

如果不是,则您的计算机可能不完全支持ahci,您将需要使用fn键手动控制它,或尝试使用此处所有终端专家列出的提升特权的终端手动配置hack补丁方法之一。

希望这会有所帮助。我知道在某些情况下,列出的方法都无法在其他主题上对我起作用,并且该问题被列为封闭问题,因此我终于不得不在几分钟前找出NE56R的问题所在。我已经下定决心要花几个小时在终端和人员上,弄清楚配置文件的位置和语法等,以便像其他人一样手工完成键绑定,并且又从这里开始。

干杯


1

我在网上浏览后找到了解决方案,在其他地方建议了代码的拼写,并且做了一些小的修改:

1)安装xbacklight sudo apt-get install xbacklight

2)我们将使用看门狗 pip install watchdog

3)在文件夹位置创建python脚本

#!/usr/bin/env python
import sys
import time
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class MyFileSystemEventHandler(FileSystemEventHandler):
        def on_modified(self, event):
                if "brightness" in event.src_path:
                        with open('/sys/class/backlight/acpi_video0/max_brightness', 'r') as content_file:
                            max_brightness = content_file.read()                        
                        with open('/sys/class/backlight/acpi_video0/brightness', 'r') as content_file:
                            actual_brightness = content_file.read()
                        B = int(int(actual_brightness)* 100 / int(max_brightness))
                        cmd = "xbacklight -set " + str(B)
                        os.system(cmd)                        

if __name__ == "__main__":
        event_handler = MyFileSystemEventHandler()
        observer = Observer()
        observer.schedule(event_handler, "/sys/class/backlight/acpi_video0/", recursive=False)
        observer.start()
        try:
                while True:
                        time.sleep(1)
        except KeyboardInterrupt:
                observer.stop()
        observer.join()

4)菜单->启动应用程序->添加

python the/path/of/the/script.py

0

我的Sager和nVidia笔记本电脑出现问题(禁用Optimus,并且nVidia驱动程序不支持ACPI亮度)。

安装incrontab(它监视文件并在修改后执行)。

然后编写一个脚本:

#! /bin/sh
nvidia-settings -c :0 -n -a BacklightBrightness=`cat /sys/class/backlight/acpi_video0/brightness`

我称它为nvidia_brightness_sync.sh

然后,运行incrontab -e并添加以下行:

/sys/class/backlight/acpi_video0/brightness IN_CLOSE_WRITE /usr/local/bin/nvidia_brightness_sync.sh

现在,当更改ACPI亮度时,将执行nvidia-settings程序并以这种方式调整亮度:)

请注意,我假设/ sys max_brightness为100,即0到100

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.