我的Lenovo Thinkpad T420上有一个麦克风静音按钮,但不起作用。
因此,我尝试使用xev
命令来监视新闻事件,但没有捕获到该键。
无论如何,有没有修复它,例如添加原始密钥代码?
操作系统和笔记本电脑
Ubuntu 12.04
,也希望它可以在Arch Linux上运行,但没什么大不了; -P
Thinkpad模块: X220 4290LY9
适用于Arch Linux的内核补丁
最后
这有点棘手,但是有了内核补丁和acpid脚本,它现在可以工作了。
我需要的其余部分是一个通知守护程序,如输出静音的通知守护程序,但现在并没有多大关系。
该解决方案应适用于所有带静音按钮的Thinkpad,并且该按钮还带有内置指示灯。它可能也适用于其他Thinkpad。
除了通知气泡:
有两个可能的“硬件”指示器(以显示静音打开或关闭):
麦克风静音按钮指示灯(橙色)将亮起或熄灭以显示静音状态(就像在Windows中一样)
解决方案2需要修补的thinkpad_acpi
内核模块,仅推荐给知道自己在做什么的高级用户使用。这是因为默认情况下,thinkpad_acpi开发人员不包括该补丁程序(有关更多详细信息,请参见此讨论)。
Ctrl+Alt+T
acpi_listen
,然后按静音键注意结果,它应该是这样的: ibm/hotkey HKEY 00000080 0000101b
然后运行amixer scontrols
,您应该在输出中看到以下之一:
简单的混音器控制“内部麦克风”,0
或者
简单的混音器控制“ Capture”,0
根据您看到的内容,“内部麦克风”或“捕获”是您的输入设备。
gksudo gedit /etc/acpi/events/lenovo-mutemic
以打开编辑器。acpi_listen
:event = ibm / hotkey HKEY 00000080 0000101b action = / etc / acpi / lenovo-mutemic.sh
gksudo gedit /etc/acpi/lenovo-mutemic.sh
在编辑器中,粘贴:
#!/ bin / bash INPUT_DEVICE =“'内部麦克风'” YOUR_USERNAME =“ place_your_username_here” 如果混合器获取$ INPUT_DEVICE,0 | grep'\ [on \]'; 然后 混音器设置$ INPUT_DEVICE,0切换 回显“ 0闪烁”> / proc / acpi / ibm / led su $ YOUR_USERNAME -c'DISPLAY =“:0.0”通知发送-t 50 \ -i麦克风灵敏度-静音-符号“ Mic MUTED”' 否则 混音器设置$ INPUT_DEVICE,0切换 su $ YOUR_USERNAME -c'DISPLAY =“:0.0” notify-send -t 50 \ -i麦克风灵敏度高符号“ Mic ON”' 回声“ 0 on “> / proc / acpi / ibm / led fi
将INPUT_DEVICE变量的值替换Capture
为您输入的设备名称(保留所有刻度)。
sudo chmod + x /etc/acpi/lenovo-mutemic.sh sudo服务acpid重新启动
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
您可以在此粘贴中找到完整脚本的外观示例
然后:
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
thinkpad_acpi.c
从Ubuntu Kernel git存储库下载源文件:
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
全部: make -C / lib / modules / $(shell uname -r)/ build M = $(PWD)模块
clean: make -C / lib / modules / $(shell uname -r )/ build M = $(PWD)干净
现在键入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
现在按下“麦克风静音”按钮,您会发现它很有趣,您会看到它反映在:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句