Author Topic: Installing COD5 server on Centos 5.2 (under wine)  (Read 601 times)

Offline Joker{eXtreme}

  • Rank: Private
  • *
  • Posts: 6108
    • http://www.mycallofduty.com
Installing COD5 server on Centos 5.2 (under wine)
« on: December 10, 2008, 09:21:15 pm »
Installing COD5 server on Centos 5.2 (under wine)
By DNK (d.k.emaillists@gmail.com) with help from many on the COD mailing list (cod@icculus.org). Thanks!

* NOTE - if you see an option on the screen that is not mentioned in the instructions, leave the default setting). This install was done from a set of CD's, and not the DVD of Centos 5.2.
* Remote installs - This was done at the local machine, however where I say "Login with root", that can be done locally, or through SSH.
* The compiles instructed in this tutorial are pretty stock, so you can tweak them out to suit your setup.
* My instructions do not account for firewalls, or security. Recommend VNC over ssh.
* Not sure if mesa is really needed. Just saw that another user on the COD list had installed it. So I did. Might be able to skip that.

- drop the disk in, and boot the installer

- Select your language ("next" button)

- Select your keyboard ("next" button)

- This step destroys all data on the system. Select "remove all partitions on selected drives and create default layout". ("next" button).

- Warning pops up ("yes" button)

- Edit your IP settings ("edit" button)

- Tick off "Manual configuration" and enter the Ip info.

- Untick the "enable ipv6 support" if you are not going to use it. Safe to leave enabled though. ("ok" button)

- enter your desired hostname. ie - cod.localhost.

- enter your gateway and dns servers. ("next" button)

- Select your time zone ("next" button)

- Set your root password ("next" button)

- Select your packages to be installed. Tick off:
Desktop - Gnome (All others blank)
("next" button)

- It will check the dependencies now. Watch the progress bar.

- Welcome message is displayed. ("next" button)

- Message displayed warning which disks you will need if installing from the CD set (instead of DVD). ("Continue" button)

- Kick back and watch more progress bars. Maybe a cup o joe.

- A Congrats type message will be displayed once the install is completed. ("Reboot" button)

- Once the system reboots, a setup type wizard will start. ("forward" button)

- It will first ask about your firewall. I disable it, as I have my machine behind another one. ("forward" button)

- Warning pops up asking for confirmation ("yes" button)

- It will first ask about SELinux. I disable it, as it is a huge can of worms if you don't understand it. ("forward" button)

- Warning pops up asking for confirmation ("yes" button)

- set date and time. ("forward" button)

- create a user comes up. It is recommended to not use the "root" user for tasks and use sudo to perform admin tasks. But for simplicity sake, I am not going to create one for this tutorial. ("forward" button)

- Confirmation pops up. ("continue" button)

- Runs sound tests. ("forward" button)

- Asks for additional cd's. ("finish" button)

- Reboot confirmation ("ok" button)

- Login with root (local or SSH)

- Choose: Applications (top left corner) > Accessories - Then right click on Terminal and choose "Add this launcher to panel". The terminal will now be in the panel bar in the upper left corner for easy access. This step is optional.

- Now to update the system. Open terminal, and run: yum -y update ("enter" button)
(or run the included script that saves you from typing - centosDependencies.sh)

- Watch the screen as everything is updated. Run the above command as often as you want to update your system.

