Eu tenho um servidor JACK configurado no meu computador para cuidar de todas as entradas e saídas de som. Quando eu conecto uma placa de som USB externa (nome: CODEC), eu quero que ela seja detectada pelo udev, então eu configuro as regras do udev para detectar quando a placa está conectada e fora e para executar um comando de acordo:
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"
Para verificar se o cartão está sendo detectado, o script soundcard.sh é executado
$ aplay -l > logfile1.txt
Eu encontro na saída:
card 2: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
como deveria, mas quando uso
$ su -c "aplay -l > logfile2.txt" -l myname
Eu não! Executar o script como usuário produz resultados diferentes! O que está acontecendo? Alguma pista?