Installation sous Linux

Préambule

Pourquoi installer un serveur Arma II sous Linux plutôt que sous Windows ? Les performances annoncées par Bohemian paraissent identiques et elles le sont surement. Dans l'absolu, une fois recompilé pour un système d'exploitation ou l'autre, le serveur devrait avoir sensiblement la même performance, mais dans la réalité il n'en est rien.

Et oui, le serveur ne tourne pas tout seul. Son comportement est largement influencé par ce qui l'entoure. C'est à dire que si vous lancez votre serveur Arma II et en même temps un traitement lourd, Arma va subir les ralentissement infligé par l'autre programme.

Dans ce cas, des différences importantes apparaissent entre le fonctionnement sous Linux ou Windows.

En fait il n'y a quasiment aucun avantage à faire tourner son serveur sous Windows.

Les avantages et inconvénients de chacun:

Linux Windows
+ Système d'exploitation gratuit - Système d'exploitation payant
+ Multi-tâche performant - Médiocre
+ Sécurisation du system - C'est quoi ?
+ Administration distance - Lol

Vous l'avez compris, il n'y a aucun intérêt à installer un serveur Arma II sous Windows.

La distribution

Choisir Linux c'est avant tout choisir la distribution. Je recommande Debian (Lenny) parce que c'est LA distribution pour les raisons évoquées dans ce liens : pourquoi Debian

Le reste de ce tutoriel se réfèrera donc à cette distribution. Ce n'est pas un tuto sur l'installation d'une distrib aussi je m'etendrait pas sur le sujet. Si vous n'avez pas les compétences requises pour administrer votre système à distance, oubliez.

Donc pour commencer, installez votre Lenny en mode texte uniquement. Pas besoin de gestionnaire de fenêtre, ou je ne sais quoi d'autres. Installez le minimum, nous n'avons besoin de rien.

Comme nous sommes des grandes filles et que nous n'avons peur de rien et qu'on est un minimum responsable et que nous sommes des R3F et qu'en plus on sait ce qu'on fait et qu'on les meilleurs et qu'on les encule, tremblez bonnes gens, nous travaillerons en mode root !!!!

Arrêtez la bibine et les substances bizarres, ici la faute se paye cash et chers souvent.

Alors les fiotes du terminal, les usés de l'index (mouse man), les chiasseux chronique, les anxieux de l'octet, circulez c'est pas pour vous ici.

Ames sensibles s'abstenir, on travaille sans filet.

Mais si vous aimez les petites poussées d'adrénaline…

L'installation se fera dans /home donc prévoyez de la place sur cette partition.

Ajoutez de quoi compiler un programme (build essential devrait suffire) et ia32-libs si votre Debian est en 64bits Ajoutez à l'installation tout ce qui permet de décompresser des archives Windows. C'est utiles pour installer les addons qui sont des fois en rar, zip , voire exe

L'installation d'Arma II

Nous y voila, votre machine distance a reboutté, vous êtes loggé dessus en root, les choses sérieuses peuvent commencer.

Créer un répertoire arma dans /home

mkdir /home/arma
cd /home/arma

Copiez dans ce répertoire tout votre répertoire d'installation Arma2 de votre machine locale vers ce répertoire. Utilisez par exemple WinScp qui fait ca très bien. C'est aussi la que vous allez comprendre ce que veut dire la petite lettre A de ADSL. Lol Et oui c'est long les téléchargements dans ce sens là, quand c'est vous qui envoyez les fichiers.

Avec votre navigateur et sur la machine locale, téléchargez le serveur Arma2 pour Linux. Vous pouvez consulter la page officielle de Bohemian Interactive à propos du serveur dédié sous Linux. Téléchargeons le serveur Arma2 sous Linux chez Bohemian Interactive.

Une fois le téléchargement initié, récupérez l'adresse (URL) du fichier et copiez la dans le presse papier. Dans le terminal entrez :

wget -O arma2server.bz2 [SHIFT+INSERT]

