Ubuntu 14.04 LTS
内核:3.19.0-37-generic
介绍
当我启动acpi_listen
系统时,我可以测试几个 LaptopSpecialKeys。亮度按钮工作正常,例如:
video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000
所需功能正在运行。
问题
如果我测试其他一些键,它们要么根本没有触发 acpi 事件(acpi_listen 不执行任何操作),要么几个键映射到相同的代码,例如三个音量键:
button/volumeup VOLUP 00000080 00000000 K
button/volumedown VOLDN 00000080 00000000 K
button/mute MUTE 00000080 00000000 K
音量键被映射到相同代码的结果是音量调高、调低和静音操作都表现得非常奇怪。例如,如果我按下音量调高功能键,则会无限重复触发音量调高事件。
最奇怪的是:
acpi 事件如何区分这三个键,认识到每个键都有自己的功能(VOLUP,VOLDN,MUTE),尽管这三个键都有相同的代码 0x80?问题
您是否知道如何处理 acpi 事件的此类问题?这是内核的问题,无法识别特定的笔记本驱动程序?或者是否有用户级别的解决方案可以修复 LaptopSpecialKeys 的这种损坏的功能?
答案1
实际上它们非常容易区分,你的脚本将接收整行作为参数。例如:
button/volumeup VOLUP 00000080 00000000 K
您有 5 个参数,您可以自由地处理它们。
也许是最简单的方法:
event=button/*
action=/etc/acpi/yourscript.sh %e
然后在您的脚本中使用第 3 个参数$3
,即VOLUP
,VOLDN
或MUTE
,加上一些其他按钮(电源,......)。
看: