/dev/dsp: Softphones fuer VoIP geben keinen Ton
Jan 'RedBully' Seiffert
redbully at cc.fh-luh.de
Mon Aug 15 14:06:45 CEST 2005
Hauke Joachim Zuehl schrieb:
> Hi :)
>
Ho,
> Nach laengerer Zeit der Abwesenheit, melde ich mich gleich mal mit einer Frage
> zu einem merkwuerdigen Phaenomen zurueck:
> Per Softphone (KPhone, X-Lite) will ich telefonieren. Dummerweise hoere ich
> aus meinen Lautsprechern keinen Ton :(
>
das du telefonieren willst ist dabei mal ganz unerheblich ...
> Geraet ist /dev/dsp, Gruppenzugehoerigkeit ist in Ordnung, wie mplayer beweist
> (auch xmms brummt):
... wenn anscheinend einfach nen Sound abspielen nicht mal geht.
> hauke at fafnir [xten-xlite] >>lsof /dev/dsp
> COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
> mplayer 8737 hauke 5w CHR 14,3 127792 /dev/dsp
>
Hmmmm,
/dev/dsp, OpenSoundSystem o. Emulation, hmmm.
Geh mal sicher das *keine* Software versucht drauf zuzugreifen
(Soundserver, Daemons, ach, einfach alles), und dann der klassische "cat
sounddatei.wav > /dev/dsp", wenn dann keine Musik zu heoren ist, ist
einfach dein Soundtreiber nicht richtig am laufen.
Es gibt zwar noch den sonderfall das du ALSA hast und die OSS-Emulation
nicht geht, aber mit kernel 2.4.bla gehe ich jetzt mal nicht von ALSA
aus (du hast ja leider nicht geschrieben, welche Soundhardware du dein
eigen nennst und/oder was die unterliegende Treiberarchitektur ist).
> Dann habe ich auf X-Lite mal einen strace gemacht nud folgender Abschnitt ist
> mir aufgefallen:
> open("/dev/sndstat", O_RDONLY) = -1 ENODEV (No such device)
> access("/dev/dsp", R_OK|W_OK) = 0
> rt_sigaction(SIGALRM, {0x4002e7a0, [ALRM], SA_RESTORER|SA_RESTART,
> 0x407506f8},
> {SIG_DFL}, 8) = 0
> rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
> alarm(1) = 0
> open("/dev/dsp", O_RDWR|O_NONBLOCK) = 6
Jo, ein /dev/dsp findet er und kann es auch oeffnen...
> alarm(0) = 1
> ioctl(6, SOUND_PCM_READ_CHANNELS, 0xbffff40c) = 0
> ioctl(6, SOUND_PCM_READ_CHANNELS, 0xbffff40c) = 0
> ioctl(6, SNDCTL_DSP_GETCAPS, 0xbffff408) = 0
> ioctl(6, SNDCTL_DSP_GETFMTS, 0xbffff408) = 0
> ioctl(6, SNDCTL_DSP_GETTRIGGER, 0xbffff408) = 0
> ioctl(6, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xbffff404) = 0
> ioctl(6, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xbffff404) = 0
> ioctl(6, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xbffff404) = 0
> ioctl(6, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 0xbffff404) = 0
Tja, schade. ^
Die ioctl waren zwar erfolgreich, aber das Ergebnis |
steht da ----------------------------------------------| an der Adresse,
nicht im Straceoutput...
> close(6) = 0
Und anscheinend war das nicht zufriedenstellend was die ioctl's
geliefert haben, denn nun machen wir /dev/dsp wieder zu...
> access("/dev/dsp0", R_OK|W_OK) = -1 ENOENT (No such file or
> directory)
> access("/dev/sound/dsp0", R_OK|W_OK) = -1 ENOENT (No such file or
> directory)
Suchen wir mal noch andere /dev/dsp...
> access("/dev/dsp1", R_OK|W_OK) = 0
Auf /dev/dsp1 koennen wir zugreifen...
> rt_sigaction(SIGALRM, {0x4002e7a0, [ALRM], SA_RESTORER|SA_RESTART,
> 0x407506f8},
> {0x4002e7a0, [ALRM], SA_RESTORER|SA_RESTART, 0x407506f8}, 8) = 0
> rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
> alarm(1) = 0
> open("/dev/dsp1", O_RDWR|O_NONBLOCK) = -1 ENODEV (No such device)
... koennen es aber nicht oeffnen da es nicht existiert?
[snip - noch mehr /dev/dspX die wir testen]
> pipe([6, 7]) = 0
>
> Also /dev/sndstat fehlt. Braucht man das dringend, wenn ja: Wie sind die
> Parameter zur Erzeugung des Geraetes?
>
> Mache ich unter KPhone / X-Lite ein lsof /dev/dsp kommt nix an und obige ioctl
> Ergebnisse machen mir auch ein wenig Sorge.
>
Check simple things first.
Erstmal gilt es, ueberhaupt nen Ton raus zu bekommen, je weniger
Stoerfaktoren (X, Desktop, Soundserver, Hintergrundapps), desto besser.
Also irgendwas in die Richtung
"einfaches_abspielprogramm <funktionierendes_soundfile>" in einer shell,
in nem niedrigen runlevel (kein X).
Dann langsam hocharbeiten ;).
> Ach ja:
> System ist ein Debian Sarge mit Kern 2.4.21.
>
Achja:
hast du mal einen Blick in deinen (Software-) Mixer geworfen, ob die
Kanaele ueberhaupt aufgezogen sind?
> Danke schon mal und Gruss,
> Hauke
Gruss
Jan
--
Thus spake the master programmer:
"Though a program be but three lines long,
someday it will have to be maintained."
More information about the Linux
mailing list