[GUFSC] Problema de som comum no Gnu/Linux

Wagner Saback Dantas wagners em das.ufsc.br
Quinta Junho 21 18:41:06 BRT 2007


Daniel, se você usa o driver OSS no seu sistema, você poderia usar o Alsa, que,
salvo engano, paraleliza a saída de som. Aqui em casa, o xmms toca com o
driver Alsa (Propriedades -> Aba "Plugins de E/S de Áudio", no campo de lista
"Plugin de saída"). 

Porém, esta não é a solução absoluta. Embora nas últimas versões de kernel
2.6.x (acho que na família 2.6 toda), a opção de OSS esteja como "obsoleta"
("deprecated"), há distribuições que ainda a habilitam e carregam os seus
módulos. Ou então, ainda acontece de haver módulos como o snd_pcm_oss, que
emula o OSS no Alsa (interessante uma coisa que percebi enquanto escrevia
este e-mail, o parâmetro "nonblock_open", poderia ser útil! Veja abaixo):

# modinfo snd_pcm_oss

filename:       /lib/modules/2.6.13.2/kernel/sound/core/oss/snd-pcm-oss.ko
author:         Jaroslav Kysela <perex em suse.cz>, Abramo Bagnara <abramo em alsa-project.org>
description:    PCM OSS emulation for ALSA.
license:        GPL
alias:          sound-service-?-3
alias:          sound-service-?-12
vermagic:       2.6.13.2 preempt K7 gcc-3.3
depends:        snd-pcm,snd,snd-mixer-oss
parm:           nonblock_open:Don't block opening busy PCM devices. (bool)
parm:           adsp_map:PCM device number assigned to 2nd OSS device. (array of int)
parm:           dsp_map:PCM device number assigned to 1st OSS device. (array of int)

Ademais, alguns (vários) softwares ainda usam OSS. O mplayer do
computador daqui de casa usa OSS por exemplo. Então, quando toco o mplayer
(OSS) e xmms (Alsa), o xmms não toca.  Quando faço o inverso (primeiro o xmms
com Alsa, depois o mplayer com OSS), ambos tocam!

Como foi dito nesta thread, uma boa é usar um gerenciador de som. Mas, para
quem não usa (eu não uso por exemplo), é preciso apelar para soluções
caseiras, como a sua. :-) A minha é usar o comando "lsof" com um pipe para
alguma palavrinha chave, como "audio":

# lsof | grep audio
lsof: WARNING: can't stat() ext3 file system /dev/.static/dev
      Output information may be incomplete.
xmms      7867      wagner  mem       REG        3,6    84640     457891
/usr/lib/libaudio.so.2.4
xmms      7867      wagner  mem       REG        3,6    55648    1113640
/usr/lib/xmms/Input/libcdaudio.so
xmms      7867      wagner  mem       REG        3,6   142408     460540
/usr/lib/libaudiofile.so.0.0.2
xmms      7875      wagner  mem       REG        3,6    84640     457891
/usr/lib/libaudio.so.2.4
xmms      7875      wagner  mem       REG        3,6    55648    1113640
/usr/lib/xmms/Input/libcdaudio.so
xmms      7875      wagner  mem       REG        3,6   142408     460540
/usr/lib/libaudiofile.so.0.0.2

Enfim, são sugestões...

[]'s
Wagner.

On Thu, Jun 21, 2007 at 10:29:43AM -0300, Daniel Martins wrote:
> De vez em quando o xmms diz que a placa está ocupada ou tem outro programa
> rodando e nem sempre se sabe o que está travando o som.
> 
> Depois de buscar e não encontrar a solução fiz minha solução caseira
> 
> 
> 1) Rodei o mplayer em modo texto para ver o que estava prendendo
> 
> $ mplayer /home/user/MinhaMusica.mp3
> 
> Na saída teve um comentário
> 
> ==========================================================================
> alsa-lib: pcm_hw.c:1242:(snd_pcm_hw_open) open /dev/snd/pcmC0D0p failed:
> Device or resource busy
> 
> 
> 2) com o dispositivo pcmC0D0p localizado procurei quem ocupava o som e eis a
> surpresa
> 
> 
> $ fuser -v  /dev/snd/pcmC0D0p
> 
>                                USER        PID ACCESS COMMAND
> /dev/snd/pcmC0D0p:   user    16261 F.... soffice
>                     user    16279 F.... soffice.bin
> 
> 3) O staroffice ou openoffice de uma arquivo Word estava usando o som (não
> sei porque!)  Logo salvei o texto e matei-o
> 
> 
> 
> $ kill -9 16261
> 
> 
> 4) Pronto o xmms está vivo de novo !!




Mais detalhes sobre a lista de discussão GUFSC