[SHIFT+INSERT] est la séquence de touche qui permette de coller le contenu du presse papier dans la console. (l'URL du fichier serveur Arma2 sous linux)

Le téléchargement effectué vous devriez avoir un fichier nommé arma2server.bz2

Décompressez l'archive

tar -xjf arma2server.bz2

une fois la décompression effectuée, tapez :

gcc -O -o tolower tolower.c

ce qui aura pour effet de compiler un petit programme nommé “tolower” qui nous sera utile par la suite.

Effacer tous les fichiers inutiles

rm -f *.exe *.chm *.dll *.o

On va maintenant utiliser tolower pour convertir tous les noms de fichiers en minuscule. Sous Linux le serveur Arma ne fonctionne qu'avec des noms de fichier en minuscule.

./tolower

Si tout c'est bien passé, vous devriez avoir un répertoire ressemblant à ça en tapant :

ls -l
drwxr-x— 2 root root4096 jan 9 17:20 addons
-rw-r—– 1 root root0 mai 16 11:55 ban.txt
drwxr-x— 2 root root4096 mar 4 12:21 battleye
drwxr-x— 2 root root4096 jan 6 14:54 dta
drwxr-x— 2 root root4096 mai 9 22:48 keys
drwxr-x— 2 root root4096 mai 16 17:32 logs
drwxr-x— 2 root root4096 jun 19 2009 missions
drwxr-x— 2 root root4096 mai 14 18:09 mpmissions
-rwxr-x— 1 root root16138960 déc 21 14:08 server
drwxr-x— 4 root root4096 mai 16 17:32 tmp2302
-rwxr-x— 1 root root11258 jan 9 17:20 tolower

Nous voila prêt. Ou presque.

L'installation est terminée et il nous reste à configurer et à lancer.

Configuration du serveur

Créer les fichiers suivants :

touch /home/arma/run_arma
chmod +x /home/arma/run_arma
touch /home/arma/basic.cfg
touch /home/arma/server.cfg
mkdir /home/arma/server
touch /home/arma/server/server.armaprofile
mkdir /home/arma/logs

Les fichiers de configuration vont être rempli.

basic.cfg

Le fichier 'basic.cfg' contiendra :

language="French";
adapter=-1;
3D_Performance=1.000000;
Resolution_W=800;
Resolution_H=600;
Resolution_Bpp=32;
MinBandwidth = 320000;
MaxBandwidth = 10000000000;
MaxMsgSend = 256;
MaxSizeGuaranteed = 1024;
MaxSizeNonguaranteed = 64;
MinErrorToSend = 0.005;
MaxCustomFileSize = 1000000;

Vous pouvez consulter Wiki de Bohemian Interactive pour de plus amples exmplications.

server.cfg

Le fichier server.cfg contiendra :

hostname = "Serveur de test";
password = "";
passwordAdmin = "xyz";
reportingIP = "armedass.master.gamespy.com";
logFile = "logs/server.log";
motd[] = {
	"Bienvenue sur le serveur de test",
	"",
	"O.E.L.M.E.O.L.E"
};
motdInterval = 5;
checkfiles[] = {};
maxPlayers = 30;
kickDuplicate = 1;
verifySignatures = 1;
equalModRequired = 0;
voteMissionPlayers = 1;
voteThreshold = 0.33;
disableVoN = 1;
vonCodecQuality = 0;
persistent = 1;
onUserConnected = "";
onUserDisconnected = "";
doubleIdDetected = "";
regularCheck = "";
onUnsignedData = "kick (_this select 0)";
onHackedData = "ban (_this select 0)";
onDifferentData = "";
BattlEye = 1;
class Missions {};

Vous pouvez consulter Wiki de Bohemian Interactive pour de plus amples explications.

server.armaprofile

Ce fichier contient la configuration “in game”, c'est à dire la facon dont vont se comporter les IA, va-t-on avoir une vue en 3D, la difficulté, la précision des IA etc etc.

class Difficulties
{
	class recruit
	{
		class Flags
		{
			Armor=1;
			FriendlyTag=1;
			EnemyTag=0;
			HUD=1;
			HUDPerm=1;
			HUDWp=1;
			HUDWpPerm=1;
			HUDGroupInfo=1;
			AutoSpot=1;
			Map=1;
			WeaponCursor=1;
			AutoGuideAT=1;
			ClockIndicator=1;
			3rdPersonView=1;
			Tracers=1;
			UltraAI=0;
			AutoAim=0;
			UnlimitedSaves=1;
			DeathMessages=1;
			NetStats=1;
			VonID=1;
		};
		skillFriendly=1;
		skillEnemy=0.55;
		precisionFriendly=1;
		precisionEnemy=0.3;
	};
	class regular
	{
		class Flags
		{
			Armor=1;
			FriendlyTag=1;
			EnemyTag=0;
			HUD=1;
			HUDPerm=1;
			HUDWp=1;
			HUDWpPerm=1;
			HUDGroupInfo=1;
			AutoSpot=1;
			Map=1;
			WeaponCursor=1;
			AutoGuideAT=1;
			ClockIndicator=1;
			3rdPersonView=1;
			Tracers=1;
			UltraAI=0;
			AutoAim=0;
			UnlimitedSaves=1;
			DeathMessages=1;
			NetStats=1;
			VonID=1;
		};
		skillFriendly=1;
		skillEnemy=0.7;
		precisionFriendly=1;
		precisionEnemy=0.5;
	};
	class veteran
	{
		class Flags
		{
			HUD=1;
			HUDGroupInfo=0;
			WeaponCursor=1;
			3rdPersonView=1;
			UltraAI=0;
			DeathMessages=1;
			NetStats=1;
			VonID=0;
		};
		skillFriendly=1;
		skillEnemy=0.9;
		precisionFriendly=1;
		precisionEnemy=0.75;
	};
	class mercenary
	{
		class Flags
		{
			UltraAI=0;
			DeathMessages=0;
			NetStats=0;
			VonID=0;
		};
		skillFriendly=1;
		skillEnemy=1;
		precisionFriendly=1;
		precisionEnemy=1;
	};
};

Vous pouvez consulter Wiki de Bohemian Interactive pour de plus amples explications.

Script de démarrage

On va écrire dans le fichier 'run_arma' le script Bash qui nous permettra de lancer facilement le serveur. Ce script à l'avantage aussi de relancer le serveur automatiquement en cas de plantage.

#!/bin/bash
ARMA_DIR=/home/arma2
CONFIG=server.cfg
NAME=server
CFG=basic.cfg
PROFILES=server
PORT=2302
PIDFILE=${ARMA_DIR}/logs/${PORT}.pid
RUNFILE=${ARMA_DIR}/logs/${PORT}.run
LOGFILE=${ARMA_DIR}/logs/log.${PORT}.txt
SERVER=${ARMA_DIR}/server
MODS="";
 
#=======================================================================
ulimit -c 1000000
 
case "$1" in
    start)
        if [ -f ${RUNFILE} ]; then
            $0 stop
        fi
        echo "Démarrage du serveur Arma..."
        echo "go" >${RUNFILE}
        nohup </dev/null >/dev/null $0 watchdog &
        ;;
    stop)
        echo "Arret du serveur Arma..."
        if [ -f ${RUNFILE} ]; then
            rm -f ${RUNFILE}
        fi
        if [ -f ${PIDFILE} ]; then
            kill -TERM $(< ${PIDFILE})
            if [ -f ${PIDFILE} ]; then
                rm -f ${PIDFILE}
            fi
        fi
        ;;
    status)
        if [ -f ${RUNFILE} ]; then
            echo "Le serveur Arma fonctionne"
        else
            echo "Le serveur Arma ne tourne pas"
        fi
        if [ -f ${PIDFILE} ]; then
            PID=$(< ${PIDFILE})
            echo "PID file exists (PID=${PID})..."
            if [ -f /proc/${PID}/cmdline ]; then
                echo "Le serveur semble tourner"
            fi
        fi
        ;;
    check)
        echo -n "Répertoire ArmA : ${ARMA_DIR} "
        if [ -d ${ARMA_DIR} ]; then
            echo "OK"
        else
            echo "MANQUANT!"
        fi
 
        echo -n "Le serveur : ${SERVER} "
        if [ -x ${SERVER} ]; then
            echo "OK"
        else
            echo "ERREUR!"
        fi
 
        echo "Numéro de port : ${PORT}"
 
        echo -n "Fichier de configuration : ${CONFIG} "
        if [ -f ${CONFIG} ]; then
            echo "OK"
        else
            echo "MANQUANT!"
        fi
 
        echo "PID file: ${PIDFILE}"
        echo "RUN file: ${RUNFILE}"
        ;;
    restart)
        $0 stop
        /bin/sleep 2
        $0 start
        ;;
    watchdog)
        while [ -f ${RUNFILE} ]; do
            cd ${ARMA_DIR}
            echo >>${LOGFILE} "ELRON ($$): [$(date)] Démarrage du serveur (port ${PORT})..."
            ${SERVER} >>${LOGFILE} 2>&1 -server -config=${CONFIG} -port=${PORT} -pid=${PIDFILE} -name=${NAME} -cfg=${CFG} -profiles=${PROFILES} -mod=${MODS}
            if [ -f ${RUNFILE} ]; then
                echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Serveur mort, attente de redémarrage..."
                sleep 5s
            else
                echo >>${LOGFILE} "WATCHDOG ($$): [$(date)] Serveur arrête intentionnellement, Arrêt de la surveillance par ELRON"
            fi
        done
        ;;
    *)
        echo "$0 (start|stop|restart|status|check)"
        ;;
