View previous topic :: View next topic |
Author |
Message |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 08.12.2011, 18:40 Post subject: |
|
|
Neuer Kernel (3.0.0.1) und die Probleme fangen wieder an:
Ubuntu hat jetzt den Support für OSS4 beendet => Der Sound in Descent läuft nicht mehr (Kernelmodul läuft nicht mehr).
Ich habe verschiedene Versuche unternommen, es trozdem zum Laufen zu bekommen, aber bisher hatte keiner Erflog:
1. Ich habe versucht (in Ubuntu), descent3.dynamic zu nutzen, dabei passiert folgendes:
Code: | /usr/local/games/Descent3$ env LD_PRELOAD=/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libSDL-1.2.so.0:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libsmpeg-0.4.so.0:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libdirectfb-1.2.so.9:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libfusion-1.2.so.9:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libdirect-1.2.so.9:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libvga.so.1:/home/linux-fan/Ma_Sys.ma/Temp/file_actions/lib--sdl/libx86.so.1 ./descent3.dynamic -c -n -m -w -g -G -o
SIGNAL 11 caught, aborting
/usr/local/games/Descent3$
|
Ich hatte mir davon auch nicht allzu viel erhofft.
2. Ich habe versucht Descent3 auf einem Debian Squeeze Stable zum Laufen zu bringen und bekam folgende Ausgabe (Descent startet überhaupt nicht -- OSS4 geht aber grundsätzlich):
Code: | Starting Descent 3
Preparing gamma...
Red 1.000, Green 1.000, Blue 1.000
Red 1.200, Green 1.200, Blue 1.200
Full Command Line :
env LD_PRELOAD=/home/linux-fan/.d321go/send_recv_filter.so /usr/local/bin/descent3 -c -n -m -w -g -G -o
/usr/local/bin/descent3: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
Resetting gamma...
Red 1.200, Green 1.200, Blue 1.200
Red 1.000, Green 1.000, Blue 1.000
Deleting temporary files...
Descent 3 closed.
Press Enter...
|
Verwendung des direkten Kommandos "descent3" bzw. andere Paramterangaben brachten keine Besserung.
Die libX11.so.6 existiert allerdings, wenn ich sie ebenfalls mit LD_PRELOAD laden will, bekomme ich folgendes:
Code: | ERROR: ld.so: object '/usr/lib/libX11.so.6' from LD_PRELOAD cannot be preloaded: ignored.
descent3: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
|
Möglicherweise ist es hilfreich zu wissen, dass in der VM in der Debian läuft keine 3D Beschleunigung aktiviert ist, weshalb auch dxx-rebirth nur ohne open gl läuft (und dabei alle texturen unruhig wackelnd anzeigt).
|
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 08.12.2011, 20:22 Post subject: |
|
|
mach doch mal ein
"ldd ./descent3 | fgrep libX11"
und poste die Ausgabe.
|
|
Back to top |
|
 |
D.Cent Forum-Nutzer
Joined: 05 Mar 2006 Posts: 508
Location: Stuttgart
|
Posted: 08.12.2011, 20:50 Post subject: |
|
|
Die Bibliothek ist standardmäßig in /usr/lib, deswegen verstehe ich nicht ganz, warum er sie nicht findet - ist es evtl. ein toter Symlink?
Wegen OSS unter Ubuntu: hast Du mal das Paket "oss4-base" installiert?
Unter SuSE ist seit 12.1 OSS standardmäßig ebenfalls deaktiviert, jedoch trotzdem in den Kernel kompiliert.
Aktivieren lässt es sich mit "modprobe snd-pcm-oss" als Root - vielleicht klappt das bei Dir ja auch?
|
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 08.12.2011, 22:41 Post subject: |
|
|
Also ich hatte immer oss4-base und oss4-dkms installiert und beim installieren gab es einen Kompilierfehler, der in einem temporären Log gespeichert wurde. Einen eigenen Kernel zu kompilieren -- dazu bin ich im Moment zu faul, vielleicht wird sich das aber als einzig mögliche Lösung herausstellen (ich will es aber nach Möglichkeit vermeiden).
Der Symlink ist in Ordnung, ich habe auch schon versucht, via env LD_PRELOAD= die Zieldatei auszuwählen, es hat genauso wenig funktioniert (bis auf anderen Dateinamen der gleiche Fehler)
Ausgabe:
Code: | ~$ ldd ./descent3 | fgrep libX11
ldd: ./descent3: No such file or directory
~$ ldd descent3 | fgrep libX11
ldd: ./descent3: No such file or directory
~$ cd /usr/local/games/Descent3
/usr/local/games/Descent3$ ldd ./descent3 | fgrep libX11
libX11.so.6 => not found
/usr/local/games/Descent3$
|
|
|
Back to top |
|
 |
