当前位置: 首页>>技术教程>>正文


在Lenovo Thinkpad上启用麦克风静音按钮和指示灯

, ,

问题描述

我的Lenovo Thinkpad T420上有一个麦克风静音按钮,但是不起作用。

因此,我尝试使用xev命令来监视新闻事件,但未捕获该键。

无论如何,有没有修复它,例如添加原始密钥代码?

操作系统和笔记本电脑

Ubuntu 12.04,也希望它可以在Arch Linux上运行,但没什么大不了; -P

Thinkpad模块:X220 4290LY9

适用于Arch Linux的内核补丁

Download Here

最后

这有点棘手,但是有了内核补丁和acpid脚本,它现在可以工作了。

我需要的其余部分是一个通知守护程序,如输出静音的通知守护程序,但现在没有多大关系了。

最佳办法

该解决方案应适用于所有带静音按钮的Thinkpad,并且该按钮也带有内置指示灯。它可能也适用于其他Thinkpad。

除了通知气泡:

有两个可能的”hardware”指示灯(以显示静音打开或关闭):

  1. 静音启用时,电源按钮指示灯(绿色)将闪烁以显示

  2. 麦克风静音按钮指示灯(橙色)将亮起或熄灭以显示静音状态(就像在Windows中一样)解决方案2需要修补的thinkpad_acpi内核模块,仅建议知道其工作状态的高级用户使用。这是因为thinkpad_acpi开发人员默认不包含该修补程序(See this discussion for more details)。

常见步骤


一种。确定Mic-Mute热键代码和麦克风输入设备

  • 使用Ctrl+Alt+T打开终端

  • 运行acpi_listen,然后按静音键

  • 注意结果,它应该类似于:ibm/hotkey HKEY 00000080 0000101b

  • 然后运行amixer scontrols,您应该在输出中看到以下内容之一:


Simple mixer control 'Internal Mic',0

要么


Simple mixer control 'Capture',0

根据您看到的内容,”Internal Mic”或”Capture”是您的输入设备。

b。创建Mic-Mute ACPI事件处理程序

  • 打开终端,键入gksudo gedit /etc/acpi/events/lenovo-mutemic以打开编辑器。

  • 在编辑器中,粘贴以下内容,第一行应为acpi_listen上一部分中显示的代码:event = ibm /hotkey HKEY 00000080 0000101b action = /etc /acpi /lenovo-mutemic.sh

  • 保存并退出编辑器。


选择电源指示灯或麦克风静音指示灯


c-1。具有电源按钮指示灯的Mic-Mute脚本

  • 如果您想要一个简单的解决方案并且不想使用修补的内核模块(请参阅C-2),请执行此操作。

  • 打开端子,输入gksudo gedit /etc/acpi/lenovo-mutemic.sh

  • 在编辑器中,粘贴:#!/bin /bash INPUT_DEVICE =“ ‘Internal Mic’” YOUR_USERNAME = “place_your_username_here”如果搅拌器sget $ INPUT_DEVICE,0 | grep ‘\[on\]’;然后搅拌机固定$ INPUT_DEVICE,0切换回显“ 0闪烁”的/proc /ACPI /IBM /苏导致$ YOUR_USERNAME -c ‘DISPLAY = “:0.0” notify-send -t 50 \ -i microphone-sensitivity-muted象征”Mic MUTED”‘ 别的amixer SSET $ INPUT_DEVICE,0肘苏$ YOUR_USERNAME -c“DISPLAY = “:0.0” notify-send -t 50 \ -i microphone-sensitivity-high-符号”Mic ON”‘回显“ 0开启” /proc /acpi /ibm /led fi

  • 如果那是您的输入设备名称,则用Capture替换INPUT_DEVICE变量的值(保留所有刻度)。

  • 将YOUR_USERNAME变量的值替换为您要向其发送通知的用户的帐户名

  • 保存并退出编辑器。

  • 现在(从终端)运行以下命令:sudo chmod + x /etc/acpi/lenovo-mutemic.sh sudo服务acpid restart

  • 跳至“测试”部分(d)以确认它是否有效。

