wgs./w@Lly
Mh... ich begebe mich gerade wieder in die weiten Welten des CoD2-Servers (lang lang ists her).
Die Serverdateien habe ich freundicherweise von Nightwing zur Verfügung gestellt bekommen, sind sogar schon auf 1.3 gepatcht und enthalten angeblich alles was man auch für Linux benötigt.
Nun bekomme ich die folgende seltsame Fehlermeldung:
Inconsistency detected by ld.so: dl-version.c: 230: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
Weiß einer von euch was mir fehlt/da falsch läuft?
Hat vielleicht der User irgendwelche Rechte nicht korrekt gesetzt bekommen?
EDIT: okay, ich vermute ich habe nicht alle benötigten Linux-Dateien.... wäre jemand so nett mir einen Screen zu posten welche zum Starten benötigt werden? Bin mal echt raus aus der Materie, peinlich....
wgs./w@Lly
Ne, die warens wohl auch nicht...
Habe mir die noch fehlenden so-Dateien nachgeholt, bekomme aber immer noch die gleiche Fehlermeldung.
Mag CoD2 vielleicht kein 64-Bit Betriebssystem ohne irgendwelche Kniffe
Hier der Inhalt meines Ordners (Docs ist mittlerweile rausgeflogen):
wgs./w@Lly
Okay, habe hier was dazu gefunden (danke Tom
):
http://sourceware.org/ml/binutils/2004-12/msg00272.html
Wenn ich das Fachchinesisch richtig interpretiere, liegt das Problem bei der glibc ld.so bzw. einer veralteten Verknüpfung damit, woher auch immer?
Vielleicht weil der erste Serverstart ohne die so-Dateien war?
Ich glaub es ist noch zu früh am Morgen für sowas...
Falls die Dateien schuld sein sollten:
Wo bekomme ich denn die aktuellsten 1.3er Linux Serverfiles für Call of Duty 2? Habe bei icculus im Download-Zentrum seltsamerweise leider nichts finden können.
Nightwing
Hm. die aktuellsten Linuxfiles dürftest Du haben, ich denke eher, das hat was mit den Libraries zu Tun. Hab da noch was gefunden:
Klick
ToM
Kelli
1) ia32-libs installiert? (apt-get -s install ia32-libs )
2 ) export LD_LIBRARY_PATH=/pfad/cod2/:$LD_LIBRARY_PATH
oder besser:
cod2_lnxded umbennenen in cod2_lnxded-bin
Datei erstellen cod2_lnxded Inhalt:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
|
#!/bin/sh
#
# cod2_lnxded startup script
#
# Function to find the real directory a program resides in.
# Feb. 17, 2000 - Sam Lantinga, Loki Entertainment Software
FindPath()
{
fullpath="`echo $1 | grep /`"
if [ "$fullpath" = "" ]; then
oIFS="$IFS"
IFS=:
for path in $PATH
do if [ -x "$path/$1" ]; then
if [ "$path" = "" ]; then
path="."
fi
fullpath="$path/$1"
break
fi
done
IFS="$oIFS"
fi
if [ "$fullpath" = "" ]; then
fullpath="$1"
fi
# Is the sed/ls magic portable?
if [ -L "$fullpath" ]; then
#fullpath="`ls -l "$fullpath" | awk '{print $11}'`"
fullpath=`ls -l "$fullpath" |sed -e 's/.* -> //' |sed -e 's/\*//'`
fi
dirname $fullpath
}
# Set the home if not already set.
if [ "${COD2_DATA_PATH}" = "" ]; then
COD2_DATA_PATH="`FindPath $0`/"
fi
LD_LIBRARY_PATH=.:${COD2_DATA_PATH}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
# Let's boogie!
if [ -x "${COD2_DATA_PATH}/cod2_lnxded-bin" ]
then
cd "${COD2_DATA_PATH}/"
exec "./cod2_lnxded-bin" $*
fi
echo "Couldn't run Call of Duty 2 server (cod2_lnxded-bin). Is COD2_DATA_PATH set?"
exit 1
# end of cod2_lnxded ...
|
|
chmod u+x cod2_lnxded
wgs./w@Lly
Habe gerade deinen zweiten Weg versucht... allerdings scheint Programmers Notepad da nicht für geeignet zu sein oder ich habe die falschen Einstellungen.
Habe damit die cod2_lnxded erstellt und auf den Server geladen, die alte in cod2_lnxded-bin umbenannt. Die neue hat deinen oben geposteten Inhalt und ist jetzt zarte 2 KB groß.
Immerhin die Fehlermeldung ist nun eine andere:
bash: ./cod2_lnxded: /bin/sh^M: bad interpreter: No such file or directory
Vermutlich sollte ich so etwas nicht auf einer Win-Oberfläche erstellen und dann einfach hochladen... *gnaa*
EDIT: Ich muss wohl doch deine Schritte 1 und 2 durchziehen?
Kelli
Original von wgs./w@Lly
bash: ./cod2_lnxded: /bin/sh^M: bad interpreter: No such file or directory
Du musst sie im FTP Modus Text hochladen damit der DOS Zeilenumbruch CR/LF gewandelt wird in einen *nix Zeilenumbruch LF
oder auf dem Linux erstellen / editieren (vi oder mcedit etc.. )
Original von wgs./w@Lly
EDIT: Ich muss wohl doch deine Schritte 1 und 2 durchziehen?
1 auf jedenfall. Du brauchst die 32Bit dlls. Das installiert unter Debian ein
apt-get install ia32-libs
Wenn du das -s benutzt zeigt er erstmal nur an ob es bereits installiert ist oder wenn nicht welche Abhängigkeiten noch bestehen (Bin mir nicht ganz sicher ob nur die ia32-libs schon reichen)
Ohne 32bit Libaries läuft CoD2 nicht mit deinem 64er Kernel.
wgs./w@Lly
Original von Kellerkind
1 auf jedenfall. Du brauchst die 32Bit dlls. Das installiert unter Debian ein
apt-get install ia32-libs
Wenn du das -s benutzt zeigt er erstmal nur an ob es bereits installiert ist oder wenn nicht welche Abhängigkeiten noch bestehen (Bin mir nicht ganz sicher ob nur die ia32-libs schon reichen)
Ohne 32bit Libaries läuft CoD2 nicht mit deinem 64er Kernel.
1. Schritt mit -s durchgeführt. Herr Root meint ia32-libs ist bereits in der neuesten Version vorhanden.
Also jetzt
2) export LD_LIBRARY_PATH=/pfad/cod2/:$LD_LIBRARY_PATH
Muss ich nun einen Export der ia32-libs zu meinem User machen der die Libs benötigt? Kann der nicht auf die bereits vorhandenen zugreifen? (offensichtlich nicht....*gnaa)
Was muss unter /pfad/, der zum User UND dem cod2-Ordner mit den Installationsdateien oder muss die Installation ins home-Verzeichnis des Users? (was ich vermute...)
Ich hab hier grad nen gedanklichen Knoten und mach es wahrscheinlich wieder komplizierter als es ist
Ach ja,
die neue cod2_lnxded habe ich mit dem MC geöffnet, alle ^ Zeichen hinter den Zeilen entfernt und sie wieder abgespeichert. Reicht das oder sollte ich sie komplett neu mit dem MC erstellen?
Kelli
Original von wgs./w@Lly
Also jetzt
2) export LD_LIBRARY_PATH=/pfad/cod2/:$LD_LIBRARY_PATH
Muss ich nun einen Export der ia32-libs zu meinem User machen der die Libs benötigt?
Nein, die ia32-libs sind bei dir vorhanden, diese mögliche Fehlerquelle kannst du jetzt komplett abhaken. Alles gut.
Original von wgs./w@Lly
Ach ja,
die neue cod2_lnxded habe ich mit dem MC geöffnet, alle ^ Zeichen hinter den Zeilen entfernt und sie wieder abgespeichert. Reicht das oder sollte ich sie komplett neu mit dem MC erstellen?
Wenn sie jetzt ohne Meckern ausgeführt wird reicht das so.
CoD1&2 Linux Version brauchten schon immer die libgcc die du ja auch in deinem Ordner drin hast. Du musst CoD nur noch sagen wo er sie findet. Das macht das script von oben automatisch (Ist dasselbe wie das was bei CoD4 schon mitgeliefert wird, nur für cod2 angepasst) oder du rufst es von Hand auf mit genau den Befehl:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./cod2_lnxded +set ....
(Steht so in der Linux Readme) oder ebend dem Befehl
export LD_LIBRARY_PATH=/pfad/cod2/:$LD_LIBRARY_PATH
cod2_lnxded +set ...
Alle drei Möglichkeiten laufen auf das selbe Ergebnis hinaus - das CoD seine libgcc findet. Mit dem Script ist es natürlich am einfachsten. Da braucht man es nur einmal machen.
Ob das letztendlich deinem inkontinenten System hilft das Wasser zu halten weiß ich noch nicht, ist erstmal eine weitere mögliche Ursache die ich damit eingrenzen möchte.
wgs./w@Lly
So, nachdem ich erst mal den Root geupdated und geupgradet habe... wird er am Montag (wenn auch der Support verfügbar ist für den Fall der Fälle...) neu gestartet. Vielleicht ist der CoD2-Server dann zu überreden.
Das Problem liegt bei uns wohl etwas tiefer in veralteten Libraries. Mal schauen obs das jetzt gewesen und die Prostata wieder in Ordnung zu kriegen ist.
Danke Kellerkind
wgs./w@Lly
Root läuft wieder.
Automatischer Reboot hat - natürlich
- nicht funktioniert, aber der Support hat ihn dann manuell angeschubst. Ist also alles noch da.
Versuch CoD2-Server zu starten:
Inconsistency detected by ld.so: dl-version.c: 230: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
Nochmal versucht ia32-libs zu installieren, sind aber vorhanden.
Ich glaube so langsam geb ichs auf
wgs./w@Lly
Nachdem ich jetzt den ganzen Krams gepackt und auf einen älteren kleinen 32Bit OpenSuse Rootserver gezogen habe, bekomme ich dort die Meldung
Speicherzugriffsfehler
Ich vermute meine cod2_lnxded hats vielleicht zerschossen, diese sieht beim Öffnen mit dem MC auch sehr seltsam aus... Vielleicht ist darauf auch der andere Fehler beim 64Bit-Root zurückzuführen.
Kellerkind,
ich meine du hast mir bei dem Austausch nur die so-Dateien gegeben, nicht aber die cod2_lnxded?
hat vielleicht jemand einen Link wo ich nur diese eine Datei (v1.3) per wget von Linux zu Linux ziehen kann?
EDIT
Grad versucht da noch vorhanden: Ein CoD4 Server lässt sich vom gleichen kleinen Linux problemlos starten.
wgs./w@Lly
Manchmal sind es die kleinen Ursachen auf die man erst zuletzt kommt...
Bei mir hieß der Kandidat tatsächlich kaputte cod2_lnxded.
Nachdem mir Kellerkind eine neue zur Verfügung gestellt hat, funzt es nun auf beiden Roots, dem 32bittigen und dem 64bittigen.
Puh... endlich, es geht!!
Merke: Keine Binär-Dateien von einer Windows-Oberfläche hochladen ohne Seil und doppelten Boden...
ChAiN SaW
Hallo,
ich habe das gleiche Problem:
Inconsistency detected by ld.so: dl-version.c: 230: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
Habe alles aus dem Thread ausprobiert, auch mit dem Startscript als .sh, leider bringt er mir immer wieder diesen Fehler. Es handelt sich um einen Debian VServer.
Lösung: Ich habe den Linux Patch direkt per wget von eurem Server gezogen und entpackt. Beim hochladen per Filezilla scheint das nicht zu klappen daher direkt laden.
https://www.opferlamm-clan.de/tl_files/s....3-06232006.tar