Ticket #121 (closed defect: invalid)

Opened 2 years ago

Last modified 15 months ago

GNOME system sounds don't work

Reported by: ekerazha Owned by: lennart
Milestone: Component: daemon
Keywords: Cc:

Description

I've installed PulseAudio and I've configured it following "The Perfect Setup" tutorial. Sounds from audio/video players work fine, Pidgin sounds work fine... everything seems to work fine, *BUT* GNOME system sounds don't works.

I've enabled the "enable audio mixing via software (ESD)" and "play system sounds" options but they don't work. When I press the "play" button to test the sounds they don't play, but this issue is different from this one ( http://pulseaudio.org/ticket/71 ) because sounds don't play also when starting GNOME: they never play. The system sounds files exist and I can play them with an audio player, they just don't work as GNOME system sounds.

Change History

  Changed 2 years ago by tanuk

Do you load module-protocol-esound-unix in your default.pa?

If you've followed the tutorial, you probably do have it. So, is your /usr/bin/esd a symlink to esdcompat? If not, install the package that provides esdcompat, on Debian it's pulseaudio-esound-compat.

  Changed 2 years ago by ekerazha

module-protocol-esound-unix is loaded, esdcompat is here ( /usr/bin ) and I've already created the symlink ( ln -sf /usr/bin/esdcompat /usr/bin/esd ). It still doesn't work.

  Changed 2 years ago by lennart

  • status changed from new to assigned

could you pleas run gnome-sound-properties in an strace when you try to play something and paste this somehwere?

Is it possible you are running Ubuntu? Ubuntu moved the esd socket to a non-standard dir and PA 0.9.6 doesn't know that, hence gnome doesn't pick it up correctly.

  Changed 2 years ago by iroberts

I have the same problem on Ubuntu 7.04 x86_64, and it was fixed by loading module-esound-protocol-tcp. Here is what I think is the relevant section of strace output when it isn't working:

access("/usr/share/sounds/startup3.wav", F_OK) = 0
access("/usr/share/sounds/startup3.wav", F_OK) = 0
access("/tmp/.esd-1000/socket", R_OK|W_OK) = -1 ENOENT (No such file or directory)
socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = 16
close(16)                               = 0
socket(PF_NETLINK, SOCK_RAW, 0)         = 16
bind(16, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(16, {sa_family=AF_NETLINK, pid=21457, groups=00000000}, [12]) = 0
time(NULL)                              = 1191380365
sendto(16, "\24\0\0\0\26\0\1\3\215\5\3G\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(16, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0\0\0\0\24\0\2\0\215\5\3G\321S\0\0\2\10\200\376\1\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 172
recvmsg(16, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0\215\5\3G\321S\0\0\n\200\200\376\1\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128
recvmsg(16, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\215\5\3G\321S\0\0\0\0\0\0\1\0\0\0\24"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(16)                               = 0
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=101, ...}) = 0
open("/etc/hosts", O_RDONLY)            = 16
fcntl64(16, F_GETFD)                    = 0
fcntl64(16, F_SETFD, FD_CLOEXEC)        = 0
fstat64(16, {st_mode=S_IFREG|0644, st_size=288, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb54a1000
read(16, "192.168.10.100 doppio doppio.loc"..., 4096) = 288
close(16)                               = 0
munmap(0xb54a1000, 4096)                = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 16
fcntl64(16, F_SETFD, FD_CLOEXEC)        = 0
setsockopt(16, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
connect(16, {sa_family=AF_INET, sin_port=htons(16001), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
close(16)                               = 0

So it looks like it can't find the unix socket (probably the Ubuntu issue you mentioned), but it then goes on to try the TCP socket. I have /tmp/.esd/socket, but not /tmp/.esd-1000/

follow-up: ↓ 6   Changed 2 years ago by iroberts

Workaround for Ubuntu folks is to:

ln -s /tmp/.esd /tmp/.esd-id -u

see:

https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/108577

in reply to: ↑ 5   Changed 2 years ago by iroberts

The backquotes didn't display correctly. Should be

ln -s /tmp/.esd /tmp/.esd-`id -u`

  Changed 2 years ago by tante

I am using Gentoo, pulseaudio version is:

media-sound/pulseaudio Installed versions: 0.9.6-r1

tante@yatahaze ~ $ grep esound /etc/pulse/default.pa load-module module-esound-protocol-unix #load-module module-esound-protocol-tcp

tante@yatahaze ~ $ ls /usr/bin/esd -l lrwxrwxrwx 1 root root 18 2007-10-14 22:40 /usr/bin/esd -> /usr/bin/esdcompat

tante@yatahaze ~ $ grep esd /home/tante/.bashrc -b1 1621-# esound fix for pulseaudio 1649:if [ ! -e /tmp/.esd-${UID} ]; then 1684: ln -s /tmp/.esd /tmp/.esd-${UID} 1729-fi

So I think I did pretty much anything I have to do. Pulseaudio itself works great, with gstreamer, alsa, xine but esd is problematic, I'm not getting gnome sounds or anything else that is supposed to be played through esd.

esdplay for example gives: tante@yatahaze ~ $ esdplay /usr/share/sounds/info.wav esdplay: pcm_params.c:2351: sndrv_pcm_hw_params: Assertion `err >= 0' failed. Aborted

mplayer (with esd output plugin) gives: [AO ESD] esd_open_sound failed: No such file or directory Could not open/initialize audio device -> no sound.

Gentoo's esd (as you can see when you strace its start) is only looking for /tmp/.esd/ but that shouldn't be the problem I guess.

stracing esdplay shows that it is interacting with pulseaudio, I uploaded the strace here

  Changed 2 years ago by lennart

  • status changed from assigned to closed
  • resolution set to invalid

tante: there's something wrong with your esd setup. Please use "strace" to make sure that the proper socket is being opened by the esd clients. esdplay prints some alsa specific message which tells me that due to some reason libesd isn't able to connect to the esd compat module of PA.

Please report this issue to the gentoo bugzilla: if they decided to patch esd to use a non-standard socket dir, then they should be patching PA the same way too.

I am closing this bug now as this seems to be a configuration error, and very likely specific to Gentoo (or Ubuntu)

Note: See TracTickets for help on using tickets.