D.Cent Forum-Nutzer
Joined: 05 Mar 2006 Posts: 508
Location: Stuttgart
|
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 09.12.2011, 01:03 Post subject: |
|
|
Google einfach mal nach der Fehlermeldung
ERROR: ld.so: object '/usr/lib/libX11.so.6' from LD_PRELOAD cannot be preloaded: ignored.
das gibt z.B. Hinweise wie auf
http://tristan.ferroir.free.fr/index.php/2008/07/30/vmware-in-ubuntu-804-and-the-locking-assertion-failure-problem
"The problem seems to come from an incompatibility of version between the libX11 library of Ubuntu and the one required from VMWare. "
Ich denke nicht daß das Problem bei descent3 liegt, denn es ist ja der Linker der keine *passende* Lib findet, und nicht descent3.
Last edited by Munk on 09.12.2011, 01:07; edited 1 time in total |
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 09.12.2011, 19:54 Post subject: |
|
|
Mit Loki_Compat hatte ich keine besseren Ergebnisse:
Code: | ~$ env LD_LIBRARY_PATH=/opt/ma/loki_compat/ descent3 -c -w -n -o
descent3: /lib/ld-linux.so.2: version `GLIBC_2.1.1' not found (required by /opt/ma/loki_compat/libc.so.6)
descent3: /lib/ld-linux.so.2: version `GLIBC_2.2.3' not found (required by /opt/ma/loki_compat/libc.so.6)
descent3: /lib/ld-linux.so.2: version `GLIBC_2.2' not found (required by /opt/ma/loki_compat/libc.so.6) |
Und nach einiger Google suche nach "ERROR: ld.so: object '/usr/lib/libX11.so.6' from LD_PRELOAD cannot be preloaded: ignored. " kam ich einen Schritt weiter:
Code: | env LD_PRELOAD=/home/linux-fan/.d321go/send_recv_filter.so /usr/local/bin/descent3 -c -n -m -w -g -G -o
Failed to load library [-G].
Descent 3 Message(Error: Failed to load library [-G].
)
System Error |
Dann ohne -G
Code: | ~$ descent3 -c -w -n -o
Failed to load library [libGL.so].
Descent 3 Message(Error: Failed to load library [libGL.so].)
System Error
~$ |
Dann via LD_PRELOAD:
Code: | ~$ env LD_PRELOAD=/usr/lib/libGL.so descent3 -c -w -n -o
ERROR: ld.so: object '/usr/lib/libGL.so' from LD_PRELOAD cannot be preloaded: ignored.
Failed to load library [libGL.so].
Descent 3 Message(Error: Failed to load library [libGL.so].
)
System Error
|
Auch hierzu gibt es Google Einträge im Zusammenhang mit Wine, Quake und Doom, aber alle haben mir keine passable Lösung geliefert.
|
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 01.01.2012, 19:38 Post subject: |
|
|
Um Auszuschließen, dass es sich bei dem Problem einfach um einen falschen Grafiktreiber handelt, habe ich mir das Debian System jetzt auf eine Festplatte installiert und direkt gestartet (nicht mehr nur virtuell). Nach der Installation der Nvidia Grafiktreiber, funktionieren alle 3D Anwendungen -- außer Descent3 (Immer noch der gleiche Fehler). DXX-Rebirth geht wieder (bis auf den Sound).
Beleg, dass es doch an Descent liegt:
Code: | $ env LD_PRELOAD=/usr/lib/libGL.so xmessage hello
$
|
Klappt problemlos, wenn ich ein anderes Programm als Descent3 angebe.
Last edited by Linux-Fan on 01.01.2012, 19:41; edited 1 time in total |
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 01.01.2012, 22:13 Post subject: |
|
|
Linux-Fan wrote: |
Beleg, dass es doch an Descent liegt:
Code: | $ env LD_PRELOAD=/usr/lib/libGL.so xmessage hello
$
|
Klappt problemlos, wenn ich ein anderes Programm als Descent3 angebe. |
Ging es nicht um libX11 ? libGL wird in xmessage ohnehin nicht gelinkt....
|
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 01.01.2012, 22:43 Post subject: |
|
|
Also das mit der X11 ist nicht mehr aufgetreten -- statt dessen der andere Fehler.
Quote: | libGL wird in xmessage ohnehin nicht gelinkt.... |
Gibt es eine sicherere Möglichkeit, das Problem einzugrenzen?
|
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 01.01.2012, 23:14 Post subject: |
|
|
Ich denke nicht daß es an descent3 liegt, denn bisher deutet nichts darauf hin.
Dein
Quote: |
~$ env LD_PRELOAD=/usr/lib/libGL.so descent3 -c -w -n -o
ERROR: ld.so: object '/usr/lib/libGL.so' from LD_PRELOAD cannot be preloaded: ignored.
Failed to load library [libGL.so].
Descent 3 Message(Error: Failed to load library [libGL.so].
)
System Error
|
spuckt zwar eine Descent-Fehlermeldung heraus (daß er libGL nicht laden kann), allerdings sagt schon der Linker (ld), daß deine angegebene libGL inkompatibel ist.
Vielleicht kannst Du ja eine ältere Version von libGL auftreiben um zu schaun ob sie überhaupt gelinkt wird. Wenn Du dir schon ein frisches Debian aufgezogen hast, versuch doch mal ein frisches altes Debian zu nehmen wo es hoffentlich läuft, und dann mit sukzessiven Updates das Problem einzukreisen.
|
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 01.01.2012, 23:43 Post subject: |
|
|
Ich teste das jetzt ja zum ersten Mal unter Debian, weil da noch das OpenSoundSystem liegt.
Dass es an der Version der LibGL liegt, glaube ich nicht, weil zumindest unter Ubuntu (wo eigentlich auch eine neue LibGL ist) Descent3 startet (dort geht aber der Sound nicht, deshalb der Test unter Debian)
Aber ich werde trotzdem mal Versuche in der Richtung unternehmen.
Last edited by Linux-Fan on 01.01.2012, 23:43; edited 1 time in total |
|
Back to top |
|
 |
Marix Forum-Nutzer

Joined: 30 May 2001 Posts: 1017
Location: Germany
|
Posted: 02.01.2012, 17:18 Post subject: |
|
|
Eine inkompatible libGL (aufgrund von alter) ist fast nicht vorstellbar, da die ein definiertes ABI hat. Interessant wäre aber, ob das wirklich eine 32-bit library ist. Kann man sich von ldd anzeigen lassen. Hat debian die 32-bit sachen nicht in so einem extra legacy-Verzeichnis?
_________________ „Der einzige Weg, die Grenzen des Möglichen zu finden, ist ein klein wenig über diese hinaus in das Unmögliche vorzustoßen.“
--Arthur C. Clarke |
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 02.01.2012, 23:45 Post subject: |
|
|
Ich habe mal folgendes versucht:
Code: | /usr/local/games/Descent3$ ldd -v ./descent3 > /tmp/ldd.txt |
In der entstehenden Datei ist von der libGL.so keine Spur:
Code: | linux-gate.so.1 => (0xf77de000)
libdl.so.2 => /lib32/libdl.so.2 (0xf77c4000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf77ab000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf768d000)
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf767e000)
libm.so.6 => /lib32/libm.so.6 (0xf7658000)
libc.so.6 => /lib32/libc.so.6 (0xf7511000)
/lib/ld-linux.so.2 (0xf77df000)
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf74f8000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf74f4000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf74ef000)
Version information:
./descent3:
libm.so.6 (GLIBC_2.1) => /lib32/libm.so.6
libm.so.6 (GLIBC_2.0) => /lib32/libm.so.6
libdl.so.2 (GLIBC_2.1) => /lib32/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib32/libdl.so.2
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
libpthread.so.0 (GLIBC_2.0) => /lib32/libpthread.so.0
libpthread.so.0 (GLIBC_2.1) => /lib32/libpthread.so.0
/lib32/libdl.so.2:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib32/libc.so.6
/lib32/libpthread.so.0:
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/usr/lib32/libX11.so.6:
libdl.so.2 (GLIBC_2.1) => /lib32/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib32/libdl.so.2
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/usr/lib32/libXext.so.6:
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/lib32/libm.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/lib32/libc.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
/usr/lib32/libxcb.so.1:
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.3.2) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/usr/lib32/libXau.so.6:
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6
/usr/lib32/libXdmcp.so.6:
libc.so.6 (GLIBC_2.1.3) => /lib32/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib32/libc.so.6 |
Ich weiß nicht, was die Zahl hinter dem Punkt nach .so bedeuten, aber ich habe auch folgendes versucht:
Code: | ~$ ls /lib32/ | grep GL
~$ ls /lib | grep GL
~$ ls /usr/lib
lib/ lib32/ lib64/
~$ ls /usr/lib32 | grep GL
libGL.so.1
libGL.so.1.2
libGLU.so.1
libGLU.so.1.3.070701
~$ env LD_PRELOAD=/usr/lib32/libGL.so.1.2 descent3 -c -w -G -n -o
Failed to load library [libGL.so].
Descent 3 Message(Error: Failed to load library [libGL.so].
)
System Error
~$ env LD_PRELOAD=/usr/lib32/libGL.so.1 descent3 -c -w -G -n -o
Failed to load library [libGL.so].
Descent 3 Message(Error: Failed to load library [libGL.so].
)
System Error
|
|
|
Back to top |
|
 |
D.Cent Forum-Nutzer
Joined: 05 Mar 2006 Posts: 508
Location: Stuttgart
|
Posted: 03.01.2012, 00:09 Post subject: |
|
|
So weit ich weiß ist die libGL in descent3 reinkompiliert - wird von Spieleherstellern häufig so gemacht.
|
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 03.01.2012, 00:13 Post subject: |
|
|
Die Zahlen hinterm Punkt im Dateinamen sind Versionsnummern. Normalerweise ist die .so-Datei auf eine .so.x-Datei gelinkt (eben auf die aktuellste Version).
Du siehst vermutlich keine libGL in der ldd-Ausgabe, weil descent3 wohl die libGL dynamisch lädt. Ansonsten würde descent3 ohne libGL nicht starten (weil der Linker sie nicht findet), und der Schalter -G wäre witzlos.
Mach mal ein "strace descent3 -G >out.log 2> err.log" und dann ein "fgrep libGL out.log err.log", da solltest Du hoffentlich die möglichen Stellen finden, wo descent3 nach der libGL sucht. Eventuell findet er sie nicht, weil sie im lib32-Verzeichnis liegt.
Dann könnte eventuell ein symbolischer Link helfen.
Last edited by Munk on 03.01.2012, 00:16; edited 1 time in total |
|
Back to top |
|
 |
Marix Forum-Nutzer

Joined: 30 May 2001 Posts: 1017
Location: Germany
|
Posted: 03.01.2012, 12:59 Post subject: |
|
|
Die libGL ist bestimmt nicht reinkompiliert, die muss nämlich zum Grafikkartentreiber passen. Ich hatte eigentlich ein ldd auf die libGL gemeint. Aber was du gepostet hast zeigt, dass alle libs die verwendet werden in lib32 liegen, die vorherige libGL aus /usr/lib war also vermutlich 64 bit. Der PRELOAD hilft dir hier übrigens vermutlich nicht. Wenn ich im ldd nichts übersehen habe, dann ist die libGL nicht dynamisch gelinkt, sondern wird von Descent nachgeladen. In dem Fall ist es eventuell zielführend mal sicherzustellen, dass die 32-bit libGL im Pfad liegt. Eventuell mal schauen auf was für Dateien Descent zugreifen muss, eventuell ist es doof und besteht auf libGL.so.1 statt libGL.so.
_________________ „Der einzige Weg, die Grenzen des Möglichen zu finden, ist ein klein wenig über diese hinaus in das Unmögliche vorzustoßen.“
--Arthur C. Clarke |
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
Posted: 03.01.2012, 13:30 Post subject: |
|
|
In meinem /usr/lib32 war keine libGL.so sondern nur eine libGL.so.1 ... das ließ sich mit dem strace Kommando (wirklich nützlich!) schnell herausfinden, auch wenn ich es mir erst nachinstallieren musste.
Code: | /usr/lib32# ln -s libGL.so.1 libGL.so |
Dann startete Descent (es schien: ohne Probleme) und stürzte in dem Moment ab, wo Level 2 (was ich zum Test aufgerufen hatte) fertig geladen war:
Code: | Full Command Line :
env LD_PRELOAD=/home/linux-fan/.d321go/send_recv_filter.so /usr/local/bin/descent3 -c -n -m -w -G -o
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 128 (GLX)
Minor opcode of failed request: 1 (X_GLXRender)
Serial number of failed request: 106
Current serial number in output stream: 143
|
Also wieder ein neuer Fehler
Last edited by Linux-Fan on 03.01.2012, 13:31; edited 1 time in total |
|
Back to top |
|
 |
Linux-Fan Forum-Nutzer

Joined: 06 Jun 2009 Posts: 257
|
|
Back to top |
|
 |
Munk Forum-Nutzer

Joined: 30 Jun 2001 Posts: 2140
Location: Herzogenrath
|
Posted: 03.01.2012, 23:16 Post subject: |
|
|
d.h. das "apt-get install nvidia-glx-ia32" hilft nicht ? Vielleicht ist das Paket veraltet und heißt jetzt anders.
|
|
Back to top |
|
 |
|