编辑(附加信息)

编辑(附加信息)

问题:我的笔记本电脑有 16 个亮度级别,但按热键Fn+Home可以Fn+End调整亮度3 个步骤(例如从0到3,或从15到12)。

我觉得有必要注意在登录屏幕上热键工作正常。但登录后出现奇怪的行为。

还,如果我把焦点放在菜单上(例如点击文件菜单),热键工作正常

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

所以现在我可以使用初始热键或新的热键进行更精细的调整。

未解决的问题

对于双步的情况已经有了讨论:联想 ThinkPad,亮度功能键分为两个步骤,而不是一个步骤,正在寻找解决方法

硬件只是执行此操作,然后还发出信号表示按钮已被按下。您是否可以在“系统 -> 偏好设置 -> 键盘快捷键”中取消设置此操作的快捷方式?

但我很想知道,

  1. 为什么我得到三倍步骤问题?
  2. 我怎样才能取消处理此热键?

如果有人解释一下我将非常感激。

答案1

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'
  • 测试,现在你应该可以按步骤控制亮度
  • 要在启动时自动禁用此功能,请/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 =驱动程序/平台/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”。您可以直接从此处下载粘贴箱, 使用:

      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完成后您将在文件夹中看到一个文件。
  • 加载修补后的模块后对其进行测试:

    须藤 rmmod thinkpad_acpi && 须藤 lsmod thinkpad_acpi.ko
  • 如果亮度现在已固定并且您可以完全控制,请使用修补的模块替换库存模块:

    TPDIR=/lib/模块/$(uname -r)/内核/驱动程序/平台/x86
    sudo mv $TPDIR/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko.stock
    sudo mv ~/tpacpi-bright/thinkpad_acpi.ko $TPDIR/thinkpad_acpi.ko
    
  • 您可以使用 清理构建文件夹make clean;保留它以供将来的内核升级使用!

答案2

我遇到了和你完全相同的问题,而且我的系统总是在屏幕关闭的情况下启动。

我想感谢你为我指明了正确的方向,acpi_backlight=vendor帮我解决了问题,没有遇到你遇到的任何问题。我使用的是 HP G7 1116sg,带有混合显卡(Intel HD3000(目前仅使用英特尔,因为 ubuntu 中存在混合问题。我这样说只是因为 X220 被列为具有相同的图形适配器)/ Radeon HD6870) 和 Ubuntu 12.04。

只是想说 grub 的改变对我来说很有效,没有任何明显的问题。

祝你好运找到解决方案。

答案3

设置/sys/module/video/parameters/brightness_switch_enabled0使我无法通过快捷键控制 Thinkpad X230 上的亮度,无论是在 tty 中还是在 xfce 4.10 中。我不得不告诉 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 个亮度级别!

您可以阅读有关此问题的更多信息这一页以及本页底部

答案4

在我的联想 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 控制亮度。

相关内容