Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Mar 2006 13:35:29 +0800
From:      Ariff Abdullah <ariff@FreeBSD.org>
To:        "Rong-En Fan" <grafan@gmail.com>
Cc:        freebsd-multimedia@FreeBSD.org
Subject:   Re: skype sound problem
Message-ID:  <20060329133529.66e18afa.ariff@FreeBSD.org>
In-Reply-To: <6eb82e0603282051j65496dcbr536a2d6f6478e774@mail.gmail.com>
References:  <6eb82e0603282051j65496dcbr536a2d6f6478e774@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--Signature=_Wed__29_Mar_2006_13_35_29_+0800_m4GtKcZciTDDDhom
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, 28 Mar 2006 23:51:45 -0500
"Rong-En Fan" <grafan@gmail.com> wrote:
> Hi,
>=20
> When I use skype, just call anyone then hang up it. Then, the skype
> can not open the dsp device again. fstat shows that no process is
> opening /dev/dsp*. But, /dev/sndstat
> shows:
>=20
> FreeBSD Audio Driver (newpcm)
> Installed devices:
> pcm0: <Intel ICH4 (82801DB)> at io 0xc0000c00, 0xc0000800 irq 11
> bufsz 16384 kld
>  snd_ich (1p/1r/10v channels duplex default)
>         [pcm0:play:0:dsp0.0]: spd 48000, fmt 0x10000010, flags
> 0x00101020, 0x00000000
>         interrupts 389, underruns 0, ready 0
>         [b:8192/4096/2|bs:131072/4096/32] {userland} ->
>         feeder_vchan_s16(0x10000010) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:0:dsp0.2]: spd 48000, fmt
> 0x00000010/0x10000010, flags 0x10003030, 0x00000000, pid 1004
>         interrupts 0, underruns 0, ready 0
>         [b:0/4096/0|bs:4096/256/16] {userland} ->
>         feeder_root(0x00000010) ->
> feeder_monotostereo16(0x00000010 -> 0x10000010) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:1:dsp0.3]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:2:dsp0.4]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:3:dsp0.5]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:4:dsp0.6]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:5:dsp0.7]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:6:dsp0.8]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:7:dsp0.9]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:8:dsp0.10]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         pcm0:play:0:dsp0.0[pcm0:virtual:9:dsp0.11]: spd 0, fmt
> 0x00000000/0x00000008, flags 0x10000000, 0x00000000
>         interrupts 0, underruns 0, ready 0 [b:0/0/0|bs:0/0/0]
>         {userland} -> feeder_root(0x00000000) -> {hardware}
>         [pcm0:record:0:dsp0.1]: spd 48000, fmt
>         0x00000010/0x10000010,
> flags 0x00003000, 0x00000000, pid 1004
>         interrupts 0, overruns 0, hfree 1024, sfree 4096
> [b:1024/512/2|bs:4096/256/16]
>         {hardware} -> feeder_root(0x10000010) ->
> feeder_stereotomono16(0x10000010 -> 0x00000010) -> {userland}
>=20
> You may notice that pid 1004 is using record and dsp0.2, this
> process is skype_bin.
> If I close skype, /dev/sndstat still shows that pid 1004 occupies
> record channel and dsp0.2 (but ps shows that there is no pid 1004).=20
> Any ideas?
>=20
> I'm running -CURRENT around March 22 on i386. I dont think I have
> this problem in Feb or in Jan. I will try do a binary search later
> (In fact, I tried to boot with Feb
> 1's kernel, but got a panic about 'bad dir' :-().
>=20

This is a known issue (at least, for me).

Update your src (at least for sys/dev/sound/pcm), and apply this
patch:

  http://people.freebsd.org/~ariff/test/sound.c.diff

.. or just grab the entire file (sound.c) from there.

Note that you *must* update your sources first, since there was
critical issues that has been fixed since past few weeks.


--
Ariff Abdullah
FreeBSD

--Signature=_Wed__29_Mar_2006_13_35_29_+0800_m4GtKcZciTDDDhom
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (FreeBSD)

iD8DBQFEKhyjlr+deMUwTNoRAmZOAJ45mWTaMcJXvYvmGNAMN7iUe1BIMgCgy9m4
5fqt/f8zTMactf8gyxQFVn0=
=MUa9
-----END PGP SIGNATURE-----

--Signature=_Wed__29_Mar_2006_13_35_29_+0800_m4GtKcZciTDDDhom--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060329133529.66e18afa.ariff>