c-2。带有官方Mic-mute指示灯的Mic-mute

设置脚本

  • 如果您不熟悉终端/shell ,请不要使用此方法。

  • 这将需要编译修补的thinkpad_acpi模块,并且已经过验证可以与Ubuntu Precise 12.04和Quantal 12.10,内核3.2.0-23和3.2.0-24和3.5.0-21一起使用。

  • 让我们首先创建脚本:/etc/acpi/lenovo-mutemic.sh应该与c-1部分相同,并增加以下内容:

  • 在标题(#!/bin/bash)之后插入以下行:

    MICMUTE=/sys/devices/platform/thinkpad_acpi/leds/tpacpi::micmute/brightness
    
  • 在第一条echo...行之后,插入:

    echo 1 > $MICMUTE
    
  • 在第二条echo...行之后,插入:

    echo 0 > $MICMUTE
    
  • 您可以找到一个完整脚本的示例,看起来像in this paste

  • 然后:

    sudo chmod +x /etc/acpi/lenovo-mutemic.sh
    sudo service acpid restart
    
  • 确认按下静音按钮会导致电源指示灯闪烁;再次按下可稳定点亮电源。

构建,测试和安装内核模块

  • 安装(或确保)具有当前运行的内核的标头和内置工具,其中包括:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  • 制作一个临时目录并更改为:

    mkdir ~/tpacpi && cd ~/tpacpi
    
  • 从Ubuntu Kernel git存储库下载源文件thinkpad_acpi.c

    wget -Othinkpad_acpi.c "http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-$(lsb_release -sc).git;\
    a=blob_plain;f=drivers/platform/x86/thinkpad_acpi.c;hb=HEAD" 
    
  • 修补(复制并粘贴完整行):

    sed -i -e 's/"tpacpi::thinkvantage",/"tpacpi::thinkvantage",\n\t"tpacpi::unknown_led4",\n\t"tpacpi::micmute",/g' -e 's/0x1081U/0x5081U/g' -e 's/0x1fffU/0x5fffU/g' thinkpad_acpi.c
    
  • 在下载了thinkpad_acpi.c的文件夹中,您将需要”Makefile”。您可以使用以下命令直接从此Pastebin下载:

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

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

    
    obj-m += thinkpad_acpi.o
    all:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
    clean:
    	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    
  • 现在键入make创建模块;完成后,您将在文件夹中看到一个thinkpad_acpi.ko文件。

  • 加载后,测试修补的模块:

    sudo rmmod thinkpad_acpi && sudo insmod thinkpad_acpi.ko
    
  • 现在确认按下麦克风按钮将打开/关闭橙色麦克风指示灯,并且电源指示灯闪烁/稳定亮起。

  • 如果得到确认,请执行以下操作来替换当前的thinkpad_acpi模块:TPDIR = /lib /modules /$(uname -r)/kernel /drivers /platform /x86 sudo mv $ TPDIR /thinkpad_acpi.ko $ TPDIR /thinkpad_acpi.ko.stock sudo mv /where/you/built/it/tpacpi_micmute/thinkpad_acpi.ko $ TPDIR /thinkpad_acpi.ko

  • 注释掉或删除lenovo-micmute.sh中的电源指示灯线


d。测试中

  • 除了选择指标之外,您还可以通过以下方式确认静音:

  • 单击右上方的音量图标,然后单击底部的声音设置:

  • 切换到”Input”选项卡。

  • 现在,按下“麦克风静音”按钮,您将会发现乐趣:

    1. 窗口中的“静音”复选框

    2. 通知气泡(如果您每隔几秒钟按下Mic Mute一次,就不会立即显示!)

    3. 您选择的指示灯:闪烁的电源按钮指示灯或内置麦克风静音指示灯。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8119.html,未经允许,请勿转载。