在更新到20.04之后,我发现耳机插孔不能正常工作。因此,作为解决办法,我想在acpi事件上运行一个脚本。例如,当耳机插孔被插入,以重新加载声音模块。这是一个脚本:
#!/bin/sh
#if [ -z "$1" ]; then
# echo "Pulseaudio has these cards:"
# pacmd list-cards | grep 'name: '
#fi
MODULE_INDEX=`pacmd list-modules | tac | grep -A 10 -e "argument: .*$1" | grep 'index:' | head -n 1 | cut -d ':' -f 2 | tr -d ' '`
MODULE_NAME=`pacmd list-modules | tac | grep -A 10 -e "argument: .*$1" | grep 'name:' | head -n 1 | cut -d ':' -f 2 | tr -d '<>'`
MODULE_ARGUMENTS=`pacmd list-modules | tac | grep -e "argument: .*$1" | head -n 1 | cut -d ':' -f 2 | tr -d '<>'`
#echo "Module index is $MODULE_INDEX"
#echo "Module name: $MODULE_NAME"
#echo "Module args: $MODULE_ARGUMENTS"
if [ -z "$MODULE_INDEX" ]; then echo "Could not find module index"; exit 0; fi
if [ -z "$MODULE_NAME" ]; then echo "Could not find module name"; exit 0; fi
if [ -z "$MODULE_ARGUMENTS" ]; then echo "Could not find module arguments"; exit 0; fi
#echo "Unloading module"
pacmd unload-module $MODULE_INDEX
#echo ""
#echo "Reloading module"
pacmd load-module $MODULE_NAME $MODULE_ARGUMENTS
#echo ""如果我手动运行它,这很好。
接下来,我想在acpi事件上运行它。当我插入插孔时使用acpi_listen
jack/headphone HEADPHONE plug接下来,在/etc/acpi/events中,我创建了包含
event=jack/headphone HEADPHONE plug
action=/etc/acpi/soundcard2.sh我重新启动了
sudo service acpid restart(我甚至重新启动了系统),但当我插入耳机插孔时,什么都没有发生。我做错什么了吗?
提前感谢
发布于 2020-04-30 13:57:46
我只有Ubuntu18.04,所以也许systemd已经在20.04接管了更多的acpi事件的控制,您需要了解如何禁用它(例如在/etc/systemd/logind.conf中)。为了获得日志记录,我在/etc/default/acpid中添加了一行
OPTIONS=--logevents在sudo systemctl restart acpid之后,当我插入耳机时,我在systemd日志中看到了一些事件,它运行我的脚本ok:
$ sudo journalctl -u acpid -f
... acpid[2554]: 9 rules loaded
... acpid[2554]: waiting for events: event logging is on
... acpid[2554]: received input layer event "jack/headphone HEADPHONE plug"
... acpid[2554]: rule from /etc/acpi/events/meuh matched
... acpid[2558]: executing action "/home/meuh/bin/myscript"
... acpid[2554]: action exited with status 0
... acpid[2554]: 1 total rule matched
... acpid[2554]: completed input layer event "jack/headphone HEADPHONE plug"https://askubuntu.com/questions/1233078
复制相似问题