- Install the compiler and packages (pilled from http://wiki.winehq.org/Recommended_Packages - under RHEL since Centos is an upstream clone.) needed to compile wine. In terminal and run: yum -y install gcc gcc-c++ flex bison cups-devel esound-devel fontconfig-devel freetype-devel gphoto2-devel isdn4k-utils-devel libjpeg-devel libpng-devel libxml2-devel libxslt-devel ncurses-devel openldap-devel openssl-devel sane-backends-devel XFree86-devel zlib-devel prelink pkgconfig vnc-server ("enter" button)
(This step is also included in the centosDependencies.sh script.)

- Need some other devel libraries. In terminal and run: yum -y groupinstall "X Software Development" ("enter" button)
(This step is also included in the centosDependencies.sh script.)

- Watch it install gcc and any other programs it needs. Fun times.

- Create a user in which to run the wineinstall under (security reasons). In terminal and run: useradd cod ("enter" button)

- Set a password for the user. In terminal and run: passwd cod ("enter" button)

- Download the latest wine source files (wine-1.1.10.tar.bz2 used in this tutorial) to the users home folder for the above user. This is usually /home/username. In our case /home/cod.

- Expand the downloaded file. In terminal and run: cd /home/cod; tar jxvf wine-1.1.10.tar.bz2 ("enter" button)

- There will now be the original .bz2 file and a new directory. Change into that directory.  In terminal and run: cd wine-1.1.10/tools ("enter" button)

- Make sure the installer will be executable to run as the "cod" user. In terminal and run: chmod +x wineinstall ("enter" button)

- Make sure the files extracted belong to the user. In terminal and run: chown -R cod:cod /home/cod/ ("enter" button)

- Change to the user to compile. In terminal and run: su cod ("enter" button)

- Run the installer. In terminal and run: ./wineinstall ("enter" button)

- Watch in wonder and awe as it compiles. When asked if you should "su to root" to do the install, type "yes. Now do something else. Like maybe play COD -  It takes some time.

- After a while you will be prompted to install the binaries as root. You will be asked for your root password. Do so.

- Wine is now installed.

- Exit back to root. In terminal and run: exit ("enter" button)

- Download MesaLib-7.2.tar.gz from mesa3d.org. Save it to your desktop.

- Expand it. In terminal and run: tar xvfz MesaLib-7.2.tar.gz ("enter" button)

- Go into the newly created folder. In terminal and run: cd Mesa-7.2 ("enter" button)

- Figure out your platform. The following command will list all options. In terminal and run: make ("enter" button)

- Run make with the proper option. In terminal and run: make linux-x86 ("enter" button)
(You may need to sub the linux-x86 with your platform if different)

- More compiling fun times.

- Go to the folder where the libs folder was created. In terminal and run: cd ../../ ("enter" button)

- Move it to a permanent home of your preference. In terminal and run: mkdir /root/mesa; mv lib /home/cod/mesa ("enter" button)

- Create the directory to hold the actual server install: In terminal and run: mkdir /home/cod/server ("enter" button)

- Create the directory required for VNC: In terminal and run: mkdir /home/cod/.vnc ("enter" button)

- We are now going to configure VNC. Excerpts are taken from (http://www.7ota.com/blog/2008/09/install-vnc-server-on-centos/). So credit there.

- Change to the user to set the VNC password. In terminal and run: su cod ("enter" button)

- Change the password. In terminal and run: vncpasswd ("enter" button)

- Create the startup file for VNC.  In terminal and run: vi /home/cod/.vnc/xstartup ("enter" button)
(Or move the included 'xstartup' into that folder)

- Make sure it looks like this:
#!/bin/sh?# Uncomment the following two lines for normal desktop:?unset SESSION_MANAGER?exec /etc/X11/xinit/xinitrc?[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup?[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources?xsetroot -solid grey?vncconfig -iconic &?xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &?startx &?exec gnome-session &

- Save it and exit by pressing esc+:+w+q

- Make it executable.  In terminal and run: chmod u+x /home/cod/.vnc/xstartup ("enter" button)

- Exit back to root. In terminal and run: exit ("enter" button)

- Edit the vncservers file. In terminal and run: vi /etc/sysconfig/vncservers ("enter" button)
(or place the included 'vncservers' file into the right directory.

- Make sure it has:
VNCSERVERS="2:cod"?VNCSERVERARGS[2]=”-geometry 800×600 -depth 16?

- Save it and exit by pressing esc+:+w+q

- Start the VNC server and set it to start at boot time. In terminal and run: service vncserver start; chkconfig vncserver on ("enter" button)

- You can now connect to the server with hostname :2 from a vnc client.

- Now we will get the files for cod. In terminal and run: su cod ("enter" button)

- Make sure you are in your home dir and to the server dir. In terminal and run: cd ~/server ("enter" button)

- Create the main folder. In terminal and run: cd ~/server/main ("enter" button)

- Get the actual files, running one at a time. In terminal and run:
cd ~/server; wget http://extreme.planetcallofduty.gamespy.com/codww/full/codww_part1.zip ("enter" button)
cd ~/server/main; wget http://extreme.planetcallofduty.gamespy.com/codww/full/codww_main_part2.zip ("enter" button)
cd ~/server/main; wget http://extreme.planetcallofduty.gamespy.com/codww/full/codww_main_part3.zip("enter" button)
cd ~/server; wget http://extreme.planetcallofduty.gamespy.com/codww/full/CODWW_Patch_1.1_dedi_files.zip ("enter" button)

- Once completed, there should be 2 zip files in your server directory, and 2 in the main folder.

- Expand them. Be sure in the proper order. In terminal and run:
cd ~/server; unzip  codww_part1.zip ("enter" button)
cd ~/server/main; unzip codww_main_part2.zip ("enter" button)
cd ~/server/main; unzip codww_main_part3.zip ("enter" button)
cd ~/server; unzip CODWW_Patch_1.1_dedi_files.zip ("enter" button)

- If you are asked to overwrite, make sure you do!

- Create a startup script. cd ~/server; vi startServer.sh ("enter" button)
(or place the included startServer.sh in the folder - be sure to edit the IP though!)

-Make sure it has this (sub the "x's" for your IP address):
#!/bin/bash
LD_LIBRARY_PATH="/home/cod/mesa/lib"

cd /home/cod/server
wine CoDWaWmp.exe -- +set dedicated 2 +set net_ip xxx.xxx.xxx.xxx +set net_port 28960 +set ui_maxclients 16 +exec server.cfg +map_rotate

- Make it executable. In terminal and run: chomd +x ("enter" button)

- Place a server.cfg in the main folder. I got my template from the COD mailing list, and here (http://forums.gameservers.com/viewtopic.php?t=32159#164116). I merged the two to make the included server.cfg.

- Logout of the server. In terminal and run: exit; exit ("enter" button)

- Now login with your VNC client with the cod user. Open a terminal.

- I found I have to run the start script as root, otherwise I get errors. But I did not want VNC access direct to root. In terminal and run: su root ("enter" button)

- Now you are root, start the server. In terminal and run: cd /home/cod/server; ./startServer.sh("enter" button)

- Your machine should now be hosting a COD 5 server on linux through wine.

- Where are the linux bins?   ;-P