sábado, 10 de noviembre de 2012

Instalando Quake III en Raspberry Pi

Hace más de tres meses que recibí mi Raspberry Pi y aún no había tenido la ocasión pero... por fin... esta semana, he pedido una tarjeta SD de 8 GB Clase 10 Extreme Pro de 95Mb/seg, un teclado y un ratón para utilizar exclusivamente en este menester. Y... ¿que mejor para probar nuestra Raspberry Pi que instalando Quake III?.

Lo único que necesitas para hacer funcionar tu Raspberry Pi, es:
  • Un transformador con salida micro USB que saque por DC al menos 700mA aunque yo recomiendo al menos 1,2A  para no quedaros cortos.
  • Una tarjeta SD, yo he pillado una de alta velocidad porque tengo entendido que la velocidad de la tarjeta es una de las cosas que más limita la potencia de Rapberry Pi.
  • Una televisión y un un conector de vídeo compuesto (RCA cable amarillo) o bien una pantalla de PC con conector hdmi.
  • Un teclado y un ratón USB.
  • Un cable de red y un router con conexión a Internet.
  • Tener puesto en la radio Rock FM o en su defecto poner una canción de los Guns and Roses.


Pero bueno, no empecemos la casa por el tejado. En primer lugar hay que instalar un SO a nuestra tarjeta SD, yo como soy un poco vago estoy en Windows y he utilizado este sistema para realizar la instalación de la imagen. En esta página podéis encontrar las diferentes imágenes preconfiguradas para instalar en la tarjeta de vuestra Raspberry Pi. Yo os recomiendo utilizar Raspbian “wheezy”que es una optimización de la versión debian para Raspberry, pero si pretendéis instalar la maquina virtual de Java, esta versión no os valdrá y tendréis que ir a la versión soft-debian pura. Bueno, en este caso nos centramos en la primera de estas, la descargáis y montáis la imagen en una tarjeta SD, aquí os dejo el enlace de la guía para principiantes. A continuación os resumo los pasos que yo seguí, en el enlace podéis encontrar varios métodos más, según las ganas que tengáis de frikear y el SO que utilicéis. Yo como ya he dicho no dispongo de mucho tiempo libre y he utilizado Windows:

  1. Descargar la imagen desde el mirror o por torrent. Cómo ya he dicho, asumo que usaremos Raspbian “wheezy” download 2012-10-28-wheezy-raspbian.zip
  2. Extraer el archivo imagen 2012-10-28-wheezy-raspbian.img del archivo .zip descargado.
  3. Insertar la tarjeta SD en tu lector de tarjetas SD y fijate bien en la letra de la unidad que le corresponde.Si la tarjeta no es nueva, deberías formatearla; de lo contrario Win32DiskImager puede fallar al grabar la imagen.
  4. Ahora descarga la herramienta Win32DiskImager. Los enlaces de descarga se encuentran al lado derecho de la página, descarga el zip con los binarios para poder ejecutarlo directamente.
  5. Extrae el ejecutable del archivo zip y ejecuta el archivo Win32DiskImager. Recuerda ejecutarlo como Administrador!
  6. Elige la imagen 2012-10-28-wheezy-raspbian.img que deberías haber extraído previamente.
  7. Selecciona la unidad correspondiente a tu tarjeta SD. Ten cuidado en seleccionar la unidad correcta ya que si te equivocas borrarás todo el contenido de la unidad que elijas ¡si te equivocas puede que pierdas toda tu información!
  8. Pincha en "Write" y espera a que termine la escritura para completar la operación.
  9. Sal del programa y extrae la tarjeta SD.
  10. Ahora puedes insertar la tarjeta en tu Raspberry Pi, ahora puedes encenderla, y si todo ha ido bien debería arrancar el sistema operativo. 




