Skype needs a 32 Bit version of libesddsp.so (and the according arts counterpart) to work properly with esound (or Arts, haven't tested that though) on amd64. IMO this lib(s) should be added to app-emulation/emul-linux-x86-soundlibs, and skype should depend on it. To repro: 1. start esd 2. start skype 3. you get this: ===== Fri Jan 7 16:36:25 CET 2005 ===== Starting esd wrapped skype esddsp /opt/skype/skype.bin --resources-path /opt/skype/ /opt/skype/skype.bin: error while loading shared libraries: //usr/lib/libesddsp.so.0: cannot open shared object file: No such file or directory
/opt/skype/skype.bin: error while loading shared libraries: //usr/lib/libesddsp.so.0: cannot open shared object file: No such file or directory This looks like a esddsp problem to me, not a skype problem.
*** Bug 65051 has been marked as a duplicate of this bug. ***
It's the same situation with newer skype versions and artsd. Error in skype.log: /opt/skype/skype.bin: error while loading shared libraries: /usr/kde/3.4/lib/libartsdsp.so.0: cannot open shared object file: No such file or directory I found a thread about that (where the problems occures with doom3) in gentoo forums: http://forums.gentoo.org/viewtopic-p-1620212.html?sid=159ba305c9b79302de05599115d06930#1620212
I think the problem is that recent Gentoo profiles have /usr/lib/* 64-bit, with /usr/lib32 a pointer to ../emul/linux/x86/usr/lib and /usr/lib64 a pointer to ../lib. The skype binary has /usr/lib/ hard-coded in some fashion, or at least it doesn't know about this 32/64-bit dichotomy. Skype.com need to have this pointed out to them. I could post something on the skype forum if you like. In fact, I think I will, to ask how to pass a parameter defining the location of libesddsp.
Skype knows nothing about srtsd and/or esd he just "grabs" /dev/dsp (uses oss). So the problem were is with esdsp and artsdsp and 32bits lybraries. Well alot of troubles old be solved with: 1- 64 bits version of skype 2- alsa version of skype. Neither can be fixed by us gentoo dev's.
Any news on this with newer packages like skype-1.1.0.13 ?
esddsp and artsdsp just will not work with 32bit applications on amd64 since they try to preload 64bit libraries before running the app. Moreover they set LD_PRELOAD with the full path to the lib so adding 32bit versions of libesddsp and libartsdsp will not help. I therefore suggest that we simply disable the use of a sound daemon from the skype startup script on amd64. Maybe we could add something like: use !x86 && dosed 's:^wrapsound=.*:wrapsound="no":' /opt/skype/skype
I would like to see a libesddsp.so put into emul*soundlibs. That would allow users to run skype with LD_PRELOAD="/emul/linux/x86/usr/lib/libesd.so /emul/linux/x86/usr/lib/libesddsp.so" skype and have it work. Of course, we could also make a wrapper for this. I'm currently trying to see if this would work by building esound for 32bit -- but it's being tricky without a chroot. The original bug reporter was right -- this is the correct way to go, reasons are given in #5. As to #6 -- the newer versions have the exact same problem. As to #7, we can make a esddsp32 wrapper that loads the 32bit versions -- that should be acceptable?
Well, i changed first to amd64, then i started using kde, and for the fun i would like arts working :) So i got that extra incentive to properly fix this. But i'm running into problems. I posted some notes on the amd64 list: http://news.gmane.org/gmane.linux.gentoo.amd64/cutoff=4652 Herbes: I'm adding you to the cc list because of your comment, and because i'm trying with 32 bits libs and ld_preloading them.
Another package that this is an issue for is games-fps/enemy-territory, or at least, it's a issue for my particular soundcard (ENVY24, using the snd_ice1724 ALSA driver). In part, the issue is that ET uses /dev/dsp in mmap mode, and it can not handle the format used by the ENVY24. According to /usr/src/linux/Documentation/sound/alsa/OSS-Emulation.txt: MMAP on ICE1712 driver ---------------------- ICE1712 supports only the unconventional format, interleaved 10-channels 24bit (packed in 32bit) format. Therefore you cannot mmap the buffer as the conventional (mono or 2-channels, 8 or 16bit) format on OSS. So, because of that I need something like esddsp or artsdsp to make it work, but since ET is an x86 game, I need 32-bit libraries. Once I realized this, I used quickpkg to package up a few thinks on my old x86 box (esound, audiofile, maybe some others), and untarred them under /emul/linux/x86. Then I did a little bit of hacking on esddsp to make it preload the right libraries. I start ET and presto! I get sound... for about 10 seconds, and then it starts to stutter badly. Additionally, the 64-bit esd server does not want to run on my soundcard. It dies in this way: Audio device open for 44.1Khz, stereo, 16bit failed Trying 44.1Khz, 8bit stereo. Audio device open for 44.1Khz, stereo, 8bit failed Trying 48Khz, 16bit stereo. Audio device open for 48Khz, stereo,16bit failed Trying 22.05Khz, 8bit stereo. Audio device open for 22.05Khz, stereo, 8bit failed Trying 44.1Khz, 16bit mono. Audio device open for 44.1Khz, mono, 8bit failed Trying 22.05Khz, 8bit mono. Audio device open for 22.05Khz, mono, 8bit failed Trying 11.025Khz, 8bit stereo. Audio device open for 11.025Khz, stereo, 8bit failed Trying 11.025Khz, 8bit mono. Audio device open for 11.025Khz, mono, 8bit failed Trying 8.192Khz, 8bit mono. Audio device open for 8.192Khz, mono, 8bit failed Trying 8Khz, 8bit mono. Sound device inadequate for Esound. Fatal. I thought this might be due to the aforementioned OSS emulation problems, but strace reveals that it is using ALSA devices and not OSS. However, the 32-bit esd does run, though it has the stuttering problem after a while. To throw another weird piece into the puzzle, games-fps/doom3 sound works fine, without having to screw around with esddsp; it may use ALSA instead of OSS but I'm not sure. So anyway. I tried artsdsp -m but that doesn't work either because I only have 64-bit libraries, and they won't preload with the 32-bit et. Hopefully a 32-bit arts will work, though I'm not sure why 64-bit esd doesn't work. The point: This is not exclusively a skype problem. There are some other things out there which need 32-bit esound/arts to handle code which is using OSS /dev/dsp.
I've just committed emul-linux-x86-soundlibs-2.2 which includes the aformentioned libs. It also installs esddsp32 and artsdsp32 scripts in /usr/bin. It package.masked for the moment until I'm sure it fixes this issue. Please test with Skype (you'll have to change esddsp to esddsp32 in the /usr/bin/skype startup script, same goes for artsdsp).
This fixes my problems with enemy-territory, i.e. run as: esddsp32 --mmap nice et I found I needed to nice et; otherwise the sound was kinda crappy. If you know of a good way to run esd at realtime priority, I'd like to hear about it. I haven't yet figured out if it works with artsdsp32 yet. So far it won't preload the libraries, even with artsd running, but I usually use GNOME, so I don't really know what I'm doing on the KDE side.
closing, seems to work :)
the esddsp32 script does not work in my case. i'm trying to get skype (1.2.0.18) to work in an amd64. this is what I get (there is no repetition - it's actually displayed multiple times): ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. No running artsd or esd found ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesddsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libesd.so.0' from LD_PRELOAD cannot be preloaded: ignored. Starting skype without sound daemon ========================================== At the same time i have those two apps running: /opt/skype/skype.bin --resources-path /opt/skype/ /usr/bin/esd -terminate -nobeeps -as 1 -r 48000 -spawnfd 32 # ls -l /emul/linux/x86/usr/lib/libesd* lrwxrwxrwx 1 root root 16 Sep 24 02:52 /emul/linux/x86/usr/lib/libesd.so -> libesd.so.0.2.36 lrwxrwxrwx 1 root root 16 Sep 24 02:52 /emul/linux/x86/usr/lib/libesd.so.0 -> libesd.so.0.2.36 -rwxr-xr-x 1 root root 38068 Sep 24 02:52 /emul/linux/x86/usr/lib/libesd.so.0.2.36 lrwxrwxrwx 1 root root 19 Sep 24 02:52 /emul/linux/x86/usr/lib/libesddsp.so -> libesddsp.so.0.2.36 lrwxrwxrwx 1 root root 19 Sep 24 02:52 /emul/linux/x86/usr/lib/libesddsp.so.0 -> libesddsp.so.0.2.36 -rwxr-xr-x 1 root root 9072 Sep 24 02:52 /emul/linux/x86/usr/lib/libesddsp.so.0.2.36 Skype actually opens but i can hear no sound when calling other peers. But it actually seems to do sth and doesn't show any errors regarding the sound device (at the same time i have an alsa app using the sound device). I have actually used almost the same configuration with mplayer-bin (32 bit) and it works. But in mplayer I set the audio device used through the mplayer parameter (-ao esd) I also tried --mmap parameter too. Do you think that the above errors are related with prelinking? If not what could it be?
I too am experiencing the same thing, although I cannot start skype at all. $ artsdsp32 -m skype ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. No installed artsshell or esd found Assuming you're running no sound daemon ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsdsp.so.0' from LD_PRELOAD cannot be preloaded: ignored. ERROR: ld.so: object '/emul/linux/x86/usr/lib/libartsc.so.0' from LD_PRELOAD cannot be preloaded: ignored. Starting skype without a sound wrapper ========================================== Running wrapped Skype failed, trying not-wrapped mode... ==========================================