lunes, abril 28, 2008

Frets on Fire dando guerra

Pues si así es, el Frets on Fire a dejado de funcionar sin motivo aparente, todo parece estar relacionado con las librerías de 32 bits para equipos de 64.
El error es el siguiente:
Traceback (most recent call last):
File "/home/skyostil/src/cx_Freeze-3.0.3/initscripts/Console.py", line 27, in ?
File "src/FretsOnFire.py", line 36, in ?
File "src/GameEngine.py", line 24, in ?
File "/usr/lib/python2.4/site-packages/pygame/__init__.py", line 75, in ?
from pygame.base import *
File "ExtensionLoader_pygame_base.py", line 12, in ?
ImportError: libx86.so.1: cannot open shared object file: No such file or directory

Por lo visto no encuentra la librería libx86, después de "googlear" un poco descubro que el problema reside en que Frets busca esta librería en /usr/lib32 y además busca la versión para 32 bits. Tendremos que bajarnos el paquete libx86-1 pero la versión para i386.
Ahora descomprimiremos el paquete y copiaremos la librería al lugar adecuado:
ar x libx86-1_0.99+ds1-1_i386.deb
cd lib
cp libx86.so.1 /usr/lib32/

Y ya lo tenemos, Frets totalmente funcional, la verdad no se porque ocurren de vez en cuando este tipo de cosas, supongo que será porque el emplear software de 32 bits en arquitecturas de 64 no está todo lo maduro que debería.

viernes, abril 11, 2008

VirtualBox en Debian Lenny

Hace ya tiempo estuve probando VirtualBox un software de virtualización al estilo VMware, la principal diferencia es que este es totalmente gratuito.
El software se puede bajar de este enlace, de la página de Sun Microsystems ya que Sun compró Innotek hace relativamente poco tiempo, la versión que se encuentra en los repositorios nunca me ha llegado e funcionar.
Una vez bajado lo instalamos(aunque la versión sea para Etch funciona correctamente en Lenny):
dpkg -i virtualbox_1.5.6-28266_Debian_etch_amd64.deb
Con esto ya tenemos VirtualBox instalado en nuestro sistema, sólo queda hacer unos cuantos retoques y configurar la red.
Añadimos nuestro usuario al grupo vboxusers y ponemos los permisos apropiados a /dev/vboxdrv:
usermod -G vboxusers -a "USUARIO"
chmod 666 /dev/vboxdrv

Para poder obtener IP desde la máquina virtual debemos de seguir los siguientes pasos.
Instalamos las herramientas necesarias para crear puentes:
apt-get install bridge-utils uml-utilities
Para poder crear los puentes se debe de tener soporte en el Kernel, la opción necesaria se encuentra en:
Networking-->Network Options-->802.1d Ethernet Bridging

Una vez recompilado el Kernel ya podemos hacer los puentes y unirlos, este script nos será de ayuda para tal tarea.

#!/bin/bash
#Descargamos el módulo de VirtualBox y lo volvemos a cargar:
/etc/init.d/vboxdrv stop
/etc/init.d/vboxdrv start
#Deshabilitamos la red VirtualBox y la volvemos a habilitar:
/etc/init.d/vboxnet stop
/etc/init.d/vboxnet start
#Le damos los permisos necesarios a la interfaz de tunneling:
chmod 666 /dev/net/tun
#Creamos el bridge(puente):
brctl addbr br0
#Preparamos la interfaz de red real para ser conectada al bridge:
ifconfig eth0 0.0.0.0 promisc
#Conectamos eth0 al bridge:
brctl addif br0 eth0
#Pedimos IP para el bridge:
dhclient br0
#Permitimos el tap0 por parte de nuestro usuario:
tunctl -t tap0 -u "USUARIO"
#Conectamos tap0 al bridge:
brctl addif br0 tap0
#Asignamos IP a tap0:
ifconfig tap0 "IP CUALQUIERA DE LA SUBRED" up
#Habilitamos el soporte para operar como proxy ARP:
bash -c 'echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp'
#Añadimos la ruta hasta el anfitrión por la interfaz tap0:
route add -host "IP ANFITRION" dev tap0
#Modificamos nuestra tabla ARP para que el proxy funcione correctamente:
arp -Ds "IP ANFTRION" eth0 pub
#Le damos los permisos necesarios a la interfaz de tunneling:
chgrp vboxusers /dev/net/tun
chmod 666 /dev/net/tun

Con todo esto ya tenemos las máquinas virtuales capacitadas para poder acceder a la red, en configuración de red de la máquina virtual le pondremos.
Conectar a: Interface anfitrión
Configuración de interface anfitrión --> Nombre de la interface:tap0
Bueno pues creao que ya está todo explicado, sólo hay que tener en cuenta un pequeño detalle que a mí me trajo algunos problemas, mucho cuídado con las reglas IpTables, en mi caso por defecto lo bloquea todo y no me funcionaba hasta que descargué mis reglas personalizadas.
NOTA:Si alguien sabe como hacer que IpTables permita el paso de la información necesaria para que la red funcione correctamente le agradecería que escribiese un comentario explicandolo.

domingo, abril 06, 2008

Controlar el uso de Swap

Ya hace mucho tiempo que llevo dándole vueltas al porque del uso de swap en Linux sin haber hecho uso de toda la memoria Ram, todo vino desde que instalé el monitorizador gkrellm y observé este extraño comportamiento.
Podemos observar en el fichero /proc/sys/vm/swappiness con que frecuencia nuestro sistema operativo hará uso de la swap.
La solución a este problema que hace que nuestro sistema no funcione todo lo bien que podría se soluciona del siguiente modo:
Editamos el fichero /etc/sysctl.conf añadiendo:
vm.swappiness=10