esac

Control du serveur

Pour lancer le serveur :

/home/arma/run_arma start

Pour arrêter le serveur :

/home/arma/run_arma stop

Pour avoir le status du serveur :

/home/arma/run_arma status

Une fois lancé, vous pourrez tracer en live ce qui se passe sur votre serveur en tapant :

tail -f /home/arma/logs/log.2302.txt

Quand tout à été testé et approuvé par vous même, vous pouvez linkez /home/arma/run_server dans /etc/init.d

ln -s /home/arma/run_server /etc/init.d/arma_server

puis pour le lancement automatique, entrez :

update-rc.d arma_server defaults

Le firewall

A ce stade normalement votre serveur est prêt configuré et paré pour recevoir des joueurs. Il ne reste plus qu'à régler le firewall. Ouvrez les ports en entrée * 2032 en UDP * 2033 en UDP * 2035 en UDP

iptables -f filter -A INPUT -p udp --dport 2032 -j ACCEPT
iptables -f filter -A INPUT -p udp --dport 2033 -j ACCEPT
iptables -f filter -A INPUT -p udp --dport 2035 -j ACCEPT

Vous pouvez consulter http://community.bistudio.com/wiki/ArmA:_Dedicated_Server#Firewall_issues pour de plus amples explications.

Liens utiles

 
dedie/installation_linux.txt · Dernière modification: 17/05/2010 11:50 par Clint
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki