Documentation below pulled from the Raspbian Forum. Please update this page if errors in the build process are discovered.
Make sure you're up-to-date:
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update 192
Install required packages:
sudo apt-get install git gcc build-essential libsdl1.2-dev
Download the Quake 3 source code:
mkdir ~/src
cd ~/src
git clone https://github.com/raspberrypi/quake3.git
cd quake3
Edit build.sh in quake3 directory:
change line 8 to this: ARM_LIBS=/opt/vc/lib
change line 16 to this: INCLUDES="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
comment out line 19: #CROSS_COMPILE=bcm2708-
Do a ./build.sh
Wait for compilation to finish, takes about 1 hour on RasPi.
Find copies of the following somewhere (other guides will show you) and place in build/release-linux-arm/baseq3:
Update your permissions for directFB access:
sudo usermod -a -G video [your_username]
If you do not intend to keep Quake 3 source code, you may reorganize files as suggested by this thread on RasPi Forum.
Run ioquake3.arm. Shoot things.
Highly non-scientific testing (i.e. having played a normal-Debian build a few days ago) suggests framerate is quite dramatically improved. Go Raspbian!
Compiling fails, complaining about missing vcos_platform_types.h
file. See this issue in RasPi repository:
https://github.com/raspberrypi/firmware/issues/34. (Build script
was recently fixed to include correct path to missing header file.
Do git pull.)
Game cannot find Broadcom libraries. As root do:
cd /etc/ld.so.conf.d/
echo /opt/vc/lib >broadcomlib.conf
ldconfig
If you get an error like "failed to open vchiq instance" you'll need to do as root:
echo 'SUBSYSTEM=="vchiq",GROUP="video",MODE="0660"' > /etc/udev/rules.d/10-vchiq-permissions.rules
usermod -a -G video [your_username]
chmod a+rw /dev/vchiq
If running as a non-root user and running from the console (non X11), then quake3 may bomb out with an error message like 'SDL_Init()' 'Unable to open mouse'. You'll need to fix permissions so that non-root user can access /dev/input/mice and /dev/input/mouse0.
/etc/udev/rules.d/99-input.rules:# file /etc/udev/rules.d/99-input.rules
KERNEL=="mice", NAME="input/%k", MODE="664", GROUP="input"
KERNEL=="mouse*", NAME="input/%k", MODE="664", GROUP="input"
groupadd input
usermod -a -G input [your_username]