BF1942 Gameserver unter Linux

Aus BF-Games.net Battlefield Wiki
Wechseln zu: Navigation, Suche

Allgemeines

Ich zitiere mal aus dem Forum den Beitrag Installationsanleitung für Server + BFSM, unter Linux von Fisch.666. Danke an Fisch666 für die hervorragende Vorarbeit

Benötigte Dateien

bf1942_lnxded-1.6-rc2.run

bf1942-update-1.61.tar.gz

BFServerManager201.tgz u. BFRemoteManager201.zip

Installation des Servers

WICHTIG!!! Installiert den Server aus Sicherheitsgründen bitte nicht als root! Das selbe gilt auch für das laufen lassen des Servers, legt dafür bitte einen neuen User an!

Die kursiven Zeilen sind in der Shell einzugeben.

1. Installationsdatei ausführbar machen

chmod 744 bf1942_lnxded-1.6-rc2.run

2. Installer starten

sh bf1942_lnxded-1.6-rc2.run

oder

./bf1942_lnxded-1.6-rc2.run

3. Der 1ste EULA mit "accept" und der 2ten (falls Punkbuster installiert werden soll) mit "yes" zustimmen.

4. In der nächsten Eingabeaufforderung Zielverzeichniss auswählen. (z.B. /usr/local/games oder /home/"username") Darin wird dann das Verzeichniss bf1942 erstellt.

4a. Archiv bf1942-update-1.61.tar.gz in das BF1942 Verzeichnis entpacken mit tar -xvzf bf1942-update-1.61.tar.gz.

5. maplist.con und serversettings.con in bf1942/mods/bf1942/settings anpassen. (Können auch später mit dem BFSM konfiguriert werden)

Die maplist.con sollte so aussehen:

game.addLevel gazala GPM_CQ bf1942
game.addLevel invasion_of_the_philippines GPM_CQ bf1942
game.addLevel kharkov GPM_CQ bf1942
game.addLevel battleaxe GPM_CQ bf1942
game.addLevel battle_of_britain GPM_CQ bf1942
game.addLevel kursk GPM_CQ bf1942
game.addLevel stalingrad GPM_CQ bf1942
game.addLevel market_garden GPM_CQ bf1942
game.addLevel omaha_beach GPM_CQ bf1942
game.addLevel coral_sea GPM_CQ bf1942
game.addLevel wake GPM_CQ bf1942
game.addLevel tobruk GPM_CQ bf1942
game.addLevel el_alamein GPM_CQ bf1942
game.addLevel aberdeen GPM_CQ bf1942
game.addLevel iwo_jima GPM_CQ bf1942
game.addLevel guadalcanal GPM_CQ bf1942
game.addLevel battle_of_the_bulge GPM_CQ bf1942
game.addLevel liberation_of_caen GPM_CQ bf1942
game.addLevel bocage GPM_CQ bf1942
game.addLevel berlin GPM_CQ bf1942
game.addLevel midway GPM_CQ bf1942
game.setCurrentLevel gazala GPM_CQ bf1942


6. Der Server starten

sh start.sh +statusMonitor 1

oder

./start.sh +statusMonitor 1


Damit der Server nicht beendet wird wenn man das SSH- Fenster schlie?t kann man einen dieser beiden Befehle benutzen:

- nohup (schickt den Serverprozess in den Hintergrund, kein weiteres eingreifen möglich)

nohup ./start.sh &

oder

- screen

screen -d -m -S bf1942 ./start.sh +statusMonitor 1


Jetzt läuft der Server in einer virtuellen Konsole.

In diese kann man wieder mit

screen -r bf1942

wechseln.

Die Konsole verlassen, ohne dass der Server beendet wird kann man mit folgender Tastenkombination:

[STRG + A] + D

Um den Server zu beenden muss man in der virtuellen Konsole [STRG] + C drücken bzw. quit eingeben.

Konfiguration für den Adminzugang

1. Für die Administration direkt im Spiel folgenden Eintrag in den beiden Dateien serverautoexec.con und adminsettings.con eintragen:

admin.enableRemoteAdmin "Passwort"

"Passwort" einfach mit dem Passwort ersetzen mit dem Ihr Euch später im Spiel einloggen wollt.

2. Für die Administration über ein Remotetool wie HLSW den folgenden Eintrag in den beiden Dateien

serverautoexec.con und adminsettings.con eintragen:

admin.enableRemoteConsole "Benutzername" "Passwort" "Port"

"Benutzername" ersetzen durch den gewünschten Benuternamen, "Passwort" durch das gewünschte Passwort und "Port" durch 4711 (Standardport, könnte auch z.B. bei 2 Servern 4712 sein)

Diese Settings müssen dann später im Remotetool eingegeben werden.

