Battlefield 2 Linux-Server Installation (HOWTO)

TOP 

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:

  • Installation eines dedizierten Battlefield 2 Servers unter Linux
  • Einrichtung des Servers
  • Starten des Servers
  • Custom Maps hinzufügen
  • Mods auf dem Server installieren
  • zusätzliche Hinweise
  • 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!

    12 comments to “Battlefield 2 Linux-Server Installation (HOWTO)”

    1. Comment by ossi:

      Hier nochmal der Link zur Server-Version 1.3:
      ftp://largedownloads.ea.com/pu.....ler.tar.gz

    2. Comment by ossi:

      Der 1.4er Patch ist raus.
      Direkt-Link auf dem EA-FTP:
      ftp://largedownloads.ea.com/pu.....ller.sh.gz

    3. Comment by ossi:

      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).

    4. Comment by Andi:

      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‘)

    5. Comment by Edgar:

      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

    6. Comment by ossi:

      Ja, da musst du wohl das Spiel noch dazu kaufen.

    7. Comment by banned_rainbow:

      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

    8. Comment by banned_rainbow:

      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

    9. Comment by ossi:

      Der Hoster will sicher einfach nicht, dass es verfügbar ist. 😉
      Den externen Voice-Server habe ich allerdings auch noch nie ausprobiert.

    10. Comment by Microwolf:

      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

    11. Comment by GoldFuchs80:

      Hier ein HowTo mit Image für den Bf2 1.5 Patch

      http://www.ccf-clan.de/include.....tentid=157

    12. Comment by GoldFuchs80:

      ***UPDATE***
      Hier ein HowTo mit Image für den Bf2 1.5 Patch
      http://www.casseler-chaos-fuec.....ntentid=11

    Leave a Reply