모든 사운드 입력 및 출력을 처리하기 위해 컴퓨터에 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
나는 아니에요! 사용자로 스크립트를 실행하면 다른 결과가 생성됩니다! 어떻게 되어가나요? 어떤 단서가 있나요?