lunes, 21 de agosto de 2017

Recalbox: Configurar wifi con IP estática

Recalbox es un sistema operativo para Raspberry Pi basado en Debian que, tras instalarlo, nos ofrece un entorno completamente configurado para jugar a juegos retro (nes, mega drive,...etc) y para disponer de un media center como Kodi, entre otros.
A continuación, voy a indicar los pasos que tenemos que realizar para configurar la wifi en un Recalbox con IP fija para una red encriptada con WPA2.
En primer lugar, tenemos que acceder a la consola del sistema operativo. Para ello solo tenemos que pulsar alt+F4 y a continuación pulsar alt+F2.
Tras lo anterior, realizamos login con el usuario root cuya contraseña por defecto es recalboxroot .
Una vez que estamos logados en el sistema, tenemos que poner el sistema de ficheros en modo lectura y escritura porque por defecto Recalbox lo arranca con permisos solo de lectura. Para realizar este cambio lanzamos el siguiente comando:

mount -o rw,remount /

Después de esto configuramos las interfaces y para ello en Recalbox hay 2 ficheros que contienen la configuración de estas, el fichero /etc/network/interfaces y el /etc/network/interfaces.base. El fichero interfaces contiene la configuración que actualmente se está aplicando en nuestro sistema y el fichero interfaces.base contiene la configuración base de las interfaces. Ésta configuración base es la que utiliza el sistema por defecto porque cuando se levanta, vuelca el contenido del fichero interfaces.base en el fichero interfaces. Por esto, si nosotros cambiamos solo el fichero interfaces, cuando el sistema se reinicie nuestros cambios se perderán y serán sustituidos por el contenido del fichero interfaces.base.
Como en mi caso solo uso Recalbox mediante wifi, el apartado auto eth0 correspondiente a la interface ethernet en ambos ficheros estará como viene por defecto. La configuración de la interfaz wifi wlan0 que yo he configurado tiene la IP 10.0.100.40, la máscara de red 255.255.255.0, la puerta de enlace por defecto 10.0.100.1 y coge la información característica de la red, tales como el ssid, la clave psk,...etc del fichero /etc/wpa_supplicant/wpa_supplicant.conf. A continuación muestro como quedan tanto el fichero interfaces como el fichero interfaces.base (tendrán el mismo contenido):

> nano /etc/network/interfaces

# Configure Loopback
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.0.100.40
netmask 255.255.255.0
gateway 10.0.100.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


> nano /etc/network/interfaces.base

# Configure Loopback
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet static
address 10.0.10.40
netmask 255.255.255.0
gateway 10.0.10.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


Una vez que tenemos las interfaces correctamente configuradas pasamos a configurar el contenido del fichero /etc/wpa_supplicant/wpa_supplicant.conf que contiene la configuración especifica de la wifi a la que nos vamos a conectar. A continuación pongo el contenido que tiene que tener este fichero tanto para redes WPA como para WPA2, teniendo solo que modificar los apartados ssid con el nombre de nuestra red (en mi caso CASA ) y psk con nuestra contraseña (en mi caso Hola$).

> nano /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/
update_config=1
network={
ssid="CASA"
scan_ssid=1
psk="Hola$"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
auth_alg=OPEN
}


Para finalizar, Recalbox tiene también un fichero de configuración propio donde se encuentran todos los parámetros de configuración relativos a él. Tendremos que modificar, en el apartado Network, la etiqueta wifi.ssid con nuestro ssid y wifi.key con nuestra contraseña (cuidado que si tenemos caracteres especiales deberemos escaparlos con ‘\’):

> nano /recalbox/share/system/recalbox.conf

# ------------ B - Network ------------ #
## Set system hostname
system.hostname=RECALBOX
## Activate wifi (0,1)
wifi.enabled=1
## Wifi SSID (string)
wifi.ssid=CASA
## Wifi KEY (string)
## Escape your special chars (# ; $) with a backslash : $ => \$
wifi.key=HolaXXXX\$
## Samba share
system.samba.enabled=1
### Virtual Gamepads
system.virtual-gamepads.
### SSH
system.ssh.enabled=1


Una vez que tenemos configurada nuestra interfaz de red solo nos faltará indicarle al sistema cual es la dirección de nuestro DNS. En Debian el DNS del sistema se almacena en el fichero /etc/resolv.conf pero en Recalbox este fichero se sobrecarga en el arranque con el contenido del fichero /tmp/resolv.conf, por ello modificaremos el contenido del fichero /etc/resolv.conf para que tenga el contenido adecuado en nuestro arranque actual y el archivo /etc/init.d/S40network para que en cada arranque sobrecargue el fichero /tmp/resolv.conf con el contenido que queremos que tenga el archivo /etc/resolv.conf. Para ello, el contenido de ambos ficheros quedará de la siguiente manera:

> nano /etc/resolv.conf

nameserver 8.8.8.8

> nano /etc/init.d/S40network

#!/bin/sh
#
# Start the wifi network if it has been configured
#
echo "nameserver 8.8.8.8" >> /tmp/resolv.conf
case "$1" in
  start)
        sleep 2
        /sbin/ifup lo
        /recalbox/scripts/recalbox-config.sh ethernet start
        /recalbox/scripts/recalbox-config.sh wifi start
        ;;
  stop)
        echo -n "Stopping network..."
        /sbin/ifdown -a
        killall wpa_supplicant
        ;;
  restart|reload)
        "$0" stop
        "$0" start
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?


Siguiendo estos pasos tendremos correctamente configurada nuestra interfaz wifi en Recalbox con una IP fija para redes tanto WPA como WPA2.

No hay comentarios:

Publicar un comentario