我在计算机中设置了一个 JACK 服务器来处理所有声音输入和输出。当我连接外部 USB 声卡(名称:CODEC)时,我希望 udev 能够检测到它,因此我设置了 udev 规则来检测卡何时插入和拔出,并相应地运行命令:
ACTION=="add", SUBSYSTEM=="sound", ATTR{id}=="CODEC", RUN+="/home/myname/scripts/soundcard.sh connected"
ACTION=="remove", SUBSYSTEM=="sound", ENV{ID_MODEL}=="USB_Audio_CODEC", RUN+="/home/myname/scripts/soundcard.sh disconnected"
要检查是否检测到该卡,请运行 soundcard.sh 脚本
$ aplay -l > logfile1.txt
我在输出中发现:
card 2: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
正如我应该的,但是当我使用
$ su -c "aplay -l > logfile2.txt" -l myname
我不!以用户身份运行脚本会产生不同的结果!这是怎么回事?有什么线索吗?