/dev/snd/* device or resource busy ?

Il est parfois possible de na pas pouvoir lançer son lecteur multimédia préfèré à cause de ce message d'erreur :

open /dev/snd/pcmC0D0p failed: Device or resource busy

Ce message signifie qu'une autre application utilise déjà ce périphérique (celui audio) et qu'il n'est pas possible à ce moment que plusieurs applications l'utilisent (c'est généralement le cas et ca fonctionen très bien, mais je ne sais pas pourquoi dans certains cas on ne peut pas partager le périphérique...).

Il faut alors le libérer pour pouvoir lançer son lecteur multimédia préfèré, tout d'abord regardons quelle(s) application(s) utilisent le périphérique en question (tout est à faire en root) :

lsof | grep snd

Le lsof et le grep devraient renvoyer quelque chose ressemblant à ceci :

pulseaudi 5421    user  mem       REG        8,1    396264     229523 /usr/lib/libsndfile.so.1.0.20
pulseaudi 5421    user  21u      CHR      116,0       0t0      13851 /dev/snd/controlC0
pulseaudi 5421    user   27u      CHR      116,0       0t0      13851 /dev/snd/controlC0
gconf-hel 5438    user mem       REG        8,1    396264     229523 /usr/lib/libsndfile.so.1.0.20
mixer_app 5446    user   21r      CHR      116,0       0t0      13851 /dev/snd/controlC0
firefox-b 5840    user  mem       CHR     116,16                13808 /dev/snd/pcmC0D0p
firefox-b 5840    user   85r      CHR     116,33       0t0      13733 /dev/snd/timer
firefox-b 5840    user   86u      CHR     116,16       0t0      13808 /dev/snd/pcmC0D0p

Maintenant, il faut analyser tout ca :

  • pulseaudio : le serveur audio (obligatoire), je cite :

"Il vous permet de procéder à des opérations avancées sur le son en s'intercalant entre la couche logicielle et la couche matérielle."

Source : ubuntu-fr

  • gconf : éditeur de configuration de votre fichier ~/.gconf ;
  • mixer_app : ca, c'est le controleur de volume du son de votre système sous Gnome (il n'est pas obligatoire) ;
  • firefox : dans mon cas, c'est mon navigateur web.

Nous allons tout d'abord régler le bug (c'est un bug !) en "tuant" pulseaudio et mixer_app, et il faut relancer pulseaudio (mixer_app doit se relancer quand vous le killez et toujours en root) :

kill 5446 # (5446 est le pid du processus mixer_app)
kill 5421 # (pour pulseaudio)

Relancons pulseaudio :

/etc/init.d/pulsaudio start

Maintenant, retentez mplayer (ou un autre lecteur), si ca ne fonctionne toujours pas, "tuez" (kill) tous les processus que "lsof | grep snd" vous sort, c'est un peu bourrin, mais ca fonctionne et relancez-le si il le faut.

Attention : le problème s'est produit sous debian, donc certains outils sont spécifiques à la distribution !

Vus : 404
Publié par Scurz : 48