Installation des BFSM

1. Entpacken der "bfsmd" an einen beliebigen Ort. (z.B. /usr/bin, /usr/local/bin, /home/"username"/bf1942/, /home/"username"/bf1942/bfsm/ usw.):

tar -xzvf BFServerManager201.tgz bfsmd
cp bfsmd /usr/bin
chmod 755 /usr/bin/bfsmd

2. Entpacken der beiden .con Dateien nach /pfad/zum/bf1942ordner/mods/bf1942/settings:

tar -xzvf BFServerManager201.tgz useraccess.con servermanager.con
cp useraccess.con servermanager.con /pfad/zum/bf1942ordner/mods/bf1942/settings

3. Starten des BFSM mit: (vorher muss die start.sh des BF1942 Servers 1x ausgeführt und wieder beendet werden damit der bf1942_linded symlink erstellt wird.)

bfsmd -daemon -path /pfad/zum/bf1942ordner (falls in /usr/bin bzw. /usr/local/bin)

cd /pfad/zur/bfsmd
./bfsmd -daemon -path /pfad/zum/bf1942ordner (falls in einem anderen Ordner)

Wenn Ihr beim starten des bfsmd diese Fehlermelung angezeigt bekommt:

/bfsmd: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./bfsmd)

dann läuft Eure Linux Distri noch nicht mit der glibc2.3 welche vom bfsmd benötigt wird. Falls dies der Fall ist müsst Ihr den BFSM per:

./bfsmd.static

starten. Vorher muss diese aber mit:

tar -xzvf BFServerManager201.tgz bfsmd.static
cp bfsmd.static /usr/bin
chmod 755 /usr/bin/bfsmd.static

entpackt und in das gewünschte Verzeichniss kopiert werden.

Folgende zusätzlichen Parameter können noch benutzt werden:

Usage: BFSMD [-path <path>] [-ip <ip>] [-port <port>] [-pid <path>] [-daemon] [-start] [-stop][-restart] [-priority <#>] [-syslog <#>] [-quit] [-license] [+server args] [@server cmds]

-path <path> is the /path/to/server/directory (no trailing slash)
-ip <ip> sets the server and BFSMD TCP/IP address (cannot be 0.0.0.0)
-port <port> sets the TCP port address of the BFSMD listen server (default 14667)
-pid <path> creates /path/to/pid/filename containing the BFSMD instance pid
-daemon daemonizes the BFSMD process
-start starts the server when BFSMD starts
-stop stops the server when BFSMD starts
-restart restarts the server process automatically after a crash
-priority <#> will renice the server to the given priority
-syslog <#> logs to specified syslog local facility 0-7 instead of bfsmd.log
-reuseaddr will bind BFSMD listen socket when already in use (use with caution!)
-exit stops the server when BFSMD exits
-quit terminates BFSMD when the server process terminates unexpectedly
-kill terminates the instance of BFSMD referenced by the pid file given with -pid
-license displays software license agreement
[+server args] will be passed to the server process e.g. +game bf1942
[@server cmds] will be appended to serversettings.con e.g. @game.gameSpyPort 23000

4. Verbindung zum Servermanager mit dem BFRM. Beim ersten starten müssen folgende Werte benutzt werden:

  • Hostname/IP: <Serverip>
  • BFSM Port: 14667
  • BFSM User: admin
  • BFSM Pass: password

5. Folgende Settings zuerst editieren:

  • In die Einstellung "IP Address" unter "Server" die richtige IP eingeben. (Bei einem Tippfehler startet der Server nicht!!!)
  • Unter "Admin" MUSS neben "Enable Remote Console" ein Häckchen sein (Sonst kann kein Mapchange usw. ausgeführt werden), auch dürfen bei "Username" und "Passwort" nicht mehr die Standartwerte "User" und "Password" stehen, ansonsten kann man den Server nicht als Internet Server starten.
  • Unter "Users" sollte der Standartuser "admin" gelöscht und einen neuen User angelegt werden.

Dann diese Einstellungen in der unteren Menüleiste mit "Save" abspeichern, ansonsten werden diese nicht übernommen.

6. Alle weiteren Einstellungen anpassen, mindestens 1 Map unter "Maps" auswählen (ansonsten startet der Server nicht) und den Server mit "Start" starten.

Wenn der Server nicht startet, immer zuerst mal in das Log (bfsm.log) schauen, oftmals ist die Vermischung von Groß- und Kleinschreibung die Ursache davon.

Ports freigeben

Falls der Server hinter einem Router oder einer Firewall liegt, müssen die entsprechenden Ports freigegeben werden, damit man zum einen auf dem Server mitspielen und zum anderen er im Ingamebrowser oder in den alternativen Serverbrowsern gefunden werden kann.