<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hard-light.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nodens</id>
	<title>FreeSpace Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hard-light.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nodens"/>
	<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php/Special:Contributions/Nodens"/>
	<updated>2026-04-17T16:06:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.7</generator>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8933</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8933"/>
		<updated>2007-02-03T01:50:42Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Right. I did not find the stable tarball when I searched for it, though. Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway. However, the &amp;quot;unstable&amp;quot; branch is not that unstable from what I've seen so far. --[[User:Nodens|nodens]] 23:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
I tried to compile it several times today, but there were many uncompilable errors. Was fixed later today though --[[User:Moniter|Mars]] 02:05, 14 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Check [[http://www.hard-light.net/forums/index.php/topic,45032.0.html this thread]] for some more discussion about this page. Also, please, don't be shy and correct any wording / spelling / grammar / anything mistake you might find. English is not necessarily the native language of the contributors :) --[[User:Nodens|nodens]] 19:47, 2 February 2007 (CST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8932</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8932"/>
		<updated>2007-02-03T01:48:31Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Right. I did not find the stable tarball when I searched for it, though. Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway. However, the &amp;quot;unstable&amp;quot; branch is not that unstable from what I've seen so far. --[[User:Nodens|nodens]] 23:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
I tried to compile it several times today, but there were many uncompilable errors. Was fixed later today though --[[User:Moniter|Mars]] 02:05, 14 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Check this [[http://www.hard-light.net/forums/index.php/topic,45032.0.html|thread]] for some more discussion about this page. Also, please, don't be shy and correct any wording / spelling / grammar / anything mistake you might find. English is not necessarily the native language of the contributors :) --[[User:Nodens|nodens]] 19:47, 2 February 2007 (CST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8931</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=8931"/>
		<updated>2007-02-03T01:47:26Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Right. I did not find the stable tarball when I searched for it, though. Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway. However, the &amp;quot;unstable&amp;quot; branch is not that unstable from what I've seen so far. --[[User:Nodens|nodens]] 23:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
I tried to compile it several times today, but there were many uncompilable errors. Was fixed later today though --[[User:Moniter|Mars]] 02:05, 14 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
See [[http://www.hard-light.net/forums/index.php/topic,45032.0.html|this thread]] for some more discussion on this page. Also, please, don't be shy and correct any wording / spelling / grammar / anything mistake you might find. English is not necessarily the native language of the contributors :) --[[User:Nodens|nodens]] 19:47, 2 February 2007 (CST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8930</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8930"/>
		<updated>2007-02-03T01:43:04Z</updated>

		<summary type="html">&lt;p&gt;Nodens: wording / typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsibility.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Introduction :'''&lt;br /&gt;
&lt;br /&gt;
This page will guide you through compilation and installation of FS2_open, using the CVS code, along with the data files.&lt;br /&gt;
Please note that if you don't manage to build the CVS (or don't want to), binaries will be found on this thread (no 3.6.9 linux binary yet as of this writing, but they should arrive soon). You'll need probably need to read on anyway (how to get data files, starting the games, dealing with i18n issues...), but ignore what's related to building your own binary.&lt;br /&gt;
&lt;br /&gt;
If you don't want to use CVS, but can't find a suitable binary, you can download an almost current (3.6.9-RC8) source release here :&lt;br /&gt;
http://fs2source.warpcore.org/exes/linux/fs2_open-3.6.9-RC8.tar.bz2 &lt;br /&gt;
&lt;br /&gt;
Also, Turey wrote a cross-platform installer (in java), able to download all you need for running FS2_Open except the binary (retail files, MediaVP, movies...). It can be found here : [[http://www.hard-light.net/forums/index.php/topic,42854.0.html Freespace Open Installer]]. It's far more easier than extracting the data files from the retail CDs (see below).&lt;br /&gt;
// ''Linux binaries will be put into the Installer once taylor posts linux binaries 3.6.9 Final''&lt;br /&gt;
&lt;br /&gt;
There is even work in progress on a linux launcher that you may want to try : [[http://www.hard-light.net/forums/index.php/topic,44204.0.html Linux launcher]] (this is different from the upcoming new launcher which will be used in 3.7 fs2_open release) // ''The links in the thread are currently dead, but let's hope that will be resolved soon.''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. &lt;br /&gt;
Be aware that when you use CVS, you use the most up-to-date code : It may or may not be better than a release. It may be worse, less stable, or not even compile. This is work in progress.&lt;br /&gt;
&lt;br /&gt;
You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
'''Novell SuSE''' users install CVS via YaST.&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -Sy cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the necessary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis, libtheora and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev libtheora-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note : on other distributions, you'll need theora as well, so the information for Gentoo and SuSe below is outdated. if someone knows the exact package name, please edit !''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''Novell SuSE''' users just install the mentioned packages and the devel-packages via YaST. If this works don't read further.&lt;br /&gt;
SuSE maybe has some dependency problems with the game TORCS, i.e. its special version of OpenAL, so you have to make a choice. If you still want to run FS2 open, go on here http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Compile_Errors&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -S freealut libvorbis sdl&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html (or use Turey's installer, see above for a link)&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x /mnt/cdrom/data1.cab; done; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /tmp/fs2/ -g &amp;quot;Hud Config Files&amp;quot; -L -j x /mnt/cdrom/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From '''both''' the second and third CDs, get the vp files and the movies files (I don't think the the .mve file are really needed; you'll need the .avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&lt;br /&gt;
 ~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD; this is because the game was meant to be run with the CD in the drive. Don't worry, a copy of such a file from any of the 3 CDs will work.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ for file in `find /usr/local/games/fs2_open/`; do mv $file `echo $file | sed 's/\([A-Z]\)/\l\1/g'`; done&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&lt;br /&gt;
 ~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Simple Checkout Script ====&lt;br /&gt;
You can use this script to simplify your checkouts, don't forget to chmod +x it.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CVS=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot;&lt;br /&gt;
 MODULE=&amp;quot;fs2_open&amp;quot;&lt;br /&gt;
 BRANCH=&amp;quot;fs2_open_3_6_9&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ${CVS} co -r ${BRANCH} ${MODULE}&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's a lot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile-fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # MY_CFLAGS=&amp;quot;-march=athlon-xp -O2 -pipe -fomit-frame-pointer -falign-functions=64&amp;quot;&lt;br /&gt;
 # MY_CXXFLAGS=&amp;quot;${CFLAGS} -fvisibility-inlines-hidden&amp;quot;&lt;br /&gt;
 # MY_LDFLAGS=&amp;quot;-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -s&amp;quot;&lt;br /&gt;
 if [ -e ./${*} ]; then&lt;br /&gt;
 	cd ${*}&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 fi&lt;br /&gt;
You can add your options to the ./configure line. You need to give the script the fs2_open source directory, like this:&lt;br /&gt;
 $ ./compile-fs2_open fs2_open&lt;br /&gt;
This makes it easier to deal with multiple source directories.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
[http://www.hard-light.net/wiki/index.php/Command-Line_Reference See this] for more command line options.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Startup Script ====&lt;br /&gt;
This is nothing fancy, but it's all the command line options in a file.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #  Graphics&lt;br /&gt;
 CMDLINE=&amp;quot;-spec -env -glow -jpgtga -mipmap -2d_poof -missile_lighting&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ambient_factor 75 -spec_exp 11 -spec_point 0.6&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -spec_static 0.8 -spec_tube 0.4&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pcx32 -cell -nomotiondebris -noscalevid -rlm -clipdist&amp;quot;&lt;br /&gt;
 #  Game Speed&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -cache_bitmaps&amp;quot;&lt;br /&gt;
 #CMDLINE=$CMDLINE -img2dds -no_vsync&amp;quot;&lt;br /&gt;
 #  HUD&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -targetinfo -orbradar -ballistic_gauge -rearm_timer&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dualscanlines&amp;quot;&lt;br /&gt;
 #  Gameplay&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ship_choice_3d -3dwarp -warp_flash -fov 0.39&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -UseNewAI -tbp -wcsaga&amp;quot;&lt;br /&gt;
 #  Audio&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -snd_preload&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -nosound -nomusic&amp;quot;&lt;br /&gt;
 #  Multiplayer&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -standalone -startgame -closed -restricted&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -multilog -clientdamage -mpnoreturn&amp;quot;&lt;br /&gt;
 #  Troubleshooting&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -oldfire -nohtl -no_set_gamma -nomovies -noparseerrors&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -safeloading -query_speech -d3d_bad_tsys -novbo -noibx -loadallweps&amp;quot;&lt;br /&gt;
 #  Experimental&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -alpha_env&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -decals -ingame_join&amp;quot;&lt;br /&gt;
 #  Development Tools&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -fps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pos -window -timerbar -coords -pofspew -tablecrcs -missioncrcs&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dis_collisions -dis_weapons -output_sexps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -output_scripting -nograb -show_mem_usage -stats&amp;quot;&lt;br /&gt;
 #  Mod&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -mod mv368zeta&amp;quot;&lt;br /&gt;
 ./fs2_open_r $CMDLINE&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Novell SuSE and the dependencies ====&lt;br /&gt;
&lt;br /&gt;
If your SuSE gives you some errors like this, during the compile process, your OpenAL version is too old or corrupted.&lt;br /&gt;
 sound/ds.cpp: In function 'int ds_init(int, int, unsigned int, short unsigned int)':&lt;br /&gt;
 sound/ds.cpp:1790: error: invalid conversion from 'const char*' to 'const ALubyte*'&lt;br /&gt;
 sound/ds.cpp:1790: error:   initializing argument 1 of 'ALboolean alIsExtensionPresent(const ALubyte*)'&lt;br /&gt;
You have to remove all OpenAL-packages via YaST, you may also want to remove TORCS, too, it won't run anymore after this.&lt;br /&gt;
Unfortunately there is no repository with a newer version for this distro, yet, so you have to use a source-package for Fedora. You get it here http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/openal-0.0.9-0.6.20060204cvs.fc5.src.rpm&lt;br /&gt;
The version may change, so you better check this.&lt;br /&gt;
Now make sure, that TexInfo is installed. Then enter:&lt;br /&gt;
 $ rpmbuild --rebuild --target=i686 &amp;lt;name-of-your-package&amp;gt;.fc5.src.rpm&lt;br /&gt;
If it builds without errors, you will find an OpenAL*.rpm and an OpenAL*-devel.rpm in &amp;lt;tt&amp;gt;/usr/src/packages/RPMS/i686/&amp;lt;/tt&amp;gt;. Install both and go back to your fs_open directory again. Cause the environment has changed now, you better type:&lt;br /&gt;
 $ make clean&lt;br /&gt;
 $ ./configure [options]&lt;br /&gt;
 $ make&lt;br /&gt;
Then you're done.&lt;br /&gt;
&lt;br /&gt;
==== SDL: undefined reference to... ====&lt;br /&gt;
&lt;br /&gt;
This is a SDL installing issue, since it's trying to link against the static lib and not the dynamic one.&lt;br /&gt;
First check where &amp;lt;tt&amp;gt;/usr/lib/libSDL.so&amp;lt;/tt&amp;gt; is linked to, then search this very file.&lt;br /&gt;
 $ ls -l /usr/lib/libSDL.so&lt;br /&gt;
 lrwxrwxrwx  1 root root 28 2006-09-06 00:10 /usr/lib/libSDL.so -&amp;gt; /usr/lib/libSDL-1.2.so.0.7.1&lt;br /&gt;
 $ ls /usr/lib/ | grep libSDL-1.2.so.0.7&lt;br /&gt;
 libSDL-1.2.so.0.7.2&lt;br /&gt;
If they are not the same (like in this case), you just make a new link. Type as root:&lt;br /&gt;
 # ln -s /usr/lib/libSDL-1.2.so.0.7.2 /usr/lib/libSDL.so&lt;br /&gt;
Of course you must change some figures, so it matches on your system.&lt;br /&gt;
&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to &amp;amp;é&amp;quot;'(-è_çà  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple use ''~/bin/freespace2''. Make it executable with chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open dedicated X display ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last the display number,:0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch between display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
''xgame / xgame-gtk2 may be of use to achieve this as normal user, see http://xgame.tlhiv.org/ '' -- Lone_Wolf&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8928</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8928"/>
		<updated>2007-02-02T22:41:18Z</updated>

		<summary type="html">&lt;p&gt;Nodens: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Introduction :'''&lt;br /&gt;
&lt;br /&gt;
This page will guide you through compilation and installation of FS2_open, using the CVS code, along with the data files.&lt;br /&gt;
Please note that if you don't manage to build the CVS (or don't want to), binaries my be found on this thread (no 3.6.9 linux binary as of this writing). You'll need probably need to read on anyway (how to get data files, starting the games, dealing with i18n issues...), but ignore what's related to building your own binary.&lt;br /&gt;
&lt;br /&gt;
If you don't want to use CVS, but can't find a suitable binary, you can download an almost current (3.6.9-RC8) source release here :&lt;br /&gt;
http://fs2source.warpcore.org/exes/linux/fs2_open-3.6.9-RC8.tar.bz2 &lt;br /&gt;
&lt;br /&gt;
Also, Turey wrote a cross-platform installer (in java), able to download all you need for running FS2_Open except the binary (retail files, MediaVP, movies...). It can be found here : [[http://www.hard-light.net/forums/index.php/topic,42854.0.html|Freespace Open Installer]]. It's far more easier than extracting the data files from the retail CDs (see below).&lt;br /&gt;
&lt;br /&gt;
There is even work in progress on a linux launcher that you may want to try : [[http://www.hard-light.net/forums/index.php/topic,44204.0.html|Linux launcher]] (this is different from the upcoming new launcher which will be used in 3.7 fs2_open release) // ''The links in the thread are currently dead, but let's hope that will be resolved soon.''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. &lt;br /&gt;
Be aware that when you use CVS, you use the most up-to-date code : It may or may not be better than a release. It may be worse, less stable, or not even compile. This is work in progress.&lt;br /&gt;
&lt;br /&gt;
You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
'''Novell SuSE''' users install CVS via YaST.&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -Sy cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the necessary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis, libtheora and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev libtheora-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note : on other distributions, you'll need theora as well, so the information for Gentoo and SuSe below is outdated. if someone knows the exact package name, please edit !''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''Novell SuSE''' users just install the mentioned packages and the devel-packages via YaST. If this works don't read further.&lt;br /&gt;
SuSE maybe has some dependency problems with the game TORCS, i.e. its special version of OpenAL, so you have to make a choice. If you still want to run FS2 open, go on here http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Compile_Errors&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -S freealut libvorbis sdl&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html (or use Turey's installer, see above for a link)&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x /mnt/cdrom/data1.cab; done; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /tmp/fs2/ -g &amp;quot;Hud Config Files&amp;quot; -L -j x /mnt/cdrom/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From '''both''' the second and third CDs, get the vp files and the movies files (I don't think the the .mve file are really needed; you'll need the .avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&lt;br /&gt;
 ~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD; this is because the game was meant to be run with the CD in the drive. Don't worry, a copy of such a file from any of the 3 CDs will work.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ for file in `find /usr/local/games/fs2_open/`; do mv $file `echo $file | sed 's/\([A-Z]\)/\l\1/g'`; done&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&lt;br /&gt;
 ~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Simple Checkout Script ====&lt;br /&gt;
You can use this script to simplify your checkouts, don't forget to chmod +x it.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CVS=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot;&lt;br /&gt;
 MODULE=&amp;quot;fs2_open&amp;quot;&lt;br /&gt;
 BRANCH=&amp;quot;fs2_open_3_6_9&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ${CVS} co -r ${BRANCH} ${MODULE}&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's a lot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile-fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # MY_CFLAGS=&amp;quot;-march=athlon-xp -O2 -pipe -fomit-frame-pointer -falign-functions=64&amp;quot;&lt;br /&gt;
 # MY_CXXFLAGS=&amp;quot;${CFLAGS} -fvisibility-inlines-hidden&amp;quot;&lt;br /&gt;
 # MY_LDFLAGS=&amp;quot;-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -s&amp;quot;&lt;br /&gt;
 if [ -e ./${*} ]; then&lt;br /&gt;
 	cd ${*}&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 fi&lt;br /&gt;
You can add your options to the ./configure line. You need to give the script the fs2_open source directory, like this:&lt;br /&gt;
 $ ./compile-fs2_open fs2_open&lt;br /&gt;
This makes it easier to deal with multiple source directories.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
[http://www.hard-light.net/wiki/index.php/Command-Line_Reference See this] for more command line options.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Startup Script ====&lt;br /&gt;
This is nothing fancy, but it's all the command line options in a file.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #  Graphics&lt;br /&gt;
 CMDLINE=&amp;quot;-spec -env -glow -jpgtga -mipmap -2d_poof -missile_lighting&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ambient_factor 75 -spec_exp 11 -spec_point 0.6&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -spec_static 0.8 -spec_tube 0.4&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pcx32 -cell -nomotiondebris -noscalevid -rlm -clipdist&amp;quot;&lt;br /&gt;
 #  Game Speed&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -cache_bitmaps&amp;quot;&lt;br /&gt;
 #CMDLINE=$CMDLINE -img2dds -no_vsync&amp;quot;&lt;br /&gt;
 #  HUD&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -targetinfo -orbradar -ballistic_gauge -rearm_timer&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dualscanlines&amp;quot;&lt;br /&gt;
 #  Gameplay&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ship_choice_3d -3dwarp -warp_flash -fov 0.39&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -UseNewAI -tbp -wcsaga&amp;quot;&lt;br /&gt;
 #  Audio&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -snd_preload&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -nosound -nomusic&amp;quot;&lt;br /&gt;
 #  Multiplayer&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -standalone -startgame -closed -restricted&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -multilog -clientdamage -mpnoreturn&amp;quot;&lt;br /&gt;
 #  Troubleshooting&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -oldfire -nohtl -no_set_gamma -nomovies -noparseerrors&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -safeloading -query_speech -d3d_bad_tsys -novbo -noibx -loadallweps&amp;quot;&lt;br /&gt;
 #  Experimental&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -alpha_env&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -decals -ingame_join&amp;quot;&lt;br /&gt;
 #  Development Tools&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -fps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pos -window -timerbar -coords -pofspew -tablecrcs -missioncrcs&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dis_collisions -dis_weapons -output_sexps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -output_scripting -nograb -show_mem_usage -stats&amp;quot;&lt;br /&gt;
 #  Mod&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -mod mv368zeta&amp;quot;&lt;br /&gt;
 ./fs2_open_r $CMDLINE&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Novell SuSE and the dependencies ====&lt;br /&gt;
&lt;br /&gt;
If your SuSE gives you some errors like this, during the compile process, your OpenAL version is too old or corrupted.&lt;br /&gt;
 sound/ds.cpp: In function 'int ds_init(int, int, unsigned int, short unsigned int)':&lt;br /&gt;
 sound/ds.cpp:1790: error: invalid conversion from 'const char*' to 'const ALubyte*'&lt;br /&gt;
 sound/ds.cpp:1790: error:   initializing argument 1 of 'ALboolean alIsExtensionPresent(const ALubyte*)'&lt;br /&gt;
You have to remove all OpenAL-packages via YaST, you may also want to remove TORCS, too, it won't run anymore after this.&lt;br /&gt;
Unfortunately there is no repository with a newer version for this distro, yet, so you have to use a source-package for Fedora. You get it here http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/openal-0.0.9-0.6.20060204cvs.fc5.src.rpm&lt;br /&gt;
The version may change, so you better check this.&lt;br /&gt;
Now make sure, that TexInfo is installed. Then enter:&lt;br /&gt;
 $ rpmbuild --rebuild --target=i686 &amp;lt;name-of-your-package&amp;gt;.fc5.src.rpm&lt;br /&gt;
If it builds without errors, you will find an OpenAL*.rpm and an OpenAL*-devel.rpm in &amp;lt;tt&amp;gt;/usr/src/packages/RPMS/i686/&amp;lt;/tt&amp;gt;. Install both and go back to your fs_open directory again. Cause the environment has changed now, you better type:&lt;br /&gt;
 $ make clean&lt;br /&gt;
 $ ./configure [options]&lt;br /&gt;
 $ make&lt;br /&gt;
Then you're done.&lt;br /&gt;
&lt;br /&gt;
==== SDL: undefined reference to... ====&lt;br /&gt;
&lt;br /&gt;
This is a SDL installing issue, since it's trying to link against the static lib and not the dynamic one.&lt;br /&gt;
First check where &amp;lt;tt&amp;gt;/usr/lib/libSDL.so&amp;lt;/tt&amp;gt; is linked to, then search this very file.&lt;br /&gt;
 $ ls -l /usr/lib/libSDL.so&lt;br /&gt;
 lrwxrwxrwx  1 root root 28 2006-09-06 00:10 /usr/lib/libSDL.so -&amp;gt; /usr/lib/libSDL-1.2.so.0.7.1&lt;br /&gt;
 $ ls /usr/lib/ | grep libSDL-1.2.so.0.7&lt;br /&gt;
 libSDL-1.2.so.0.7.2&lt;br /&gt;
If they are not the same (like in this case), you just make a new link. Type as root:&lt;br /&gt;
 # ln -s /usr/lib/libSDL-1.2.so.0.7.2 /usr/lib/libSDL.so&lt;br /&gt;
Of course you must change some figures, so it matches on your system.&lt;br /&gt;
&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to &amp;amp;é&amp;quot;'(-è_çà  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple use ''~/bin/freespace2''. Make it executable with chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open dedicated X display ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last the display number,:0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch between display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
''xgame / xgame-gtk2 may be of use to achieve this as normal user, see http://xgame.tlhiv.org/ '' -- Lone_Wolf&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8927</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=8927"/>
		<updated>2007-02-02T22:09:36Z</updated>

		<summary type="html">&lt;p&gt;Nodens: Added informations about the cross-platform installer and other things that can make your life easier ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Introduction :'''&lt;br /&gt;
&lt;br /&gt;
This page will guide you through compilation and installation of FS2_open, using the CVS code, along with the data files.&lt;br /&gt;
Please note that if you don't manage to build the CVS (or don't want to), binaries my be found on this thread (no 3.6.9 linux binary as of this writing). You'll need probably need to read on anyway (how to get data files, starting the games, dealing with i18n issues...), but ignore what's related to building your own binary.&lt;br /&gt;
&lt;br /&gt;
If you don't want to use CVS, but can't find a suitable binary, you can download an almost current (3.6.9-RC8) source release here :&lt;br /&gt;
http://fs2source.warpcore.org/exes/linux/fs2_open-3.6.9-RC8.tar.bz2 &lt;br /&gt;
&lt;br /&gt;
Also, Turey wrote a cross-platform installer (in java), able to download all you need for running FS2_Open except the binary (retail files, MediaVP, movies...). It can be found here : [[http://www.hard-light.net/forums/index.php/topic,42854.0.html|Freespace Open Installer]]. It's far more easier than extracting the data files from the retail windows installer (see below).&lt;br /&gt;
&lt;br /&gt;
There is even work in progress on a linux launcher that you may want to try : [[http://www.hard-light.net/forums/index.php/topic,44204.0.html|Linux launcher]] (this is different from the upcoming new launcher which will be used in 3.7 fs2_open release) // ''The links in the thread are currently dead, but let's hope that will be resolved soon.''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. &lt;br /&gt;
Be aware that when you use CVS, you use the most up-to-date code : It may or may not be better than a release. It may be worse, less stable, or not even compile. This is work in progress.&lt;br /&gt;
&lt;br /&gt;
You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
'''Novell SuSE''' users install CVS via YaST.&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -Sy cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the necessary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis, libtheora and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev libtheora-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Note : on other distributions, you'll need theora as well, so the information for Gentoo and SuSe below is outdated. if someone knows the exact package name, please edit !''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''Novell SuSE''' users just install the mentioned packages and the devel-packages via YaST. If this works don't read further.&lt;br /&gt;
SuSE maybe has some dependency problems with the game TORCS, i.e. its special version of OpenAL, so you have to make a choice. If you still want to run FS2 open, go on here http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Compile_Errors&lt;br /&gt;
&lt;br /&gt;
'''Archlinux''' users want to:&lt;br /&gt;
 $ pacman -S freealut libvorbis sdl&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html (or use Turey's installer, see above for a link)&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x /mnt/cdrom/data1.cab; done; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /tmp/fs2/ -g &amp;quot;Hud Config Files&amp;quot; -L -j x /mnt/cdrom/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From '''both''' the second and third CDs, get the vp files and the movies files (I don't think the the .mve file are really needed; you'll need the .avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&lt;br /&gt;
 ~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD; this is because the game was meant to be run with the CD in the drive. Don't worry, a copy of such a file from any of the 3 CDs will work.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ for file in `find /usr/local/games/fs2_open/`; do mv $file `echo $file | sed 's/\([A-Z]\)/\l\1/g'`; done&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&lt;br /&gt;
 ~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Simple Checkout Script ====&lt;br /&gt;
You can use this script to simplify your checkouts, don't forget to chmod +x it.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 CVS=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot;&lt;br /&gt;
 MODULE=&amp;quot;fs2_open&amp;quot;&lt;br /&gt;
 BRANCH=&amp;quot;fs2_open_3_6_9&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ${CVS} co -r ${BRANCH} ${MODULE}&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's a lot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile-fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # MY_CFLAGS=&amp;quot;-march=athlon-xp -O2 -pipe -fomit-frame-pointer -falign-functions=64&amp;quot;&lt;br /&gt;
 # MY_CXXFLAGS=&amp;quot;${CFLAGS} -fvisibility-inlines-hidden&amp;quot;&lt;br /&gt;
 # MY_LDFLAGS=&amp;quot;-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -s&amp;quot;&lt;br /&gt;
 if [ -e ./${*} ]; then&lt;br /&gt;
 	cd ${*}&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; CXXFLAGS=&amp;quot;${MY_CFLAGS}&amp;quot; LDFLAGS=&amp;quot;${MY_LDFLAGS}&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 fi&lt;br /&gt;
You can add your options to the ./configure line. You need to give the script the fs2_open source directory, like this:&lt;br /&gt;
 $ ./compile-fs2_open fs2_open&lt;br /&gt;
This makes it easier to deal with multiple source directories.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
[http://www.hard-light.net/wiki/index.php/Command-Line_Reference See this] for more command line options.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Startup Script ====&lt;br /&gt;
This is nothing fancy, but it's all the command line options in a file.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #  Graphics&lt;br /&gt;
 CMDLINE=&amp;quot;-spec -env -glow -jpgtga -mipmap -2d_poof -missile_lighting&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ambient_factor 75 -spec_exp 11 -spec_point 0.6&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -spec_static 0.8 -spec_tube 0.4&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pcx32 -cell -nomotiondebris -noscalevid -rlm -clipdist&amp;quot;&lt;br /&gt;
 #  Game Speed&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -cache_bitmaps&amp;quot;&lt;br /&gt;
 #CMDLINE=$CMDLINE -img2dds -no_vsync&amp;quot;&lt;br /&gt;
 #  HUD&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -targetinfo -orbradar -ballistic_gauge -rearm_timer&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dualscanlines&amp;quot;&lt;br /&gt;
 #  Gameplay&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ship_choice_3d -3dwarp -warp_flash -fov 0.39&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -UseNewAI -tbp -wcsaga&amp;quot;&lt;br /&gt;
 #  Audio&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -snd_preload&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -nosound -nomusic&amp;quot;&lt;br /&gt;
 #  Multiplayer&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -standalone -startgame -closed -restricted&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -multilog -clientdamage -mpnoreturn&amp;quot;&lt;br /&gt;
 #  Troubleshooting&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -oldfire -nohtl -no_set_gamma -nomovies -noparseerrors&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -safeloading -query_speech -d3d_bad_tsys -novbo -noibx -loadallweps&amp;quot;&lt;br /&gt;
 #  Experimental&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -alpha_env&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -decals -ingame_join&amp;quot;&lt;br /&gt;
 #  Development Tools&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -fps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pos -window -timerbar -coords -pofspew -tablecrcs -missioncrcs&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dis_collisions -dis_weapons -output_sexps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -output_scripting -nograb -show_mem_usage -stats&amp;quot;&lt;br /&gt;
 #  Mod&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -mod mv368zeta&amp;quot;&lt;br /&gt;
 ./fs2_open_r $CMDLINE&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Novell SuSE and the dependencies ====&lt;br /&gt;
&lt;br /&gt;
If your SuSE gives you some errors like this, during the compile process, your OpenAL version is too old or corrupted.&lt;br /&gt;
 sound/ds.cpp: In function 'int ds_init(int, int, unsigned int, short unsigned int)':&lt;br /&gt;
 sound/ds.cpp:1790: error: invalid conversion from 'const char*' to 'const ALubyte*'&lt;br /&gt;
 sound/ds.cpp:1790: error:   initializing argument 1 of 'ALboolean alIsExtensionPresent(const ALubyte*)'&lt;br /&gt;
You have to remove all OpenAL-packages via YaST, you may also want to remove TORCS, too, it won't run anymore after this.&lt;br /&gt;
Unfortunately there is no repository with a newer version for this distro, yet, so you have to use a source-package for Fedora. You get it here http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/openal-0.0.9-0.6.20060204cvs.fc5.src.rpm&lt;br /&gt;
The version may change, so you better check this.&lt;br /&gt;
Now make sure, that TexInfo is installed. Then enter:&lt;br /&gt;
 $ rpmbuild --rebuild --target=i686 &amp;lt;name-of-your-package&amp;gt;.fc5.src.rpm&lt;br /&gt;
If it builds without errors, you will find an OpenAL*.rpm and an OpenAL*-devel.rpm in &amp;lt;tt&amp;gt;/usr/src/packages/RPMS/i686/&amp;lt;/tt&amp;gt;. Install both and go back to your fs_open directory again. Cause the environment has changed now, you better type:&lt;br /&gt;
 $ make clean&lt;br /&gt;
 $ ./configure [options]&lt;br /&gt;
 $ make&lt;br /&gt;
Then you're done.&lt;br /&gt;
&lt;br /&gt;
==== SDL: undefined reference to... ====&lt;br /&gt;
&lt;br /&gt;
This is a SDL installing issue, since it's trying to link against the static lib and not the dynamic one.&lt;br /&gt;
First check where &amp;lt;tt&amp;gt;/usr/lib/libSDL.so&amp;lt;/tt&amp;gt; is linked to, then search this very file.&lt;br /&gt;
 $ ls -l /usr/lib/libSDL.so&lt;br /&gt;
 lrwxrwxrwx  1 root root 28 2006-09-06 00:10 /usr/lib/libSDL.so -&amp;gt; /usr/lib/libSDL-1.2.so.0.7.1&lt;br /&gt;
 $ ls /usr/lib/ | grep libSDL-1.2.so.0.7&lt;br /&gt;
 libSDL-1.2.so.0.7.2&lt;br /&gt;
If they are not the same (like in this case), you just make a new link. Type as root:&lt;br /&gt;
 # ln -s /usr/lib/libSDL-1.2.so.0.7.2 /usr/lib/libSDL.so&lt;br /&gt;
Of course you must change some figures, so it matches on your system.&lt;br /&gt;
&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to &amp;amp;é&amp;quot;'(-è_çà  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple use ''~/bin/freespace2''. Make it executable with chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open dedicated X display ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last the display number,:0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch between display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
''xgame / xgame-gtk2 may be of use to achieve this as normal user, see http://xgame.tlhiv.org/ '' -- Lone_Wolf&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7509</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7509"/>
		<updated>2006-09-13T22:23:02Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* I18n and Key mapping problems */  typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
'''Novell SuSE''' users install CVS via YaST.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''Novell SuSE''' users just install the mentioned packages and the devel-packages via YaST. If this works don't read further.&lt;br /&gt;
SuSE maybe has some dependency problems with the game TORCS, i.e. its special version of OpenAL, so you have to make a choice. If you still want to run FS2 open, go on here http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Compile_Errors&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
[http://www.hard-light.net/wiki/index.php/Command-Line_Reference See this] for more command line options.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Startup Script ====&lt;br /&gt;
This is nothing fancy, but it's all the command line options in a file.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #  Graphics&lt;br /&gt;
 CMDLINE=&amp;quot;-spec -env -glow -jpgtga -mipmap -2d_poof -missile_lighting&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ambient_factor 75 -spec_exp 11 -spec_point 0.6&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -spec_static 0.8 -spec_tube 0.4&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pcx32 -cell -nomotiondebris -noscalevid -rlm -clipdist&amp;quot;&lt;br /&gt;
 #  Game Speed&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -cache_bitmaps&amp;quot;&lt;br /&gt;
 #CMDLINE=$CMDLINE -img2dds -no_vsync&amp;quot;&lt;br /&gt;
 #  HUD&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -targetinfo -orbradar -ballistic_gauge -rearm_timer&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dualscanlines&amp;quot;&lt;br /&gt;
 #  Gameplay&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ship_choice_3d -3dwarp -warp_flash -fov 0.39&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -UseNewAI -tbp -wcsaga&amp;quot;&lt;br /&gt;
 #  Audio&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -snd_preload&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -nosound -nomusic&amp;quot;&lt;br /&gt;
 #  Multiplayer&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -standalone -startgame -closed -restricted&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -multilog -clientdamage -mpnoreturn&amp;quot;&lt;br /&gt;
 #  Troubleshooting&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -oldfire -nohtl -no_set_gamma -nomovies -noparseerrors&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -safeloading -query_speech -d3d_bad_tsys -novbo -noibx -loadallweps&amp;quot;&lt;br /&gt;
 #  Experimental&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -alpha_env&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -decals -ingame_join&amp;quot;&lt;br /&gt;
 #  Development Tools&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -fps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pos -window -timerbar -coords -pofspew -tablecrcs -missioncrcs&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dis_collisions -dis_weapons -output_sexps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -output_scripting -nograb -show_mem_usage -stats&amp;quot;&lt;br /&gt;
 #  Mod&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -mod mv368zeta&amp;quot;&lt;br /&gt;
 ./fs2_open_r $CMDLINE&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Novell SuSE and the dependencies ====&lt;br /&gt;
&lt;br /&gt;
If your SuSE gives you some errors like this, during the compile process, your OpenAL version is too old or corrupted.&lt;br /&gt;
 sound/ds.cpp: In function 'int ds_init(int, int, unsigned int, short unsigned int)':&lt;br /&gt;
 sound/ds.cpp:1790: error: invalid conversion from 'const char*' to 'const ALubyte*'&lt;br /&gt;
 sound/ds.cpp:1790: error:   initializing argument 1 of 'ALboolean alIsExtensionPresent(const ALubyte*)'&lt;br /&gt;
You have to remove all OpenAL-packages via YaST, you may also want to remove TORCS, too, it won't run anymore after this.&lt;br /&gt;
Unfortunately there is no repository with a newer version for this distro, yet, so you have to use a source-package for Fedora. You get it here http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/openal-0.0.9-0.6.20060204cvs.fc5.src.rpm&lt;br /&gt;
The version may change, so you better check this.&lt;br /&gt;
Now make sure, that TexInfo is installed. Then enter:&lt;br /&gt;
 $ rpmbuild --rebuild --target=i686 &amp;lt;name-of-your-package&amp;gt;.fc5.src.rpm&lt;br /&gt;
If it builds without errors, you will find an OpenAL*.rpm and an OpenAL*-devel.rpm in &amp;lt;tt&amp;gt;/usr/src/packages/RPMS/i686/&amp;lt;/tt&amp;gt;. Install both and go back to your fs_open directory again. Cause the environment has changed now, you better type:&lt;br /&gt;
 $ make clean&lt;br /&gt;
 $ ./configure [options]&lt;br /&gt;
 $ make&lt;br /&gt;
Then you're done.&lt;br /&gt;
&lt;br /&gt;
==== SDL: undefined reference to... ====&lt;br /&gt;
&lt;br /&gt;
This is a SDL installing issue, since it's trying to link against the static lib and not the dynamic one.&lt;br /&gt;
First check where &amp;lt;tt&amp;gt;/usr/lib/libSDL.so&amp;lt;/tt&amp;gt; is linked to, then search this very file.&lt;br /&gt;
 $ ls -l /usr/lib/libSDL.so&lt;br /&gt;
 lrwxrwxrwx  1 root root 28 2006-09-06 00:10 /usr/lib/libSDL.so -&amp;gt; /usr/lib/libSDL-1.2.so.0.7.1&lt;br /&gt;
 $ ls /usr/lib/ | grep libSDL-1.2.so.0.7&lt;br /&gt;
 libSDL-1.2.so.0.7.2&lt;br /&gt;
If they are not the same (like in this case), you just make a new link. Type as root:&lt;br /&gt;
 # ln -s /usr/lib/libSDL-1.2.so.0.7.2 /usr/lib/libSDL.so&lt;br /&gt;
Of course you must change some figures, so it matches on your system.&lt;br /&gt;
&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to &amp;amp;é&amp;quot;'(-è_çà  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple use ''~/bin/freespace2''. Make it executable with chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last the display number,:0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch between display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7508</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7508"/>
		<updated>2006-09-13T22:21:28Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* I18n and Key mapping problems */  typo and charset problems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
'''Novell SuSE''' users install CVS via YaST.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''Novell SuSE''' users just install the mentioned packages and the devel-packages via YaST. If this works don't read further.&lt;br /&gt;
SuSE maybe has some dependency problems with the game TORCS, i.e. its special version of OpenAL, so you have to make a choice. If you still want to run FS2 open, go on here http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Compile_Errors&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
[http://www.hard-light.net/wiki/index.php/Command-Line_Reference See this] for more command line options.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Startup Script ====&lt;br /&gt;
This is nothing fancy, but it's all the command line options in a file.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #  Graphics&lt;br /&gt;
 CMDLINE=&amp;quot;-spec -env -glow -jpgtga -mipmap -2d_poof -missile_lighting&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ambient_factor 75 -spec_exp 11 -spec_point 0.6&amp;quot;&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -spec_static 0.8 -spec_tube 0.4&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pcx32 -cell -nomotiondebris -noscalevid -rlm -clipdist&amp;quot;&lt;br /&gt;
 #  Game Speed&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -cache_bitmaps&amp;quot;&lt;br /&gt;
 #CMDLINE=$CMDLINE -img2dds -no_vsync&amp;quot;&lt;br /&gt;
 #  HUD&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -targetinfo -orbradar -ballistic_gauge -rearm_timer&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dualscanlines&amp;quot;&lt;br /&gt;
 #  Gameplay&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -ship_choice_3d -3dwarp -warp_flash -fov 0.39&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -UseNewAI -tbp -wcsaga&amp;quot;&lt;br /&gt;
 #  Audio&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -snd_preload&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -nosound -nomusic&amp;quot;&lt;br /&gt;
 #  Multiplayer&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -standalone -startgame -closed -restricted&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -multilog -clientdamage -mpnoreturn&amp;quot;&lt;br /&gt;
 #  Troubleshooting&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -oldfire -nohtl -no_set_gamma -nomovies -noparseerrors&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -safeloading -query_speech -d3d_bad_tsys -novbo -noibx -loadallweps&amp;quot;&lt;br /&gt;
 #  Experimental&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -alpha_env&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -decals -ingame_join&amp;quot;&lt;br /&gt;
 #  Development Tools&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -fps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -pos -window -timerbar -coords -pofspew -tablecrcs -missioncrcs&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -dis_collisions -dis_weapons -output_sexps&amp;quot;&lt;br /&gt;
 #CMDLINE=&amp;quot;$CMDLINE -output_scripting -nograb -show_mem_usage -stats&amp;quot;&lt;br /&gt;
 #  Mod&lt;br /&gt;
 CMDLINE=&amp;quot;$CMDLINE -mod mv368zeta&amp;quot;&lt;br /&gt;
 ./fs2_open_r $CMDLINE&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Novell SuSE and the dependencies ====&lt;br /&gt;
&lt;br /&gt;
If your SuSE gives you some errors like this, during the compile process, your OpenAL version is too old or corrupted.&lt;br /&gt;
 sound/ds.cpp: In function 'int ds_init(int, int, unsigned int, short unsigned int)':&lt;br /&gt;
 sound/ds.cpp:1790: error: invalid conversion from 'const char*' to 'const ALubyte*'&lt;br /&gt;
 sound/ds.cpp:1790: error:   initializing argument 1 of 'ALboolean alIsExtensionPresent(const ALubyte*)'&lt;br /&gt;
You have to remove all OpenAL-packages via YaST, you may also want to remove TORCS, too, it won't run anymore after this.&lt;br /&gt;
Unfortunately there is no repository with a newer version for this distro, yet, so you have to use a source-package for Fedora. You get it here http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/openal-0.0.9-0.6.20060204cvs.fc5.src.rpm&lt;br /&gt;
The version may change, so you better check this.&lt;br /&gt;
Now make sure, that TexInfo is installed. Then enter:&lt;br /&gt;
 $ rpmbuild --rebuild --target=i686 &amp;lt;name-of-your-package&amp;gt;.fc5.src.rpm&lt;br /&gt;
If it builds without errors, you will find an OpenAL*.rpm and an OpenAL*-devel.rpm in &amp;lt;tt&amp;gt;/usr/src/packages/RPMS/i686/&amp;lt;/tt&amp;gt;. Install both and go back to your fs_open directory again. Cause the environment has changed now, you better type:&lt;br /&gt;
 $ make clean&lt;br /&gt;
 $ ./configure [options]&lt;br /&gt;
 $ make&lt;br /&gt;
Then you're done.&lt;br /&gt;
&lt;br /&gt;
==== SDL: undefined reference to... ====&lt;br /&gt;
&lt;br /&gt;
This is a SDL installing issue, since it's trying to link against the static lib and not the dynamic one.&lt;br /&gt;
First check where &amp;lt;tt&amp;gt;/usr/lib/libSDL.so&amp;lt;/tt&amp;gt; is linked to, then search this very file.&lt;br /&gt;
 $ ls -l /usr/lib/libSDL.so&lt;br /&gt;
 lrwxrwxrwx  1 root root 28 2006-09-06 00:10 /usr/lib/libSDL.so -&amp;gt; /usr/lib/libSDL-1.2.so.0.7.1&lt;br /&gt;
 $ ls /usr/lib/ | grep libSDL-1.2.so.0.7&lt;br /&gt;
 libSDL-1.2.so.0.7.2&lt;br /&gt;
If they are not the same (like in this case), you just make a new link. Type as root:&lt;br /&gt;
 # ln -s /usr/lib/libSDL-1.2.so.0.7.2 /usr/lib/libSDL.so&lt;br /&gt;
Of course you must change some figures, so it matches on your system.&lt;br /&gt;
&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to &amp;amp;é&amp;quot;'(-è_çà  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last the display number,:0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch between display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7507</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7507"/>
		<updated>2006-09-13T22:15:42Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Right. I did not find the stable tarball when I searched for it, though. Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway. However, the &amp;quot;unstable&amp;quot; branch is not that unstable from what I've seen so far. --[[User:Nodens|nodens]] 23:13, 13 September 2006 (BST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7506</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7506"/>
		<updated>2006-09-13T22:13:04Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
&lt;br /&gt;
Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway. --[[User:Nodens|nodens]] 23:13, 13 September 2006 (BST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7505</id>
		<title>Talk:Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Talk:Guide_to_FS_Open_on_Linux&amp;diff=7505"/>
		<updated>2006-09-13T22:12:31Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The correct title of this article is fs2_open on Linux. The initial letter is capitalized and an _ is substituted or omitted due to the Wiki's technical restrictions.&lt;br /&gt;
&lt;br /&gt;
== CVS Checkout ==&lt;br /&gt;
&lt;br /&gt;
Should we really be pointing newbs (like me) to the unstable branch? --[[User:Moniter|Mars]] 21:13, 13 September 2006 (BST)&lt;br /&gt;
Maybe we could add a part about how to get the stable source. The compilation stuff stay the same, anyway.&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Getting_FreeSpace&amp;diff=7459</id>
		<title>Getting FreeSpace</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Getting_FreeSpace&amp;diff=7459"/>
		<updated>2006-09-08T20:01:13Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Get it from another source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several different ways of getting Freespace.&lt;br /&gt;
&lt;br /&gt;
== Buy it ==&lt;br /&gt;
Of course, there are still a few copies of Freespace 2 floating around, up for sale on eBay, or maybe lying in the bargain bin at your local computer store - although the latter's pretty doubtful. Freespace 2 has not been mass-produced in the States for several years, so checking places that sell used software is your only recourse. Freespace, of course, has been out-of-print (so to speak) for even longer.&lt;br /&gt;
&lt;br /&gt;
== Get it from a friend ==&lt;br /&gt;
&lt;br /&gt;
Oddly enough, Freespace 2 actually has a clause in the license agreement that states that it's legal to give a copy of Freespace 2 to a friend - as long as it's for noncommercial use. So, be nice to anyone who has it, and maybe they'll burn it for you.&lt;br /&gt;
&lt;br /&gt;
== Get it from HOTU ==&lt;br /&gt;
&lt;br /&gt;
HOTU also has Freespace 2 [http://www.the-underdogs.info/game.php?id=4150 listed] in their downloads. Although this download went down for a brief time in the past, it is one of the most reliable ways of getting Freespace 2 over the internet. Unfortunately, the version included with HOTU is stripped-down. Fortunately, it is possible to correct this. By grabbing the missing VP files from a source such as [http://dynamic.gamespy.com/~freespace/forums/showthread.php?s=&amp;amp;threadid=16047 Fractux's FTP], and deleting or renaming the original &amp;quot;data&amp;quot; directory of the HOTU download, you can bring Freespace 2 back to its fully-featured potential.-&lt;br /&gt;
&lt;br /&gt;
As of January 30th, 2006 &amp;quot;The game is already updated to v1.2 so there is no need to run the update.&amp;quot; according to the readme.txt included with the HOTU version.&lt;br /&gt;
&lt;br /&gt;
== Freespace Zone ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.freespacezone.com Freespace Zone] has .bin type images of all three CDs of Freespace 2 and the single CD of original Freespace, archived in the RAR format. Unfortunately the .cue files are not included. There's a freeware program called &amp;quot;CD Mage&amp;quot; that can automatically create the .cue files for you. (You'l have to search for it as its site is mirrored all over the web on free hosts, thus the site linked today may not be there tomorrow.) The Freespace Zone does not mention that the Freespace 2 image files they have are MODE 2 with a block size of 2352.&lt;br /&gt;
&lt;br /&gt;
If you want to just use notepad or other text editor to make .cue files, here's the info. Just copy and paste each into an empty text file and save at disc1.cue, disc2.cue and disc3.cue, placing each in the same folder with its matching .bin file.&lt;br /&gt;
&lt;br /&gt;
 FILE &amp;quot;disc1.bin&amp;quot; BINARY&lt;br /&gt;
   TRACK 01 MODE2/2352&lt;br /&gt;
     INDEX 01 00:00:00&lt;br /&gt;
&lt;br /&gt;
 FILE &amp;quot;disc2.bin&amp;quot; BINARY&lt;br /&gt;
   TRACK 01 MODE2/2352&lt;br /&gt;
     INDEX 01 00:00:00&lt;br /&gt;
&lt;br /&gt;
 FILE &amp;quot;disc3.bin&amp;quot; BINARY&lt;br /&gt;
   TRACK 01 MODE2/2352&lt;br /&gt;
     INDEX 01 00:00:00&lt;br /&gt;
&lt;br /&gt;
== BitTorrent ==&lt;br /&gt;
&lt;br /&gt;
Freespace 2 is soon going to be made available via HLP's BitTorrent tracker. See the [[BitTorrent(Main)|main BitTorrent article]] for more information about this method of distribution.&lt;br /&gt;
&lt;br /&gt;
== Get it from another source ==&lt;br /&gt;
&lt;br /&gt;
There are other sources out there, that may have ISOs of the CDs, the VPs, etc.&lt;br /&gt;
You may find some info on this thread of the HLP forums : http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7320</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7320"/>
		<updated>2006-08-21T20:26:49Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* I18n and Key mapping problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
 &lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
 &lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7319</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=7319"/>
		<updated>2006-08-21T20:25:31Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* I18n and Key mapping problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
 # prepare to restore xmodmap on crash or exit&lt;br /&gt;
 trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6579</id>
		<title>User:Nodens</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6579"/>
		<updated>2006-07-02T14:49:28Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ok, let's make it short :&lt;br /&gt;
&lt;br /&gt;
'''Interests''' : operating systems (unices prefered), networks, litterature (mostly sci-fi and fantasy, but classics, philosophy and others are nice too)&lt;br /&gt;
&lt;br /&gt;
'''Freespace''' : I like a good dogfight, but I'm not really an hard-core gamer.&lt;br /&gt;
&lt;br /&gt;
'''Contributions''' : you'll probably won't see me a lot in the forums... Most of my contributions to the fs2_open effort are on the [[fs2_open on Linux]] page.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nodens|nodens]] 15:48, 2 July 2006 (BST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6578</id>
		<title>User:Nodens</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6578"/>
		<updated>2006-07-02T14:48:55Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ok, let's make it short :&lt;br /&gt;
&lt;br /&gt;
Interests : operating systems (unices prefered), networks, litterature (mostly sci-fi and fantasy, but classics, philosophy and others are nice too)&lt;br /&gt;
&lt;br /&gt;
Freespace : I like a good dogfight, but I'm not really an hard-core gamer&lt;br /&gt;
&lt;br /&gt;
Contributions : you'll probably won't see me a lot in the forums... Most of my contributions to the fs2_open effort are on the [[fs2_open on Linux]] page.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nodens|nodens]] 15:48, 2 July 2006 (BST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6577</id>
		<title>User:Nodens</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=User:Nodens&amp;diff=6577"/>
		<updated>2006-07-02T14:48:15Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ok, let's make it short :&lt;br /&gt;
&lt;br /&gt;
Interests : operating systems (unices prefered), networks, litterature (mostly sci-fi and fantasy, but classics, philosophy and such are nice too)&lt;br /&gt;
&lt;br /&gt;
Freespace : I like a good dogfight, but I'm not really an hard-core gamer&lt;br /&gt;
&lt;br /&gt;
Contributions : you'll probably won't see me a lot in the forums... Most of my contributions to the fs2_open effort are on the [[fs2_open on Linux]] page.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nodens|nodens]] 15:48, 2 July 2006 (BST)&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6543</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6543"/>
		<updated>2006-07-01T12:35:36Z</updated>

		<summary type="html">&lt;p&gt;Nodens: well, this page belong to the SCP category, right ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Project]]&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6542</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6542"/>
		<updated>2006-07-01T12:27:41Z</updated>

		<summary type="html">&lt;p&gt;Nodens: Even better with proper punctuation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : Again, please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6541</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6541"/>
		<updated>2006-07-01T12:26:51Z</updated>

		<summary type="html">&lt;p&gt;Nodens: Well, no need to say the same thing twice.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This tutorial assumes some fundamental command line knowledge.&amp;lt;BR&amp;gt;''&lt;br /&gt;
''As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : please double check the commands you run as root. A single typo could destroy your data. 'Remember what is said on the top of the page ? if not, go re-read it''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6521</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6521"/>
		<updated>2006-06-28T21:49:35Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Preparing directories */  - wording.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Warning : please double check the commands you run as root. A single typo could destroy your data. As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6520</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6520"/>
		<updated>2006-06-28T21:48:54Z</updated>

		<summary type="html">&lt;p&gt;Nodens: forgot to add the actual warning. It's late here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands if you use a global directory like the one in this example.&lt;br /&gt;
&lt;br /&gt;
''Beware : please double check the commands you run as root. A single typo could destroy your data. As a rule of thumb, do not copy/paste commands without understanding them, especially as root. With great power comes great responsability.''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6519</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6519"/>
		<updated>2006-06-28T21:44:44Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Preparing directories */  - warn about the root / sudo thing. better safe than sorry ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory. You'll probably need to be root or use sudo for most of the following commands.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6518</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6518"/>
		<updated>2006-06-28T21:43:09Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */  - wording again&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is a pretty sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6517</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6517"/>
		<updated>2006-06-28T21:42:20Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* CVS Checkout */  - better wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you have write permissions on your current working directory. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6516</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6516"/>
		<updated>2006-06-28T21:39:20Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Extracting files */  - wiki syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6515</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6515"/>
		<updated>2006-06-28T21:37:56Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Extracting files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6514</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6514"/>
		<updated>2006-06-28T21:36:34Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and to copy them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6513</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6513"/>
		<updated>2006-06-28T21:33:29Z</updated>

		<summary type="html">&lt;p&gt;Nodens: my english is soooo bad.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open. You can also find a more elaborated script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors and common problems ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6512</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6512"/>
		<updated>2006-06-28T21:31:00Z</updated>

		<summary type="html">&lt;p&gt;Nodens: note about the other startup script (people may want a better script but not having i18n concern)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
''Note : You can find a more elaborated startup script example below in the i18n section''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6511</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6511"/>
		<updated>2006-06-28T21:27:28Z</updated>

		<summary type="html">&lt;p&gt;Nodens: sentences are more easily understood with *all* the words ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as root with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6510</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6510"/>
		<updated>2006-06-28T21:26:26Z</updated>

		<summary type="html">&lt;p&gt;Nodens: use sudo and drop priviliges ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;br /&gt;
&lt;br /&gt;
''A solution might be running xinit as with sudo, and drop the root privileges in the startup script... Didn't tried, though.'' -- nodens&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6509</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=6509"/>
		<updated>2006-06-28T21:22:34Z</updated>

		<summary type="html">&lt;p&gt;Nodens: slightly improved startup script so that the xmodmap is restored on crash, error or interrupt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 $ apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 $ emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
 ~ $ for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&lt;br /&gt;
 ~ $ unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &amp;lt;tt&amp;gt;~ $ find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 $ cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 $ cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. In the directory you ran the CVS command from, a new directory has appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 $ ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 $ ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 $ ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 $ make&lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
Open up ~/.fs2_open/fs2_open.ini with the text editor of your choice (vi, EMACS, kwrite, gedit).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
To set fs2_open to use the highest setting possible on retail Freespace 2, change the VideocardFs2open to:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
You can set this to pretty much anything you want.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 $ chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 $ ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
''If this is the actual solution to this problem remains to be seen.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So far, only people using Debian stable are affected by this.''&amp;lt;br&amp;gt;&lt;br /&gt;
''So we need adventurus Debian users to confirm.''&amp;lt;br&amp;gt;&lt;br /&gt;
''I can confirm that the APT-Pinning works, can not confirm compile thou. -- ni1s''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 $ apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 $ apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 $ chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
''Me, being a Swede, need to use this aswell, especially for the grave key(`), but I also want to use a second X display. There is a way to tell xmodmap to use the new set of keys on the second X display, and thus eliminating the need for a temp. keymap table as it dies with the second display when exiting fs2_open, never touching the keymap table on display 0. We should dig that info up and write a super-start script. --ni1s''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~ $ xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
 &lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
 &lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
# prepare to restore xmodmap on crash or exit&lt;br /&gt;
trap &amp;quot;xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&amp;quot; 0 2 3 4 9 11 15&lt;br /&gt;
&lt;br /&gt;
# launch fs2&lt;br /&gt;
$FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot; ($?)&amp;quot; &lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== fs2_open freezes X ===&lt;br /&gt;
A good way of running games on Linux is having them run on a separate X display. The display you are most likely using now when reading this is 0:0. This display is normally used for whatever Window Manager/Desktop Environment(KDE,Gnome,*box,E) you've chosen. Sometimes fs2_open freezes and locks your X. This is of course very annoying as you have to CTRL+ALT+BACKSPACE to kill the X server, and in that, killing whatever program you had running besides fs2_open. The solution to this is to tell X to start fs2_open on another display. To to this we first need to tell X that you,the user on localhost, holds the permission to run on another display.&lt;br /&gt;
In a terminal, enter (NOT as root):&lt;br /&gt;
 $ xauth list&lt;br /&gt;
A list that looks something like this should appear.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Let's look at that line, first up is your localhost, then unix, and last :0 (in bold). The rest is not really of interest.&lt;br /&gt;
Copy the whole line, but change the display value to 1 and paste it after the command ''xauth add'', like this:&lt;br /&gt;
 $ xauth add localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
Run xauth list again. You should see a new entry.&lt;br /&gt;
 myuser@localhost ~ $ xauth list&lt;br /&gt;
 localhost/unix:'''0'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
 localhost/unix:'''1'''  MIT-MAGIC-COOKIE-1  14ec70e7c8cc835def61a04c92bbd50d&lt;br /&gt;
You now have permission to use display 1:0.&lt;br /&gt;
To start fs2_open in that display, use xinit.&lt;br /&gt;
 $ xinit /path/to/fs2_open_r -foo -bar -- :1&lt;br /&gt;
The ''-- :1'' tells X that we want to start fs2_open on display 1.&amp;lt;br&amp;gt;&lt;br /&gt;
You can switch to display 0 and 1 with CTRL+ALT+F7 and CTRL+ALT+F8 respectively.&lt;br /&gt;
&lt;br /&gt;
If you try this from an xterm (or a similar X terminal program) and obtain the error ''X: user not authorized to run the X server, aborting.'', the reason might be the file /etc/X11/Xwrapper.config. On my ubuntu machine, it contains the line&lt;br /&gt;
&lt;br /&gt;
 allowed_users=console&lt;br /&gt;
&lt;br /&gt;
which means that only users logged in from a console terminal may start a new X server. However, on an xterm, you are on a '''virtual''' terminal and so the above does not work. A possibility is to change the allowed_users in the Xwrapper.config file to &amp;quot;anybody&amp;quot; (see man Xwrapper.config). However, this undermines X security. Another possibility is to start the xinit command from a console window (to which you can change with CTRL+ALT+F1-6). &lt;br /&gt;
&lt;br /&gt;
''If someone knows of a good method to start fs2 on a second X display from an xterm without changing Xwrapper.config, please report it here.''&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3151</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3151"/>
		<updated>2006-04-17T12:15:00Z</updated>

		<summary type="html">&lt;p&gt;Nodens: added a link to my own xmodmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~$ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Here is my own fs2 xmodmap, derived from fr-latin1 as described above. Feel free to use it if you're too lazy to modify your own. However, it may not fit with your needs. You may always use it as an exemple, thougt.&lt;br /&gt;
* http://clement.hermann.free.fr/fs2/xmodmap&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your liking, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
&lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
&lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # restore xmodmap&lt;br /&gt;
 xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3117</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3117"/>
		<updated>2006-04-17T12:08:08Z</updated>

		<summary type="html">&lt;p&gt;Nodens: added a section about i18n and key mapping problem (and solution)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You '''have''' to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== I18n and Key mapping problems ===&lt;br /&gt;
&lt;br /&gt;
Ok, imagine that like me you don't have an us keyboard but a french one (or anything). Well, you probably have problems mapping some keys or even using the default mapping.&lt;br /&gt;
&lt;br /&gt;
Actually, the problem is fs2_open does not take modifiers into account, as it uses them internally as modifiers for keys, and it won't accept non-us charset either.&lt;br /&gt;
&lt;br /&gt;
On a french keyboard layout, the numbers ''1 2 3 4 5 6 7 8 9 0'' are on the same keys than on a US layout, but you have to press shift to use them. The primary function for theses keys are ''&amp;amp; Ã© &amp;quot; ' ( - Ã¨ _ Ã§ Ã  )''. These characters won't be accepted by freespace, and if you press shift to get a number, it won't work. This can be a problem, as theses keys are needed to use the communication system, and cannot be bound to anything. Also, as you won't get access some keys on your keyboard, it will be difficult to map every command on a key, or you'll have to use modifiers for nearly each key.&lt;br /&gt;
&lt;br /&gt;
However, there is a solution. You can tell X to remap the keyboard before launching the game, and restore your normal keymap afterwards.&lt;br /&gt;
&lt;br /&gt;
For exemple, I map 123456790 to the &amp;amp;Ã©&amp;quot;'(-Ã¨_Ã§Ã  keys so I can use the communication system, and I put , and ; on the Alt-Gr and Menu keys for convenience, as I binded thoses keys to next primary weapon and next secondary weapon.&lt;br /&gt;
&lt;br /&gt;
To do this, I use a slightly enhanced startup script, which I put in ~/bin (this directory is in my path), together with a customized xmodmap.&lt;br /&gt;
&lt;br /&gt;
* First, dump your current xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~$ xmodmap -pke &amp;gt; ~/xmodmap.current&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then edit it with your favorite text editor. You'll see a bunch of lines looking like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 keycode   8 =&lt;br /&gt;
 keycode   9 = Escape&lt;br /&gt;
 keycode  10 = 1 ampersand onesuperior exclamdown onesuperior exclamdown&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax is ''keycode &amp;lt;number&amp;gt; = &amp;lt;symbol list&amp;gt;''. &lt;br /&gt;
&lt;br /&gt;
Use '''xev''' to scan the keycodes. The symbols are defined in ''/usr/include/X11/keysymdef.h''. Just make sure you write them without the ''XK_'' prefix. You'll find more information about xmodmap in the xmodmap manual page.&lt;br /&gt;
&lt;br /&gt;
Just modify the keys you need, and be patient. This can be a long process. Test it with xmodmap :&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;xmodmap - &amp;lt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But don't forget to have your previous keymap at hand to recover your settings !&lt;br /&gt;
If you mess everything up, just restart X. Your default keymap will be applied from the X configuration.&lt;br /&gt;
&lt;br /&gt;
Then, when the file is modified at your convenience, just save it as '''~/.fs2_open/xmodmap'''&lt;br /&gt;
&lt;br /&gt;
We'll start fs2_open with a slightly more elaborate startup script which will backup/apply/restore the keymap in addition of running the games with some options in the right directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # This script lauches fs2. If there is a file named $FS2_modmap (see below), &lt;br /&gt;
 # backup the current modmap as $TMP_modmap and load it as the new modmap. &lt;br /&gt;
 # The current modmap will be restored afterwards.&lt;br /&gt;
 &lt;br /&gt;
 TMP_modmap=&amp;quot;$HOME/xmodmap.tmp&amp;quot;&lt;br /&gt;
 FS2_modmap=&amp;quot;$HOME/.fs2_open/xmodmap&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 FS2_OPEN_DIR=/usr/local/games/fs2_open&lt;br /&gt;
&lt;br /&gt;
 FS2_ARGS=&amp;quot;-glow -spec -spec_exp 11 -spec_point 0.6 -spec_static 0.8 -spec_tube 0.4 -fps -jpgtga -ambient_factor 75 -targetinfo -nograb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 FS2_BIN=&amp;quot;$FS2_OPEN_DIR/fs2_open_r&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 die() {&lt;br /&gt;
     echo &amp;quot;** Fatal error : $1&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
     exit 1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 cd $FS2_OPEN_DIR || die &amp;quot;Could not change directory to $FS2_OPEN_DIR&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # dump current xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap -pke &amp;gt; $TMP_modmap&lt;br /&gt;
&lt;br /&gt;
 # load xmodmap&lt;br /&gt;
 [ -f &amp;quot;$FS2_modmap&amp;quot; ] &amp;amp;&amp;amp; xmodmap - &amp;lt; $FS2_modmap&lt;br /&gt;
&lt;br /&gt;
 # launch fs2&lt;br /&gt;
 $FS2_BIN $FS2_ARGS $* || die &amp;quot;Error while running \&amp;quot;$FS2_BIN\&amp;quot; with arguments \&amp;quot;$FS2_ARGS\&amp;quot;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # restore xmodmap&lt;br /&gt;
 xmodmap - &amp;lt; $TMP_modmap &amp;amp;&amp;amp; rm $TMP_modmap&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adapt this script to your needs, and save it somewhere in your PATH - I for exemple usr ~/bin/freespace2. Make it executable with a chmod +x ''&amp;lt;file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
That's it, now you can use fs2 with full control over your keyboard.&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3116</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3116"/>
		<updated>2006-04-17T11:13:01Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. &lt;br /&gt;
&lt;br /&gt;
The second method is detailed below. The wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading.&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You **have** to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3115</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3115"/>
		<updated>2006-04-17T11:11:55Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
* use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
* extract manually the files from the cd. This method is detailed below (the wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading)&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You **have** to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3114</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3114"/>
		<updated>2006-04-17T11:10:59Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* MediaVP and Cutscenes */  - typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
- use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
- extract manually the files from the cd. This method is detailed below (the wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading)&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You **have** to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's time get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3113</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3113"/>
		<updated>2006-04-17T11:10:09Z</updated>

		<summary type="html">&lt;p&gt;Nodens: improved the presentation so everything looks consistent&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
- use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
- extract manually the files from the cd. This method is detailed below (the wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading)&lt;br /&gt;
&lt;br /&gt;
===Extracting data from CD===&lt;br /&gt;
====Installing unshield====&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick. Else, try to find a package for your distribution, or if you don't, compile it yourself following the instructions provided on the website. Note you don't need to actually install it, just compile it and use it from the directory where you compiled it.&lt;br /&gt;
&lt;br /&gt;
====Preparing directories====&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories. Everything but user files and configuration will be in this directory.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Extracting files====&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
=== Fixing Case and permissions ===&lt;br /&gt;
* You **have** to make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then, fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MediaVP and Cutscenes===&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's tome get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3112</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3112"/>
		<updated>2006-04-17T10:58:10Z</updated>

		<summary type="html">&lt;p&gt;Nodens: actually finished the unshield thing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
There are two ways of doing this :&lt;br /&gt;
- use wine to install the game in the right directory, using the Setup.exe found on the first CD, or&lt;br /&gt;
- extract manually the files from the cd. This method is detailed below (the wine one is straightforward and you shouldn't need any specific instruction, but you'll have to fix permissions and lowercase the filename as well, so keep reading)&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, ''/usr/local/games/fs2_open'', with a ''data/movies'' and ''data/players'' subdirectories :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies /usr/local/games/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use unshield to extract the groups from data1.cab (on the first cd) to a temporary directory; then move the files in your game directory :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir /tmp/fs2&amp;lt;/&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# for group in &amp;quot;Basic Install Files&amp;quot; &amp;quot;Intel Anims&amp;quot; &amp;quot;Music Compressed&amp;quot; &amp;quot;High Res Files&amp;quot;; do unshield -d /tmp/fs2/ -g &amp;quot;$group&amp;quot; -L -j x disk1/data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/*/* /home/data/jeux/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab &amp;amp;&amp;amp; mv -v /tmp/fs2/hud_config_files/&amp;quot;* /home/data/jeux/fs2_open/data/players&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* From the second CD, get the vp files and the movies files (I dont think the the mve file are really needed, you'll need the avi ones if you want the movies).&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Do the same for the third CD :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -vf *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may notice that some files are on all three CD. This is because the games was meant to be run from CD. Don't bother.&lt;br /&gt;
&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
If you want the cutscenes, you'll have to find the avi version of the MVE files, or to convert them yourself. They are not hard to find. When you have them, just put them in the data/movies directory. Again, make sure everything is lowercase.&lt;br /&gt;
&lt;br /&gt;
That's it for the game data files, now it's tome get the source !&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3109</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=3109"/>
		<updated>2006-04-13T01:21:12Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - added the wine trick.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
''these instructions are a work in progress. There are probably not complete. For now, your best bet is to use wine to launch the Setup.exe and install the game in the right directory''&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2979</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2979"/>
		<updated>2006-04-12T15:43:14Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
''these instructions are a work in progress. There are probably not complete''&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f -exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2965</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2965"/>
		<updated>2006-04-12T15:42:25Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  missing &amp;lt;/tt&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
''these instructions are a work in progress. There are probably not complete''&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2964</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2964"/>
		<updated>2006-04-12T15:40:42Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - fix permissions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
''these instructions are a work in progress. There are probably not complete''&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Fix permissions :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type d -exec chmod a+rx '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open -type f exec chmod a+r '{}' \;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2963</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2963"/>
		<updated>2006-04-12T14:22:10Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */  - warning about the WIP status.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
''these instructions are a work in progress. There are probably not complete''&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2962</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2962"/>
		<updated>2006-04-12T13:53:36Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll also need the mediavp from the SCP if you want the enhanced graphics. Get them at http://scp.indiegames.us.&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2961</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2961"/>
		<updated>2006-04-12T13:46:47Z</updated>

		<summary type="html">&lt;p&gt;Nodens: /* Installing game data files */ - more infos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
First, you need unshield from http://synce.sourceforge.net/synce/unshield.php&lt;br /&gt;
&lt;br /&gt;
If you use debian, apt-get install unshield as root should do the trick.&lt;br /&gt;
&lt;br /&gt;
* Create a directory for fs2_open, say, /usr/local/games/fs2_open&lt;br /&gt;
* Use unshield to extract the files from data1.cab (on the first cd):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Basic Install Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Intel Anims&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;Music Compressed&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open -g &amp;quot;High Res Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# unshield -d /usr/local/games/fs2_open/data/players -g &amp;quot;Hud Config Files&amp;quot; -L -j x data1.cab&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the second CD, get the vp files and the movies files (not sure if the mve file are needed, you'll need the avi ones if you want the movies):&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.vp /usr/local/games/fs2_open&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# mkdir -p /usr/local/games/fs2_open/data/movies/ &amp;amp;&amp;amp; cp -v *.MVE /usr/local/games/fs2_open/data/movies/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* From the third CD, get the movies files:&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# cp -v *.MVE /usr/local/games/fs2_open/data/movies/&lt;br /&gt;
* Now make sure everything is lowercase :&lt;br /&gt;
  &amp;lt;tt&amp;gt;~# find /usr/local/games/fs2_open/ | rename -v 'y/A-Z/a-z/'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2960</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2960"/>
		<updated>2006-04-12T11:47:44Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive, reproducing the same layout as in a working win32 installation (just make sure every file is lowercase). This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2957</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2957"/>
		<updated>2006-04-12T11:24:45Z</updated>

		<summary type="html">&lt;p&gt;Nodens: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html&lt;br /&gt;
&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the files and copying them on your drive. This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2956</id>
		<title>Guide to FS Open on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.net/index.php?title=Guide_to_FS_Open_on_Linux&amp;diff=2956"/>
		<updated>2006-04-12T11:23:02Z</updated>

		<summary type="html">&lt;p&gt;Nodens: Added a little more info for data files&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Note:  This tutorial assumes some fundamental command line knowledge.''&lt;br /&gt;
&lt;br /&gt;
== Installing CVS ==&lt;br /&gt;
CVS stands for Concurrent Versions System and is a version control system used to record the changes in documents, such as source files. Developers use CVS so they can easily share their code changes among other developers. You will need this tool to download (&amp;quot;checkout&amp;quot; in CVS terminology) fs2_open from the CVS server. &lt;br /&gt;
&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install cvs&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge cvs&lt;br /&gt;
&lt;br /&gt;
'''NOTE: Redhat, Mandrake/Mandriva, Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowledge on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing the nessesary development libraries ==&lt;br /&gt;
You will also need SDL, OpenAL, libvorbis and OpenGL(most likely provided with your video card driver) development packages. And of course the GCC compiler and required make tools.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Debian/Ubuntu''' users want to:&lt;br /&gt;
 apt-get install libopenal-dev libvorbis-dev build-essential automake1.9 autoconf libsdl-dev&lt;br /&gt;
'''NOTE:''' The ''build-essential'' meta package installs GCC4. This should work, but if you feel safer with GCC 3.4(gcc-3.4), add it to the apt-get line above.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Gentoo''' users want to:&lt;br /&gt;
 emerge openal libvorbis libsdl&lt;br /&gt;
'''NOTE: Radhat, Mandrake,Slackware and all the other distros should go here too,'''&lt;br /&gt;
'''but we have no knowlage on how these work, so if you do, please enlighten us.'''&lt;br /&gt;
&lt;br /&gt;
== Installing game data files ==&lt;br /&gt;
''This is all very icky on Linux. Someone should really look in to this.''&amp;lt;br&amp;gt;&lt;br /&gt;
This tutorial deals primarily with providing you with an executable, but in order to play the game you also need the game data.  Freespace 2 game data is available from a number of sources, see this thread: http://www.hard-light.net/forums/index.php/topic,38195.0.html &amp;lt;br&amp;gt;&lt;br /&gt;
Note that if you use the retail CD, you'll need to extract the file and copying them on your drive. This thread on the SCP forum has some more info on it : http://scp.indiegames.us/forum_viewtopic.php?3.282&lt;br /&gt;
&lt;br /&gt;
== Using the source ==&lt;br /&gt;
&lt;br /&gt;
=== CVS Checkout ===&lt;br /&gt;
Before you begin, make sure you are situated in a a directory where you have write permissions. Your /home/user/ directory is pretty much a sure bet. I recommend that you create a permanent /home/user/src directory from which you run the CVS command, this way CVS will only update the files changed the next time you download the source and it's always nice to have things organized.&lt;br /&gt;
&lt;br /&gt;
Now get the source. Run from a terminal:&lt;br /&gt;
 cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot login&lt;br /&gt;
and then&lt;br /&gt;
 cvs -z3 -d:pserver:anonymous@warpcore.org:/home/fs2source/cvsroot co fs2_open&lt;br /&gt;
The first cvs command tells the CVS tool to first use a password file for authentication (pserver), that you are user &amp;quot;anonymous&amp;quot; with the password &amp;quot;anonymous&amp;quot; who wants to access warpcore.org's CVS repository &amp;quot;/home/fs2source/cvsroot&amp;quot; and login. The second command tells the CVS server on which we are now connected to that we want to checkout (co) the fs2_open module.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== CVS Checkout and Update Script ====&lt;br /&gt;
The code on CVS is in a constant state of change, and bugs that exist one day may be gone the next.  Because of this, you'll want to occasionally update to a newer version and recompile.  &lt;br /&gt;
Running those cvs commands will fast grow to be a pain, so this little script was created to make your life easier. This script will checkout fs2_open if it can't find a fs2_open directory and update fs2_open, if it finds it.&lt;br /&gt;
The script will run until a successfull checkout or update has been achieved.&lt;br /&gt;
Copy and save this to a suitably named file like &amp;quot;get_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # CVS Checkout and Update Script for fs2_open&lt;br /&gt;
 CVS_LINE=&amp;quot;cvs -d:pserver:anonymous:anonymous@warpcore.org:/home/fs2source/cvsroot&amp;quot; # The cvs command&lt;br /&gt;
 if [ &amp;quot;$UID&amp;quot; = 0 ]; then # check if user is root, and if so, echo a warning.&lt;br /&gt;
 	echo &amp;quot;You are root. If this is a checkout, all files \&lt;br /&gt;
 	will be created with root as the owner.&amp;quot;&lt;br /&gt;
 	sleep 3&lt;br /&gt;
 fi  &lt;br /&gt;
 if [ -e ./fs2_open ]; then # check if directory fs2_open exists&lt;br /&gt;
 	echo &amp;quot;Found fs2_open, We are updating an old checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This updates the checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE update fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 else&lt;br /&gt;
 	echo &amp;quot;No fs2_open found, This is a new checkout.&amp;quot;&lt;br /&gt;
 CVS_ATTEMPT=0 # This creates a new checkout.&lt;br /&gt;
 until [  $CVS_ATTEMPT = 1 ]; do&lt;br /&gt;
 	$CVS_LINE login &amp;amp;&amp;amp; \&lt;br /&gt;
 	$CVS_LINE co fs2_open &amp;amp;&amp;amp; \&lt;br /&gt;
 	let CVS_ATTEMPT=1&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
=== Pre-Compile Configuration ===&lt;br /&gt;
&lt;br /&gt;
Before you compile you need to configure it for your system. Run from &lt;br /&gt;
In the directory you ran the CVS command from, a new directory will appear, namely fs2_open.&lt;br /&gt;
If your fs2_open is a completely new checkout, you will first need to run the autogen.sh script.&lt;br /&gt;
Run from inside your newly created fs2_open directory:&lt;br /&gt;
 ./autogen.sh&lt;br /&gt;
autogen.sh is a script that will generate the required makefiles. You will see alot of &amp;quot;checking for this&amp;quot; and &amp;quot;checking for that&amp;quot;, this is actually the &amp;quot;configure&amp;quot; script (which can be run with &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; if you need to change the options) examining and configuring fs2_open for your system.&amp;lt;br&amp;gt;&lt;br /&gt;
It is possible to give autogen.sh configure options as well, autogen.sh will pass them along to configure.&lt;br /&gt;
&lt;br /&gt;
A full list of configure options can be found by running the configure script with the '--help' option.&lt;br /&gt;
 ./configure --help&lt;br /&gt;
&lt;br /&gt;
==== Optimizing fs2_open ====&lt;br /&gt;
Optimizing fs2_open might have little or no effect, or improve performance greatly, I honestly have no clue.&amp;lt;br&amp;gt;&lt;br /&gt;
A note of caution, if you are compiling a debug build, don't use the -fomit-frame-pointer CFLAG, it will make debugging impossible.&amp;lt;br&amp;gt;&lt;br /&gt;
You can specify your compiler flags with the configure script, se below.&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;&amp;lt;your desired flags&amp;gt;&amp;quot;&lt;br /&gt;
If you got a Athlon-XP and want to play it safe, a good set of CFLAGS would be&lt;br /&gt;
 ./configure CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer&amp;quot;&lt;br /&gt;
You should read up on CFLAGS and what they do before trying anything. I recommend you read through these links.&amp;lt;br&amp;gt;&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Optimize-Options.html&amp;lt;br&amp;gt;&lt;br /&gt;
http://linuxreviews.org/howtos/compiling/safe-cflags/&amp;lt;br&amp;gt;&lt;br /&gt;
http://en.wikipedia.org/wiki/CFLAGS&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
&lt;br /&gt;
Run from within your fs2_open directory:&lt;br /&gt;
 make &lt;br /&gt;
Sit back and enjoy gcc work its magic.&lt;br /&gt;
&lt;br /&gt;
==== Simple Compile Script ====&lt;br /&gt;
It's alot easier to use a scripts when dealing with constantly changing code. Copy and save this to a suitably named file like &amp;quot;compile_fs2_open&amp;quot;, and make it executable with the command, chmod +x &amp;lt;name of file&amp;gt;&lt;br /&gt;
This script assumes the CVS checkout directory fs2_open is pressent in the same directory as the script itself.&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # fs2_open Compile Script&lt;br /&gt;
 # These are only examples, uncomment to enable optimization.&lt;br /&gt;
 #MY_CFLAGS=&amp;quot;-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ftracer&amp;quot;&lt;br /&gt;
 if [ -e ./fs2_open/ ]; then&lt;br /&gt;
 	cd fs2_open&lt;br /&gt;
 	if [ -e ./Makefile.in ]; then&lt;br /&gt;
 	make clean&lt;br /&gt;
 	./configure CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	else&lt;br /&gt;
 	./autogen.sh CFLAGS=&amp;quot;$MY_CFLAGS&amp;quot; CXXFLAGS=&amp;quot;$MY_CFLAGS&amp;quot;&lt;br /&gt;
 	make&lt;br /&gt;
 	fi&lt;br /&gt;
 	else&lt;br /&gt;
 	echo &amp;quot;No fs2_open directory found.&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
You can add your options to the ./configure line.&lt;br /&gt;
&lt;br /&gt;
== Using the Binaries ==&lt;br /&gt;
&lt;br /&gt;
When the compile is done and if all went well, a binary executable will reside in the code directory ''fs2_open_r'' or ''fs2_open_d'' if you configured for a debug build. Copy the binary to directory where Freespace2 is installed, and you're all set to go.&lt;br /&gt;
&lt;br /&gt;
=== Post-Compile Configuration ===&lt;br /&gt;
====  Changing Your Resolution ====&lt;br /&gt;
&lt;br /&gt;
Odds are, you'll want to run fs2_open in a higher resolution than the default 640x480.  Unfortunately, we Linux users don't have the swank launcher app that the Windows folks do.  Instead, we'll be making a couple line changes to a config file.  You will need to run fs2_open once before you can make the necessary changes, otherwise you won't have a configuration directory to work with.&lt;br /&gt;
&lt;br /&gt;
The first thing we need to do is get into the fs2_open config directory, which is a hidden folder in your home directory.  The fastest way to get there is to type the following in a console:&lt;br /&gt;
 cd ~/.fs2_open&lt;br /&gt;
&lt;br /&gt;
From here, open up fs2_open.ini in your text editor of choice (vi, EMACS, joe, pico, etc).  You'll see something like the following:&lt;br /&gt;
 [Default]&lt;br /&gt;
 VideocardFs2open=OGL -(640x480)x16 bit&lt;br /&gt;
 LastPlayer=MonkeyboyS&lt;br /&gt;
 GammaD3D=1.0&lt;br /&gt;
&lt;br /&gt;
Then change the Videocard line to the following:&lt;br /&gt;
 VideocardFs2open=OGL -(1024x768)x32 bit&lt;br /&gt;
&lt;br /&gt;
Save the file, and run fs2_open as you normally would.  Voila!  You're now in 1024x768 at 32bit color.  Congratulations!&lt;br /&gt;
&lt;br /&gt;
=== Creating a Start Up Script ===&lt;br /&gt;
&lt;br /&gt;
In order to use all of the advanced engine features of fs2_open, you'll need to start the executable with a number of command line arguments.  Instead of typing them in every time you want to start the game, why not create a script that does it for you?&lt;br /&gt;
&lt;br /&gt;
Create a new file named start_freespace (or whatever you like) in your home directory. Open the file in your editor of choice, and paste the following:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 cd /path/to/your/freespace/&lt;br /&gt;
 ./fs2_open_r -spec -glow -mipmap -jpgtga -orbradar -mod Media_VP&lt;br /&gt;
&lt;br /&gt;
''Note:  You will need to edit this script before it will work properly.  The second line must point to the directory where you installed fs2_open.''&lt;br /&gt;
&lt;br /&gt;
The last line starts fs2_open with a number of arguments that turn on extra features.  In the example, the game will use specular highlights, glow-mapping, mipmapping, jpg and tga graphic files, the orb radar, and any MediaVPs installed to the /Media_VP directory.  You should edit this line to use those features that your system supports.&lt;br /&gt;
&lt;br /&gt;
More information about the available Command Line Arguments can be found at the [[Command-Line Reference]]&lt;br /&gt;
&lt;br /&gt;
Once you've edited the file to your heart's content, make it executable:&lt;br /&gt;
 chmod +x start_freespace&lt;br /&gt;
&lt;br /&gt;
You can now type in start_freespace to start the game, or by clicking on start_freespace in your window manager.  For convenience, you can copy it to your Desktop.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Compile Errors ===&lt;br /&gt;
==== Missing -lGLU compile error ====&lt;br /&gt;
&lt;br /&gt;
On some Linux distributions (''Slackware'' for instance), compiling fails because a GL related library doesn't have a link in the &amp;lt;tt&amp;gt;/usr/lib&amp;lt;/tt&amp;gt; directory.  If the compile fails because it can't find &amp;lt;tt&amp;gt;-lGLU&amp;lt;/tt&amp;gt;, here are two ways to fix it:&lt;br /&gt;
&lt;br /&gt;
===== Solution as Root =====&lt;br /&gt;
&lt;br /&gt;
If you have root access to the system, you can create a link to the library in question with just a little bit of command line magic.  Go to a console and enter:&lt;br /&gt;
&lt;br /&gt;
 ln -s /usr/X11R6/lib/libGLU.so /usr/lib/libGLU.so&lt;br /&gt;
&lt;br /&gt;
After that, you can run make again and it should finish compiling.&lt;br /&gt;
&lt;br /&gt;
===== Solution as a Non-Root user =====&lt;br /&gt;
&lt;br /&gt;
You don't have root access?  Never fear, we can still fix the problem.  It'll just be a tad more difficult.&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;lt;tt&amp;gt;fs2_open/code&amp;lt;/tt&amp;gt; directory and locate a file named &amp;lt;tt&amp;gt;Makefile&amp;lt;/tt&amp;gt; (not Makefile.rm or Makefile.in or Makefile.anything).  Open it in your favorite text editor and make the following changes.&lt;br /&gt;
&lt;br /&gt;
Find this line (line 457 in mine):&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 FS2_LDFLAGS =  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also find this one (line 565 in mine):&lt;br /&gt;
 AM_LDFLAGS =  -g  -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lGLU -lopenal -logg -lvorbis -lvorbisfile&lt;br /&gt;
&lt;br /&gt;
And replace it with this:&lt;br /&gt;
 AM_LDFLAGS =  -g -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lGL -lopenal -logg -lvorbis -lvorbisfile -L/usr/X11R6/lib -lGLU&lt;br /&gt;
&lt;br /&gt;
Then run &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;fs2_open&amp;lt;/tt&amp;gt; directory, and watch the magic happen.&lt;br /&gt;
&lt;br /&gt;
==== glBindBufferARB feature missing ====&lt;br /&gt;
'''This is a draft, and has not been tested.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''If this is the actual solution to this problem remains to be proven.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So far, only people using Debian stable are affected by this.'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''So we need adventurus Debian users to confirm. / ni1s'''&amp;lt;br&amp;gt;&lt;br /&gt;
 checking for glBindBufferARB in -lGL... no&lt;br /&gt;
 configure: error: *** OpenGL version does not have the required features!! (ie.glBindBufferARB()) ***&lt;br /&gt;
This error appears if the installed Mesa development library is to old.&lt;br /&gt;
&lt;br /&gt;
On Debian stable branch the xlibmesa-gl-dev package holds version 4.3.0. &amp;lt;br&amp;gt;&lt;br /&gt;
The xlibmesa-gl-dev package on ''testning'' is version 6.9.0.&lt;br /&gt;
&lt;br /&gt;
'''Possible solution:'''&amp;lt;br&amp;gt;&lt;br /&gt;
First set /etc/apt/sources.list to include the testing branch. Add:&lt;br /&gt;
 #Testing&lt;br /&gt;
 deb http://ftp.us.debian.org/debian testing main non-free contrib&lt;br /&gt;
 deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free&lt;br /&gt;
Your sources.list might have these lines already, if so, you should be okej.&lt;br /&gt;
&lt;br /&gt;
Your /etc/apt/preferences file should look like this&lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=stable&lt;br /&gt;
 Pin-Priority: 700&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 650&lt;br /&gt;
 &lt;br /&gt;
 Package: *&lt;br /&gt;
 Pin: release a=unstable&lt;br /&gt;
 Pin-Priority: 600&lt;br /&gt;
&lt;br /&gt;
Add to that file:&lt;br /&gt;
 Package: xlibmesa-gl-dev&lt;br /&gt;
 Pin: release a=testing&lt;br /&gt;
 Pin-Priority: 800&lt;br /&gt;
Note that the Pin-Priority of xlibmesa-gl-dev here is higher than the Pin-Priority on 'stable'. As a result of this APT get will prioritize the xlibmesa-gl-dev from testing and leave the rest of the system on stable.&lt;br /&gt;
This is called apt-pinning.&lt;br /&gt;
&lt;br /&gt;
Now that APT knows what xlibmesa-gl-dev to prioritze, install it again:&lt;br /&gt;
 apt-get install xlibmesa-gl-dev&lt;br /&gt;
&lt;br /&gt;
If you are using nVidia's nvidia-kernel and glx packages, a simple:&lt;br /&gt;
 apt-get install nvidia-glx-dev&lt;br /&gt;
should suffice. No need to mess around with APT-pinning.&lt;br /&gt;
&lt;br /&gt;
=== Runtime Errors ===&lt;br /&gt;
==== ERROR: &amp;quot;Web cursor bitmap not found.&amp;quot; ====&lt;br /&gt;
 ERROR: &amp;quot;Web cursor bitmap not found.  This usually means that the executable is being run outside the  directory&lt;br /&gt;
 you installed Freespace2 to.  Please move the executable to that directory and try again&amp;quot; at  graphics/2d.cpp:1402&lt;br /&gt;
A common error. This happens when fs2_open can't find the .vp files or that your user doesn't have the permissions to access them. If you are using a start up script([http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#Creating_a_Start_Up_Script like the one found here]) it's most likly the a permission problem.&lt;br /&gt;
Have your user take owenership of the .vp files, run as root:&lt;br /&gt;
 chown &amp;lt;user&amp;gt; /path/to/vpfiles/ -R&lt;/div&gt;</summary>
		<author><name>Nodens</name></author>
		
	</entry>
</feed>