Battlefield 2 Linux-Server Installation (HOWTO)
Aufgrund meiner eigenen Erfahrungen in den letzten Tagen mit dem installieren eines dedizierten Battlefield 2 Servers unter Linux, dem hinzufügen von Custom-Maps und dem adden von Mods und das Starten selbiger möchte ich an dieser Stelle in kompakter Form alle Hinweise die mich ans Ziel gebracht haben zusammen tragen.
Ich habe mich durch einige Foren, Readmes und Seiten gewühlt, bis ich tatsächlich alle Infos zusammen hatte – nicht besonders schwer, aber auch nicht besonders schön 😉
Sicherlich ist dieses Howto für Wissende nichts neues, aber kann sicherlich dem ein oder anderen „unerfahrenen“ Server-Admin sehr nützlich sein.
Dieses Howto beschreibt:
Hinweis: Dieses Howto ist für debian-basierte Systeme geschrieben (apt-get) der großteil der Befehle funktioniert aber auch auf anderen Systemen.
Installation eines dedizierten Battlefield 2 Servers unter Linux
– Als erstes loggt ihr euch in die Shell ein
– Linux dedicated server ziehen:
wget LINKADRESSE
Patch 1.4 Linux-Dedi:
Linux Dedi Patch 1.4 (EA-FTP)
– Packet entpacken:
unzip bf2-linuxded-1.1.2720-552-installer.zip
– Installationspaket mit passenden Rechten ausstatten:
chmod 755 bf2-linuxded-1.1.2720-552-installer.sh
– Server installieren:
./bf2-linuxded-1.1.2720-552-installer.sh
– Alternativ könnt ihr die Installation auch, ohne das Paket mit den Rechten auszustatten, mit sh bf2-linuxded-1.1.2720-552-installer.sh starten
– EULA für Gameserver und Punkbuster abnicken, Zielverzeichnis wählen (z.b. /bf2)
– Installation fertig!
Einrichtung des Servers
– Für die Konfiguration des Servers sind 2 Dateien wichtig:
/bf2/mods/bf2/settings/serversettings.con
/bf2/mods/bf2/settings/maplist.con
Der Name der Dateien verrät schon ihre Funktion 😉
– Als erstes bearbeiten wir die serversettings.con:
sv.serverName „Testserver“ // Name des BF2-Servers
sv.password „“ // Kennwort zum Joinen
sv.internet 1 // LAN=0, Internet=1
sv.bandwidthChoke 0 // Bandbreitenbegrenzung, in der Regel auf 0 lassen
sv.serverIP „123.123.123.123“ // IP des Gameservers
sv.serverPort 16567 // Standard-Gameport
sv.welcomeMessage „123 test eins zwo drei“ // Willkommensnachricht
sv.punkBuster 1 // Punkbuster ein/ausschalten
sv.allowFreeCam 0 // Spieler kann nach dem Tod mit der Kamera um sich blicken
sv.allowExternalViews 1 // externe Kamera in Fahr/Flugzeugen erlauben
sv.allowNoseCam 1 // Cockpitansicht deaktivieren erlauben
sv.hitIndicator 1 // Zeigt einen Treffer im Fadenkreuz an
sv.maxPlayers 64 // maximale Spieleranzahl
sv.numPlayersNeededToStart 2 // Mindestspielerzahl fuer Spielbeginn
sv.notEnoughPlayersRestartDelay 15 // Restarttime bei zu wenig Spielern
sv.startDelay 15 // Wartezeit (in Sekunden) vor Spielstart
sv.endDelay 15 // Wartezeit (in Sekunden) vor Spielende
sv.spawnTime 15 // Zeit zum Wiedereintritt ins Spiel nach Tot
sv.manDownTime 15 // Zeit, in der man reanimiert werden kann
sv.endOfRoundDelay 15 // Wartezeit nach Rundenende
sv.ticketRatio 200 // Ticketratio in Prozent
sv.roundsPerMap 1 // Runden bis Mapwechsel
sv.timeLimit 1200 // Zeitlimit in Sekunden (1200 = 20 Minuten) bis Rundenende
sv.scoreLimit 0 // Scorelimit bis Rundenende
sv.soldierFriendlyFire 100 // Schaden (in Prozent) bei Beschuss durch eigenes Team
sv.vehicleFriendlyFire 100 // Schaden (in Prozent) bei Verletzung durch teameigene Fahrzeuge
sv.soldierSplashFriendlyFire 100 // Schaden (in Prozent) bei Teambeschuss durch Druckwelle
sv.vehicleSplashFriendlyFire 100 // Schaden (in Prozent) bei explodierenden, teameigenen Fahrzeugen
sv.tkPunishEnabled 0 // Bestrafung bei Teamkill ein/ausschalten
sv.tkNumPunishToKick 5 // Anzahl Teamkills bis zum automatischen Kick
sv.tkPunishByDefault 0 // Teamkills automatisch bestrafen? aus/an
sv.votingEnabled 0 // Votes erlauben
sv.voteTime 90 // Dauer eines Votes
sv.minPlayersForVoting 2 // minimale Anzahl der Spieler, die man fuer ein Voting braucht
sv.gameSpyPort 29900 // HLSW-Port (Standard = 29900)
sv.allowNATNegotiation 0 // aktivieren, wenn der Server hinter einer Firewall sitzt
sv.interfaceIP „123.123.123.123“ // muss nur angegeben werden, wenn der Server mehrere IPs hat. immer identisch mit der sv.serverIP
sv.autoRecord 0 // automatisch Aufnahme von Demos
sv.demoIndexURL http: //
sv.demoDownloadURL http: //
sv.autoDemoHook „adminutils/demo/rotate_demo.py“
sv.demoQuality 1 // Demoqualität
sv.adminScript „default“ // wird spaeter mal benutzt, noch keine Funktion
sv.timeBeforeRestartMap 20 // Zeit zwischen 2 Runden
sv.autoBalanceTeam 1 // Autobalance
sv.teamRatioPercent 100 // Teams gleich verteilen?
sv.voipEnabled 1 // Voiceserver ein/ausschalten
sv.voipQuality 3 // Qualitaet der Sprachuebermittlung
sv.voipServerRemote 0 // Externen Voiceserver benutzen
sv.voipServerRemoteIP „“ // IP des externen Voiceservers
sv.voipServerPort 55125
sv.voipBFClientPort 55123
sv.voipBFServerPort 55124
sv.voipSharedPassword „“
sv.useGlobalRank 1 // Globalranks von Gamespy beziehen
sv.useGlobalUnlocks 1 // Waffenunlocks erlauben
sv.sponsorText „“ // keine Ahnung wo der Angezeigt werden soll
sv.sponsorLogoURL „http://www.mein…meinbild.jpg“ (localhost funktioniert hier nicht!)
sv.communityLogoURL „http://www.mein…meinbild.jpg“ (localhost funktioniert hier nicht!)
sv.radioSpamInterval 6 // Anzahl der Durchsagen eines Mitspielers, nach der er geblockt wird
sv.radioMaxSpamFlagCount 6 // keine Ahnung
sv.radioBlockedDurationTime 30 // Zeit der Spamblockade
– Achtung: die Kommentare in den settings ( „// blafasl“ ) unbedingt weglassen! Dadurch wird die serversettings.con unbrauchbar!
– Nun den Mapcycle anpassen: /bf2/mods/bf2/settings/maplist.con
– Syntax: mapList.append dalian_plant gpm_cq 16
– die Namen der Maps findet ihr unter „…mods/bf2/levels“
– als Mapmodus gibts derzeit nur den Conquest Modus (gpm_cq)
– als Mapgroesse nimmt man 16, 32 oder 64
– alle Maps kommen so wie oben gezeigt untereinander, jede auf eine Zeile
– Grundkonfiguration abgeschlossen
Starten des Servers
– Im bf2-Verzeichnis: Start des servers mit screen ./start.sh – empfehle ich für den ersten Start, da man hier die Statusmeldungen, den Ladevorgang und eventuelle Fehler sieht
– Start und direkt in den Hintergrund schicken:
screen -dmS BF2Server ./start.sh
Custom Maps
– Custom-Maps haben oft den Nachteil, dass sie auf Windows-Systemen erstellt wurden und diese nicht wie Linux zwischen Groß- und Kleinschreibung unterscheiden
– Lade die Custom-Map auf deinen Server und schieb Sie in das Verzeichnis /bf2/mods/bf2/levels/
– Hier hat jede Map ein eigenes Verzeichnis welches i.d.R. 3 Sachen enthält:
-Info-Verzeichnis (mit Bildern und text für den Serverbrowser/ Ladescreen)
– server.zip
– client.zip
– Die client-zip benötigst du auf dem Server logischerweise nicht
– Nachdem du alle Custom-Maps auf dem Server hast, lass das Python-Script lowercasedir laufen:
– Um das auszuführen muss Python installiert sein (apt-get install python), danach kannst du im bf2-Verzeichnis mit python lowercaseDir.py /bf2 die Files umschreiben lassen
– Alle Dateinamen und Verzeichnisse werden nun in kleine Buchstaben verwandelt
– Nun musst du nur noch, wie oben beschrieben, die Maps dem Cycle adden
Mods auf dem Server
– Mods kommen in das Mods-Verzeichnis (Überraschung 😉 )
– Wenn es noch nicht vorhanden ist, musst du ein neues Verzechnis „settings“ in diesem Mod-Ordner erstellen, in welchen die beiden Dateien „serversettings.con“ und „maplist.con“ gehören (ich habe diese einfach aus dem Ordner bf2/mods/bf2/settings/ rüber kopiert)
– Sollten im neuen Mod-Ordner wieder großgeschriebene Verzeichnisse sein, musst du wieder das Python-Script (siehe oben) laufen lassen
– Die Maps für den Mod sind im Ordner „mods/deinmod/levels/“, solltest du also Custom-Maps mit dem Mod laufen lassen wollen, musst du die hier ebenfalls nochmal rein kopieren
– Start des Mod-Servers mit ./start.sh +modPath mods/DEINMOD
– Start und direkt in den Hintergrund schicken: screen -dmS BF2Server ./start.sh +modPath mods/DEINMOD
zusätzliche Hinweise
– Server-Grafik: hier muss eine korrekte URL-Angabe hin, „Localhost“ und „127.0.0.1“ funktionieren nicht
– rcon-Bereich
– Im Verzeichnis „bf2/admin“ die Datei „default.cfg“ erstellen
– Darin muss stehen:
port=4711
password=sicherespasswort
– Der Rcon-Port kann natürlich auch anders gewählt werde, das ist der Standardport
– Zeilenumbruch bei der Servernaricht
– Einen Zeilenumbruch macht man mit dem | Zeichen
– Bsp.: aus „Willkommen|auf|videofront.net“ wird
Willkommen
auf
videofront.net
– weiterführende Links:
– Installationsanleitung für BF2 Server incl. BF2CC, unter Linux
– Battlefield 2 Addon „Special Forces“
./start.sh +modPath mods/xpack
wenn mit screen, damit das gleich in den hintergrund gelegt werden kann mit strg a+d, nach dem hochfahren, dann so:
screen ./start.sh +modPath mods/xpack
vorher nicht vergessen die maps anzulegen, da nur 1 map drin ist.
hier eine liste der maplist.con für special forces:
mapList.append Devils_Perch gpm_cq 32
mapList.append Surge gpm_cq 32
mapList.append Mass_Destruction gpm_cq 32
mapList.append Iron_Gator gpm_cq 32
mapList.append Warlord gpm_cq 32
mapList.append Leviathan gpm_cq 32
mapList.append Night_Flight gpm_cq 32
mapList.append Ghost_Town gpm_cq 32
Infos, Gruß & Dank
Dieses HowTo stützt sich im wesentlichen auf ein HowTo auf gameserveradmin.de ( http://www.gameserveradmin.de/kb-artikel-28.html ) und viele Forenbeträge die ich über Google gefunden habe. Einen recht nützlichen Anteil leistete übrigens „DerGeneral“ auf http://forum.gaming-networks.net/ mit seinen hilfreichen und netten Posts zum Thema Server-Administration.
Danken möchte ich allen Mappern und Moddern, dass auch Abseits des Kommerz-Ranked-Geschehens einiges geht! Weiter so!
Grüßen möchte ich meine Jungs vom StS und meine Bekannten vom THM-Clan.
KEIN DANK geht an EA und Dice für dieses völlig verbuggte Game und einen 3. Patch der 300 MB groß ist, vor allem popelige Kacke behebt von einem Addon was den Kids noch mehr Geld aus der Tasche ziehen soll und der Tatsache, dass ihr in euren dämlichen nordamerikanischen kapitalgeilen Köpfen vergessen habt, was ein inkrementeller Patch ist. Eure Produktpolitik geht mir hart auf den Sack!
Für Ergänzungen und Anregungen bin ich dankbar!
Mittwoch, August 9th 2006 at 18:08
Hier nochmal der Link zur Server-Version 1.3:
ftp://largedownloads.ea.com/pu.....ler.tar.gz
Donnerstag, September 7th 2006 at 15:03
Der 1.4er Patch ist raus.
Direkt-Link auf dem EA-FTP:
ftp://largedownloads.ea.com/pu.....ller.sh.gz
Donnerstag, September 14th 2006 at 10:55
Hinweise zur Version 1.4:
Das heruntergeladene Archiv muss mit
gunzip bf2-linuxded-1.1.2963-795-installer.sh.gz
entpackt werden.
Der Rest des Upadtes erfolgt nach obiger Anleitung (sichern der maplist.con, serversettings.con und default.cfg nicht vergessen).
Mittwoch, Januar 3rd 2007 at 12:24
Hallo,
iVm Battlerecorder habe ich das Problem, dass bei Rundenende ein errorlog erzeugt wird, in dem folgendes steht. Kann mir da jemand helfen?
Traceback (most recent call last):
File „adminutils/demo/rotate_demo.py“, line 137, in ?
ftp = ftplib.FTP(options[‚ftp_server‘], options[‚ftp_user‘], options[‚ftp_password‘])
File „/usr/lib/python2.3/ftplib.py“, line 107, in __init__
self.connect(host)
File „/usr/lib/python2.3/ftplib.py“, line 117, in connect
for res in socket.getaddrinfo(self.host, self.port, 0, socket.SOCK_STREAM):
gaierror: (-2, ‚Name or service not known‘)
Dienstag, Juli 10th 2007 at 18:17
Hallo und Danke für die Superanleitung, hat sehr gut geklappt bei mir. Habe nur eine Frage:
Wenn ich mich mit dem server verbinden will, geht keine Seite auf? Muß ich da nun erst noch ein Spiel dazu kaufen? Sorry mag für manchen eine blöde Frage sein, aber ich hab von einem Gameserver null Ahnung.
Gruß
Ede
Mittwoch, Juli 11th 2007 at 01:01
Ja, da musst du wohl das Spiel noch dazu kaufen.
Dienstag, November 20th 2007 at 14:40
HY!
habe mal eine frage.
habe auch schon etliche BF2 Linux server zum laufen gebracht und laufen auch ganz gut nur hab ich eine problem mit meinem BF2 Ranked server denn da geht kein VoIP und der hoster sagt es ist nich verfügbar und ewig diskutiert aber nun bin ich soweit das voIP auf einen anderen server zu holen wie kann ich da den VoIP server auf linux root installieren? kann mir jemand helfen?
MfG
banned_rainbow
banned_rainbow@hotmail.com
Dienstag, November 20th 2007 at 14:42
HY!
habe mal eine frage.
habe auch schon etliche BF2 Linux server zum laufen gebracht und laufen auch ganz gut nur hab ich eine problem mit meinem BF2 Ranked server denn da geht kein VoIP und der hoster sagt es ist nich verfügbar und ewig diskutiert aber nun bin ich soweit das voIP auf einen anderen server zu holen wie kann ich da den VoIP server auf linux root installieren? kann mir jemand helfen?
danke im vorraus
MfG
banned_rainbow
banned_rainbow@hotmail.com
Dienstag, November 20th 2007 at 14:55
Der Hoster will sicher einfach nicht, dass es verfügbar ist. 😉
Den externen Voice-Server habe ich allerdings auch noch nie ausprobiert.
Mittwoch, März 11th 2009 at 17:45
hi
ich habe da einige fragen und anmerkungen
als 1. der befehl unzip funktionirte bei mir nich konnte die datei nur mit gunzip entpacken alles ander funktionirte soweit gut leider habe ich noch ein paar kleine macken drin wo ich noch nicht weiß wie ich sie beheben soll wen ich den server staren will mit screen ./start.sh (screen is terminatig) und wenn ich versuche den server stare mit ./start.sh zu starten bekomme ich folgende fehlermeldung
/home/gameserver/BF2/bf2/bin/ia-32/bf2: error while loading shared libararies: libstdc++.so.5: cannot open shared object file: No such file or directory
als linux version verwende ich open suse 11.1
bf2 version bf2-linuxded-1.1.2963-795-installer.sh
wen mir jemand helfen kann wäe das mich schlecht ich danke im vorraus
Montag, September 21st 2009 at 22:51
Hier ein HowTo mit Image für den Bf2 1.5 Patch
http://www.ccf-clan.de/include.....tentid=157
Mittwoch, November 25th 2009 at 16:17
***UPDATE***
Hier ein HowTo mit Image für den Bf2 1.5 Patch
http://www.casseler-chaos-fuec.....ntentid=11