Update 21/05/2012:
I'm getting Punkbuster kicked out of the game by random game integrity violations. I'm trying to identify a solution, until then I figure what's wrong I can't recommend following this how-to.
If you're reading this and manage to fix the problem, please let me know in the comments.
Update 04/06/2012:
Installed ET on Ubuntu 12.04 x86_64 both the manual way and using the get-deb package and the result is the same: random PB kick on servers running Punkbuster.
Wolfenstein: Enemy Territory is a free multiplayer FPS that takes
place in the World World II pitting two teams (Allies and Axis) against
each other for victory.
In this post I'll detail the steps required to install and update Enemy Territory on 64-bit CentOS, namely:
1) Download the necessary files
2) Install i686 libraries
3) Install and update Enemy Territory
4) Install updated Punkbuster files
5) Generate an etkey
6) Fix sound problem
7) Setup widescreen resolution
8) Bonus section: troubleshooting
It should be noted that the steps
were performed on CentOS 6.2 x86_64 thus should translate to RHEL and Scientific Linux..
1) Download Enemy Territory 2.60 and 2.60b update
Download
et-linux-2.60.x86.run,
et-2.60b.zip update, updated Punkbuster and the
et-sdl-sound.gz sound fix:
$ wget -c http://ftp.freenet.de/pub/4players/hosted/et/official/et-linux-2.60.x86.run
$ wget -c ftp://ftp.idsoftware.com/idstuff/et/ET-2.60b.zip
$ wget -c http://etkey.org/et_linux.zip
$ wget -c http://nullkey.kapsi.fi/~stuff/et-sdl-sound/et-sdl-sound.gz
2) Install i686 libraries
Enemy Territory is a 32-bit application as such for a 64-bit CentOS a few i686 libraries are needed:
# yum install glibc.i686 libX11.i686 libXext.i686 libstdc++.i686 pulseaudio-libs.i686
Enemy Territory requires 3D acceleration which commonly implies NVIDIA or AMD/ATI graphic cards and associated proprietary drivers.
User of NVIDIA cards are required to install
nvidia-x11-drv-32bit which provides the compatibility 32-bit files for the 64-bit proprietary NVIDIA driver:
# yum install nvidia-x11-drv-32bit
I'd assume that users of AMD/ATI graphics card need to install
fglrx-x11-drv-32bit which provides similar files for the proprietary AMD driver, however I don't have an AMD/ATI card to verify.
3) Install and update Enemy Territory
Change to root, attribute
execute permissions to the installer, install Enemy Territory 2.60,
install the 2.60b update, create a profile and check the game's version:
$ su
# chmod +x et-linux-2.60.x86.run
#./et-linux-2.60.x86.run
Press
OK in the popup. Agree with the
License Agreement by pressing ENTER at the
License Agreement prompt and choosing
YES on
"Do you agree with the license?" popup that follows. Choose
NO at the
"Would you like to read the CHANGES file?" popup. You can always read the
CHANGES file latter on if you want. Choose the installation path and press
OK in the
Symlink Path popup. Install both
Enemy Territory and
Punkbuster.
Choose to install the startup menu entries. After this the game
installs. Don't choose to start the game immediately as we haven't
finished installing everything.
Install the 2.60b update:
# unzip et-2.60b.zip
# cp Enemy\ Territory\ 2.60b/linux/* /usr/local/games/enemy-territory/
# exit
Now start the game, create a player profile identifying profile name, connection speed and clicking on
Enable Punkbuster; exit the game. By doing so a
.etwolf directory will be created in your home directory which includes a folder containing PunkBuster.
Inside the game you can check the installed version by pulling the console down by pressing
~ and typing
version. It should output the following:
]\version
"version" is:"ET 2.60b linux-i386 May 8 2006" default:"ET 2.60b linux-i386 May 8 2006"
4) Install updated Punkbuster files
Remove old Punkbuster files, extract the last Punkbuster update and place it in the created profile:
$ rm -rf ~/.etwolf/etmain/pb
$ unzip et_linux.zip -d pb
$ cp -R pb ~./etwolf/etmain/
5) Generate an etkey
Point to
http://etkey.org/pages/etkey-home.php, press the
Get an ETKEY button, download the file and store it under
~./etwolf/etmain/.
6) Fix sound problem
The most dreadful any Linux Enemy Territory player can witness:
------- sound initialization -------
/dev/dsp: No such file or directory
Could not open /dev/dsp
------------------------------------
Luckily we can use the
SDL backend which Enemy Territory will use as audio device replacing
/dev/dsp and OSS.
Install
SDL, extract the
et-sdl-sound script, make it executable and accessible
to all and edit the et launcher to have Enemy Territory use SDL instead
of OSS:
# yum install SDL.i686
# gzip -d et-sdl-sound.gz
# chmod a+x et-sdl-sound
# chown root:root et-sdl-sound
# mv et-sdl-sound /usr/local/games/enemy-territory/
# vim /usr/local/games/enemy-territory/et
#!/bin/sh
# Needed to make symlinks/shortcuts work.
# the binaries must run with correct working directory
cd "/usr/local/games/enemy-territory/"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./et-sdl-sound "$@"
The
et-sdl-sound script needs to be edit so that PulseAudio is used has the SDL audio driver.
# vim /
usr/local/games/enemy-territory/et-sdl-sound
Replace
SDL_AUDIODRIVER="alsa"
with
SDL_AUDIODRIVER="pulse"
7) Setup widescreen resolution
If you have a widescreen monitor follow the instructions on my previous blog post
HowTo: Widescreen resolutions on Enemy Territory.
And we're done installing Enemy Territory!
Lately I've been playing at [fp].:Demolition_Centre as tangram"FreeBSD~ or tangram"GNU/Linux~. See you on the battlefield :D
8) Bonus section: troubleshooting
Error:
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
# yum install glibc.i686
Error:
./et.x86: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
# yum install libX11.i686
Error:
./et.x86: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
# yum install libXext.i686
Error:
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: dlopen libGL.so.1 failed: libGL.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem
# yum install nvidia-x11-drv-32bit
or
# yum install fglrx-x11-drv-32bit