为什么我的Thinkpad亮度控件会跳过步骤?


15

问题:有我的笔记本电脑16的亮度等级,但按压热键Fn+HomeFn+End调整亮度的3个步骤在一个时间(例如,从0至3,或15至12)。

我发现重要的是要注意到在登录屏幕上热键可以正常工作。但是登录后出现奇怪的行为。

另外,如果我将重点放在菜单上(例如,单击Firefox中的“ 文件”菜单),则热键也可以正常工作

xdotool key XF86MonBrightnessDown可以正常工作,以1步调节亮度(已选中cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness)。

我还安装了indicator-brightness-它显示了16个左脚(0-15)。

我尝试了acpi_backlight=vendor在grub中进行设置(受此主题启发:http : //ubuntuforums.org/showthread.php?t=1909184,出现类似问题)。它的工作原理是热键可以正常工作。但是出现了OSD通知,xdotool和亮度指示器的问题。因此,我认为这不是一个正确的解决方案。

似乎登录后,某些东西会干扰热键处理方案。有任何想法吗?

编辑(其他信息)

  • 我观察到热键在硬件级别上起作用-打开笔记本电脑后(例如在BIOS屏幕上),我可以立即调节亮度。

  • $ killall gnome-settings-daemon热键一步调亮度后,没有任何通知出现。不久gnome-settings-daemon恢复,并返回三步发行。

  • acpi_listen 给出以下输出(两个键依次):

    $ acpi_listen
    ibm/hotkey HKEY 00000080 00001010
    video LCD0 00000086 00000000
    ibm/hotkey HKEY 00000080 00001011
    video LCD0 00000087 00000000
    

    在这一点上,我认为(1)热键在硬件级别起作用;(2)ibm/hotkey照顾热键;(3)video也要注意。因此,出现了三步问题。

    我尝试将视频列入黑名单(我希望这会导致双步行为),但没有任何变化。

作为一种变通方法,我创建了CompizConfig设置管理器中我自己的热键-描述在这里,但--clearmodifiers参数:

xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown

因此,现在我可以使用初始热键或新的热键进行更好的调整。

公开问题

对于这种情况,已经有两步讨论了:Lenovo ThinkPads,亮度功能键由两步而不是一步,寻找解决方法

硬件只是这样做,然后还发出一个信号,说明已按下按钮。可能您可以在系统->首选项->键盘快捷方式中取消此操作的快捷方式吗?

但是我很想知道

  1. 为什么我得到三重一步的问题?
  2. 如何取消设置处理此热键?

如果有人解释我将不胜感激。

Answers:


14

1次按键的3个步骤从何而来?

一键获得三个亮度步骤,因为:

  1. 标准ACPI /视频驱动程序会调整 步骤1
  2. thinkpad_acpi司机告诉BIOS调整第2步,但仍转发按键事件
  3. GNOME电源守护程序拦截了此按键,并告诉ACPI再次调整步骤3

1.禁用视频驱动程序自行调节亮度

这摆脱了上面的三个步骤(步骤1)之一。

  • 打开终端
  • 类型 sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • 测试,现在你应该有步骤的亮度控制2
  • 在启动时,自动开启关闭该/etc/rc.local在你喜欢的编辑器,和之前的最后一行(exit 0)添加:

    echo -n 0> / sys / module / video / parameters / brightness_switch_enabled

2.重新编译thinkpad_acpi模块以解决双击问题

  • 我们必须停止thinkpad_acpi从通过调整BIOS中的亮度,并让它将按键转发给GNOME,以便GNOME进行唯一的调整步骤
  • 这是一个已知的错误,已在内核3.4+中修复
  • 要针对Ubuntu 12.04 / Precise进行修复,我们将对其进行补丁thinkpad_acpi并重新编译:

    1. 安装内核头文件: sudo apt-get install linux-headers-$(uname -r)
    2. 安装构建工具 sudo apt-get install build-essential
    3. 制作一个临时目录并更改为:
      mkdir〜/ tpacpi-bright && cd〜/ tpacpi-bright
    4. thinkpad_acpi.c从Ubuntu Kernel git存储库下载并修补源文件:

      wget -O-“ http://kernel.ubuntu.com/git?p = ubuntu / ubuntu-precise.git; \
      a = blob_plain; f = drivers / platform / x86 / thinkpad_acpi.c; hb = HEAD“ \
      | sed -e's / tp_features.bright_acpimode && acpi_video / acpi_video / g'\
      > thinkpad_acpi.c
    5. thinkpad_acpi.c已下载的同一文件夹中,您将需要一个“ Makefile”。您可以使用以下方法直接从Pastebin下载它:

      wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT

    或将以下内容粘贴到名为的文件中Makefile

    obj-m + = thinkpad_acpi.o
    所有: 使-C / lib / modules / $(shell uname -r)/ build M = $(PWD)模块
    清洁: 使-C / lib / modules / $(shell uname -r)/ build M = $(PWD)干净
    1. 现在键入make以创建模块;完成后,您将thinkpad_acpi.ko在文件夹中看到一个文件。
  • 加载后,测试修补的模块:

    sudo rmmod thinkpad_acpi和&sudo lsmod thinkpad_acpi.ko
  • 如果现在亮度固定并且可以完全控制,请用已修补的模块更换备用模块:

    TPDIR = / lib /模块/ $(uname -r)/内核/驱动程序/平台/ x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    须藤MV〜/ tpacpi-bright / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • 您可以使用以下命令清理构建文件夹make clean:保留它以便将来进行内核升级!


谢谢您的回答!您的解决方案完全对我有用。唯一的问题-亮度控制现在在登录屏幕上不起作用(我似乎理解为什么-因为使用了new thinkpad_acpi,但是GNOME power守护程序已经倒闭了)。
Andrey 2012年

为了学习,您能告诉我,有没有办法告诉GNOME power守护进程不要像video驱动程序那样处理亮度热键?Ubuntu提供了All Settings -> Keyboard -> Shortcuts用于自定义音频热键(提高音量/降低音量,静音)的GUI(),但是我没有找到可以更改或禁用亮度键的位置。
安德烈(Andrey)2012年

@Andrey:不客气!我有一台Thinkpad T520,所以这是解决问题的好机会。至于登录屏幕,我认为解决方法是将disable而不是in放在rc.localin ~/.profile,以便仅登录后才激活。如果有一种简单的方法可以禁止GNOME电源守护程序处理亮度热键,那么它也将禁用OSD(如backlight=vendor);正确执行此操作可能需要修改源代码...我将尝试对其进行查看。无论如何,一旦12.10发布了,他们将发布针对12.04的固定反向移植内核,因此它将可以正常工作。
ish 2012年

2

我遇到了与您完全相同的问题,而且我的系统始终在屏幕关闭时启动。

我要感谢您为我指明了正确的方向,acpi_backlight=vendor为我成功了,没有遇到您遇到的任何问题。我正在使用带有混合图形的HP G7 1116sg(Intel HD3000 (由于ubuntu中存在混合问题,目前仅使用intel。我之所以这么说是因为X220被列为具有相同的图形适配器) / Radeon HD6870)和Ubuntu 12.04。

只是想说grub的更改对我有用,没有任何明显的问题。

祝您好运。


很高兴它为您服务!
安德烈(Andrey)2012年

0

设置/sys/module/video/parameters/brightness_switch_enabled0会使我无法通过tty和xfce 4.10中的快捷键完全控制Thinkpad X230上的亮度。我不得不告诉xfce4-power-manager不要更改关键事件的亮度。您可以通过设置两个隐藏的配置键之一来实现。第一个是:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false

第二个:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false

注意:这两个设置均会禁用系统上的亮度弹出屏幕,但至少我可以将16种亮度级别全部恢复!

您可以在此页面此页面的底部阅读有关此问题的更多信息。


0

在我的Lenovo S205笔记本电脑中,我遇到了这个问题,视频驱动程序和gnome都调节了亮度。

但是我的经验使 brightness_switch_enabled属性的是,gnome速度很慢,并且在更新背光灯时显得有些呆板-例如,如果我将按键放下几秒钟然后放开,gnome仍然需要5到10秒钟来处理事件。

因此,我宁愿让视频驱动程序进行调整,并停止gnome进行调整。

sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper

禁用 gsd-backlight-helper对我有用。我爬网,似乎没有用户可见的选项可以执行此操作。

我确实失去了亮度OSD,但是现在亮度变化可以立即处理,此外,我仍然可以在tty上进行亮度控制。

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.