Al arrancar la Raspberry Pi hay dos cosas importantes, la primera es tener en cuenta que el usuario y contraseña por defecto para el Sistema Operativo Wheezy es usuario: pi y contraseña: raspberry, la segunda es que se debería ejecutar por defecto un script llamado raspi-config y que puede ser ejecutado en cualquier momento utilizando el comando: sudo raspi-config
En dicho script, se pueden ver las opciones mostradas a continuación entre ellas cabe destacar las siguientes:
  • Expandir la partición de memoria de tu tarjeta SD: Si estás utilizando una tarjeta de memoria de más de 4GB puedes elegir esta opción para extender la partición de memoria utilizando así toda la memoria de tu tarjeta, para ello utiliza la opción expand_rootfs
  • Para poner el teclado en español hay que elegir la opción del menú configure_keyboard y seguir las indicaciones en pantalla. Es importante tener en cuenta que hay que ir pulsando el tabulador para ir realizando las selecciones y posteriormente aceptar con la tecla enter.
  • Podéis overclockear vuestra Raspberry Pi, yo la he subido a 800Mhz para realizar estas pruebas.
  • También es importante subir la memoria dedicada a la gráfica con el comando meomry_split, os recomiendo 128Mb no pongáis los 256Mb ya que en ese caso el sistema tiende a tener parones.
Pulsando la tecla ESC se accede a la consola del SO. Lo siguiente que debéis hacer es conectar a Internet vuestra Raspberry Pi utilizando un cable Ethernet entre tu dispositivo Raspberry y un router con conexión ADSL o similar. Si todo funciona correctamente deberías poder ejecutar el comando ifconfig para comprobar que la tarjeta ha obtenido una IP válida. Para comprobar que la conexión funciona puedes ejecutar ping -c 3 www.google.es y deberías obtener respuesta de sus servidores.
Podéis encontrar más información básica sobre como hacer ciertas cosas con Linux en Raspberry Pi iniciación con raspberry.

Y ahora... vamos a comenzar con la instalación de Quake 3, os propongo la solución que a mi me función que es la que consiste en compilar Quake 3 para Raspbian, para lo que hay que seguir los pasos propuestos en este tutorial y que paso a describir a continuación:


  1. Actualiza el sistema con los siguientes comandos (el último en mi caso no se ejecutó correctamente pero sin embargo el sistema ha funcionado perfectamente):
        sudo apt-get update
        sudo apt-get dist-upgrade
        sudo rpi-update 192
    • Reinicia con el comando reboot.
  2. Instala los paquetes necesarios para realizar la compilación:
        sudo apt-get install git gcc build-essential libsdl1.2-dev
  3. Y ahora descarga el código fuente de Quake 3:
        mkdir ~/src
        cd ~/src
        git clone https://github.com/raspberrypi/quake3.git
        cd quake3
  4. Ahora hay que editar el archivo build.sh del directorio quake3 para cambiar el uso de las librerías a utilizar.
        cambia la linea 8 por:  ARM_LIBS=/opt/vc/lib
        cambia la linea 16 por: INCLUDES="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads"
        Comenta la linea usando el simbolo # 19:    #CROSS_COMPILE=bcm2708-
  5. Ahora ejecuta el script que realiza la compilación: ./build.sh
  6. Y... ahora puedes ir a hacerte un café, te o tomarte unas cervezas con tus colegas, porque esto tarda un buen rato (aproximadamente 1 hora).
  7. Ahora tienes que encontrar los archivos: pak0.pk3, pak1.pk3, pak2.pk3, pak3.pk3, pak4.pk3, pak5.pk3, pak6.pk3, pak7.pk3, pak8.pk3 y colocarlos en el directorio build/release-linux-arm/baseq3. Estos archivos los puedes encontrar en el cd original de tu Quake III
  8. Una vez compilado puedes crear un directorio limpio y mover ahí los archivos listados a continuación, puedes eliminar el resto del directorio:
quake3arena/ioq3ded.arm
quake3arena/ioquake3.arm
quake3arena/baseq3/cgamearm.so
quake3arena/baseq3/qagamearm.so
quake3arena/baseq3/uiarm.so
quake3arena/lib/libSDL.so
quake3arena/lib/libSDL-1.2.so.0
quake3arena/lib/libSDL-1.2.so.0.11.3
Ahora ya puedes entrar en la carpeta anterior y ejecutar el archivo ioquake3.arm. Usando el comando ./ioquake3.arm comenzará el juego.
    Quiero agradecer a Shea Silverman su trabajo por servirme de fuente de inspiración.


    Bueno, por último aquí os dejo un vídeo demostrativo del resultado, se que la calidad del vídeo no es muy buena, pero considero que tampoco hace falta mas. Como podéis ver el Quake III funciona más que fluido con la configuración apropiada, habrá que seguir probando cosas para comprobar los límites del Hardware. De momento la prueba de concepto ha sido un éxito!