LD_PRELOAD, aoss, vsound mit alsa
Hallo,
Ich nutze zwar ubuntu 6.06/amd64/ia32libs in diesem Fall, möchte aber
trotzdem mal hier nach dem Konzept des LD_PRELOAD fragen, und wann eine
Fehlermeldung wie diese zustandekommt:
gerhard@ubuntu:~$ sudo aoss vsound aoss trplayer -n -q -i -b -t 0:00:30
rtsp://a1836.l751839969.c7518.e.lr.akamaistream.net/live/D/1836/7518/v0001/reflector:39969
About to start the application. The output will not be available
until the application exits.
ERROR: ld.so: object '/usr/$LIB/libaoss.so' from LD_PRELOAD cannot be
preloaded: ignored.
ERROR: ld.so: object '/usr/lib/vsound/libvsound.so' from LD_PRELOAD
cannot be preloaded: ignored.
Title: WDR 5
Author: Westdeutscher Rundfunk
Copyright: (C) 2004 Westdeutscher Rundfunk
Bit rate is 32.041K
Missing file ./vsound20902.au.
This means that the libvsound wrapper did not work correctlty.
Here are some the possible reasons :
- You are trying to record a stream (RTSP or PNM protocol) from
the internet. You will need to use the --timing option.
- The program you are trying to run is setuid. You will need to
run vsound as root.
- Vsound was not properly installed and hence won't work at all.
Ich denke, es is mir nach langem (!) suchen wohl klar (?) geworden, dass
vsound nur mit oss Treibern funktioniert.
gerhard@ubuntu:~$ apt-cache show vsound|grep -A3 Description
Description: Virtual loopback sound recorder and real audio converter
This program allows you to record the output of any standard OSS
program (one that uses /dev/dsp for sound) without having to modify or
recompile the program. It uses sox to convert and save the raw data
OSS hatte ich leider als FOSS gelesen ;-). Selbst mit
mplayer -d /dev/dsp rtsp://url konnte ich aber vsound nicht bewegen mit
alsa zu funktionieren (zu hören war immer etwas).
Dann hatte ich trplayer (commandline realplayer [1] ) aus den sourcen
auf meinem amd64/dapper compiliert, allerdings mit dem Problem, dass
das kompilierte trplayer eine (wohlgemerkt) vorhandene rmacore.so.6.0
lib nach einem `sudo ldconfig` unjd angepasster /etc/ld.so.conf nicht
fand. [2]
Ein ähnliches Problem gibt es mit LD_PRELOAD bei aoss auch, daher weiß
ich nicht, ob es überhaupt funktioniert. Wie kann ich das testen? Wenn
ich `aoss trplayer url` verwende höre ich genauso die sendung, wie
ohne aoss, bedeutet das schon, dass aoss funktioniert, und ich das
ganze über ein emuliertes oss device höre?
ERROR: ld.so: object '/usr/$LIB/libaoss.so' from LD_PRELOAD cannot be
preloaded: ignored.
~$ ldconfig -p |egrep '(aoss|vsound)'
libvsound.so (libc6,x86-64) => /usr/lib/vsound/libvsound.so
libaoss.so.0 (libc6,x86-64) => /usr/lib/libaoss.so.0
libaoss.so (libc6,x86-64) => /usr/lib/libaoss.so
Liegt das daran, dass die klibs schon geladen sind, bzw. nicht durch
sich selbst mittels LD_PRELOAD ausgetauscht werden können??(also ich
verstehe die LD_PRELOAD Funktionsweise nicht ganz, glaube ich)
Ich hatte dann noch LD_PRELOAD mit /etc/ld.so.preload konfiguriert, und
mein ganzes system zum Absturz gebracht:
ERROR: ld.so: object '/usr/lib/vsound/libvsound.so' from LD_PRELOAD
cannot be preloaded: ignored. respawning to fast. waiting 5 seconds,
bei jeder neuen konsole, und später direkt nach dem Neustart. Eine Live
CD half die angelegte Datei wieder zu löschen/verschieben:
$ cat /etc/ld.so.preload.bak
/usr/lib/vsound/libvsound.so
/usr/lib/libaoss.so
/usr/lib/libaoss.so.1
Also kann man vsound nur mit oss-sound-treibern verwenden?
Selbst aoss hilft da nicht?
Oder funktioniert aoss bei mir nicht?
$ lsmod |egrep '(oss|snd)'
snd_mpu401 9608 0
snd_mpu401_uart 10368 1 snd_mpu401
snd_rawmidi 31648 1 snd_mpu401_uart
snd_seq_device 11280 1 snd_rawmidi
snd_intel8x0 38440 2
snd_ac97_codec 110396 1 snd_intel8x0
snd_ac97_bus 4096 1 snd_ac97_codec
snd_pcm_oss 59424 0
snd_mixer_oss 20608 2 snd_pcm_oss
snd_pcm 104584 3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer 29064 1 snd_pcm
snd 68576 12
snd_mpu401,snd_mpu401_uart,snd_rawmidi,snd_seq_device,snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timersoundcore
13216 2 snd
snd_page_alloc 13968 2 snd_intel8x0,snd_pcm
Es wäre schön, wenn jemand etwas Licht ins Dunkel bringen könnte.
ciao
Gerhard
[1]
http://www.linux-speakup.org/trplayer.html
ftp://ftp.vslib.cz/pub/mirrors/ftp.mplayerhq.hu/doc-tech/realmedia/
[2]
$ trplayer rtsp://a1836.l751839969.c7518.e.lr.
akamaistream.net/live/D/1836/7518/v0001/reflector:39969
Failed to load
rmacore.so.6.0: /usr/lib/RealPlayer8/Common/rmacore.so.6.0: cannot open
shared object file: No such file or directory
$ file /usr/lib/RealPlayer8/Common/rmacore.so.6.0
/usr/lib/RealPlayer8/Common/rmacore.so.6.0: ELF 32-bit LSB shared
object, Intel 80386, version 1 (SYSV), stripped
$ egrep '(vsound|Real)' /etc/ld.so.conf
/usr/lib/vsound
/usr/lib/RealPlayer8/Common/
$ ldd `which trplayer`
linux-gate.so.1 => (0xffffe000)
libslang.so.1 => /lib32/libslang.so.1 (0x55596000)
libpthread.so.0 => /lib32/libpthread.so.0 (0x55607000)
libdl.so.2 => /lib32/libdl.so.2 (0x5561a000)
libstdc++-libc6.1-2.so.3 => /usr/lib32/libstdc++-libc6.1-2.so.3
(0x5561d000)
libm.so.6 => /lib32/libm.so.6 (0x55665000)
libc.so.6 => /lib32/libc.so.6 (0x55687000)
/lib/ld-linux.so.2 (0x55555000)
~$ ldconfig -p |grep rmacore
~$
Reply to: