on raspberry Pi, build Quake3

7185 ワード

sudo apt-get install git gcc build-essential libsdl1.2-dev

http://www.raspians.com/Knowledgebase/quake-iii-arena/
git for source codes
git clone https://github.com/raspberrypi/quake3.git
cd ./quake3
vi build.sh

make it look like this:
  1 #!/bin/bash
  2 # this script builds q3 with SDL
  3 # invoke with ./build.sh
  4 # or ./build.sh clean to clean before build
  5 
  6 # directory containing the ARM shared libraries (rootfs, lib/ of SD card)
  7 # specifically libEGL.so and libGLESv2.so
  8 ARM_LIBS=/opt/vc/lib          # 
  9 SDL_LIB=lib
 10 
 11 # directory containing baseq3/ containing .pk3 files - baseq3 on CD
 12 BASEQ3_DIR="/home/${USER}/"
 13 
 14 # directory to find khronos linux make files (with include/ containing
 15 # headers! Make needs them.)
 16 INCLUDES="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"  # 
 17 
 18 # prefix of arm cross compiler installed
 19 #CROSS_COMPILE=bcm2708-              # 
 20 
 21 # clean
 22 if [ $# -ge 1 ] && [ $1 = clean ]; then
 23    echo "clean build"
 24    rm -rf build/*
 25 fi
 26 
 27 # sdl not disabled
 28 make -j4 -f Makefile COPYDIR="$BASEQ3_DIR" ARCH=arm \
 29         CC=""$CROSS_COMPILE"gcc" USE_SVN=0 USE_CURL=0 USE_OPENAL=0 \
 30         CFLAGS="-DVCMODS_MISC -DVCMODS_OPENGLES -DVCMODS_DEPTH -DVCMODS_REPLACETRIG $INCLUDES" \
 31         LDFLAGS="-L"$ARM_LIBS" -L$SDL_LIB -lSDL -lvchostif -lvmcs_rpc_client -lvcfiled_check -lbcm_host -lkhrn_static -lvchiq_arm -lopenmaxil -lEGL -lGLESv2 -lvcos -lrt"
 32 
 33 # copy the required pak3 files over
 34 # cp "$BASEQ3_DIR"/baseq3/*.pk3 "build/release-linux-arm/baseq3/"
 35 # cp -a lib build/release-linux-arm/baseq3/
 36 exit 0
 37 
~                                                                                                                                                                                        
~                                                                                                                                                                                        
~                     

Save this file and go ./build.sh          :D
Start compiling, it might take hours. Just be patient :D
原帖住所:http://www.raspbian.org/RaspbianQuake3
http://www.youtube.com/watch?v=nSqFdguPEzI

Building Quake 3 in Raspbian


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

Reboot.

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:
pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3 http://dl.dropbox.com/u/1816557/Q3%20Demo%20Paks.zip

Update your permissions for directFB access:
    sudo usermod -a -G video [your_username]

Log out, log back in. This will allow you to run game as non-root. Works with other directFB/SDL based stuff, too.

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!

Troubleshooting


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]

Or as one time temporary solution (until reboot):
    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.
Create new file /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"

Add a new group and add your user(s) to it:
groupadd input
usermod -a -G input [your_username]

Log out, log back in.