すべてのサウンドの入力と出力を処理するためにコンピュータに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
私はそうではありません!ユーザーとしてスクリプトを実行すると、別の結果が生成されます。どうなりますか?どんな手がかりがありますか?