sábado, 4 de julio de 2015

Raspberry Pi, conexión a internet con WiFi. Primeros pasos con Raspbian Wheezy (VIII).

Conexión a internet con Wi-Fi.

Escoger un adaptador

También podemos conectar nuestra RaspberryPi a través de una conexión Wi-Fi, sin embargo, para ello necesitaremos adquirir un adaptador USB para redes inalámbricas. Existen muchos adaptadores compatibles pero tenemos que tener en cuenta algunos aspectos. 

  • En primer lugar para asegurarnos que el adaptador es compatible con nuestro dispositivo RaspberryPi podemos consultar la siguiente dirección web:
  • En segundo lugar hay que tener en cuenta qué tipo de red inalámbrica tenemos en casa, las redes inalámbricas se clasifican o definen según un número y letra, como por ejemplo, 802.11a, 802.11g, al adquirir un adaptador USB para red inalámbrica debemos cerciorarnos que el adaptador es compatible con nuestra red, en caso contrario no funcionará.
  • En tercer lugar es importante comprobar que el USB para red inalámbrica soporta la frecuencia de transmisión. Por ejemplo si nuestro adaptador USB está diseñado para trabajar con una red de 2,4 GHz no podrá conectarse a una red que funcione a 5GHz.
  • En cuarto lugar hay que tener en cuenta el tipo de cifrado de nuestra red inalámbrica, los adaptadores USB más modernos soportan todos los tipos de cifrado pero otros no, los más comunes son el cifrado WEP, WPA i WPA2. También debemos cerciorarnos que el adaptador soporta el tipo de cifrado de nuestra red.
Otro aspecto a tener en cuenta es que los adaptadores Wi-Fi consumen bastante energía si al encender nuestro dispositivo y conectar el adaptador USB la RaspberryPi se reinicia o se vuelve inestable, en primer lugar debemos verificar que el transformador de alimentación proporciona suficiente energía, en caso contrario podemos cambiar el transformador de alimentación o bien conectar un concentrador USB con alimentación de corriente propia a la RaspberryPi y conectar nuestro adaptador USB de red inalámbrica a este concentrador.




Instalar el adaptador USB Wi-Fi

Instalar un adaptador Wi-Fi con Raspbian es muy sencillo, encenderemos la RaspberryPi y accederemos al modo de escritorio, si estamos en modo consola introduciremos la orden startx y presionaremos la tecla intro del teclado.

Una vez veamos el escritorio en pantalla podemos conectar nuestro adaptador USB para Wi-Fi, si usamos un adaptador compatible (la mayoría de adaptadores lo son) se instalará sin problemas de forma automática.

Conectar la RaspberryPi a la red con el USB Wi-Fi

Ahora abriremos la utilidad Wifi Config que Raspbian lleva incorporada. Si no tenemos un acceso directo en el escritorio deberemos buscarla en Menú-Preferencias-Wifi configuration (según la versión de Raspbian esta ubicación puede variar)



Aparecerá una pantalla como la que vemos a continuación.



Si en el apartado Adapter aparece wlan0, significa que el adaptador USB ha sido reconocido y instalado correctamente. Ahora podemos hacer click en el botón Scan para buscar las redes disponibles. Aparecerá una ventana como la que vemos a continuación, y seleccionaremos la red deseada con doble click.



Aparecerá otra nueva ventana en la que introduciremos la contraseña de la red en el campo PSK, y haremos click en el botón Add. Finalmente haremos click en el botón Connect de la pantalla principal.



Si todo es correcto ya tenemos nuestra RaspberryPi conectada a la red Wi-Fi.

Problemas para conectar a la red Wi-Fi. Mi red Wi-Fi no aparece en el listado de redes.

Es posible que al hacer click en el botón Scan no veamos nuestra red Wi-Fi, en primer lugar aseguraos que la Wi-Fi está activada, si es así posiblemente tengamos configurada nuestra red Wi-Fi en modo oculto, es necesario que desactivemos esta opción para que la red Wi-Fi sea visible para nuestra RaspberryPi, para ello es necesario acceder a nuestro router y desactivar la opción de red oculta, en algunos router existe un botón para activar/desactivar esta opción, esto hace que el SSID (o nombre de red) sea visible, una vez sea visible volveremos a escanear para localizar nuestra red Wi-Fi y conectarnos a ella tal y como he explicado antes.

Problemas para conectar a la red Wi-Fi. Mi red Wi-Fi si aparece en el listado de redes, pero no se puede establecer la conexión. 

En la mayoría de redes con DHCP el router le aasignará una IP a nuestro dispositivo, si nuestro router no dispone de esta opción o la tenemos desactivada hay que asegurarse de asignar una IP válida a nuestro dispositivo de forma manual. (más adelante lo explico)
Si utilizamos filtro a través de direcciones MAC (Media Access Control), tenderemos que añadir la dirección MAC de nuestra RaspberryPi en el router para que se pueda conectar.
Para localizar la MAC usaremos la orden ifconfig en una ventana de terminal, aparecerá una pantalla con información parecida a esta



En el grupo de líneas eth0 y wlan0  aparece el texto HWaddr seguido de la MAC para cada una de ellas.

Problemas para conectar a la red Wi-Fi. Mi dispositivo USB no aparece en la pantalla de Wifi Config.

Si nuestro adaptador no se ha instalado correctamente de forma automática y estamos seguros que se trata de un adaptador compatible seguiremos los siguientes pasos.

Para empezar nos aseguraremos que nuestra red Wi-Fi está visible, encenderemos nuestra RaspberryPi, una vez haya arrancado, si accedemos al modo de escritorio de Raspbian abriremos un terminal y seguidamente conectaremos el adaptador USB para la red inalámbrica. Algunos adaptadores llevan incorporado el firmware para funcionar o documentación que nos indica como hacerlo, en caso contrario al no tener instalado el firmware del adaptador se generarán unos mensajes de error. De todas las líneas de error que aparecerán debemos buscar la línea donde aparece la palabra Manufacturer que  es la que indica el fabricante del dispositivo, y deberemos instalar el firmware correspondiente. Si no podemos visualizar estas líneas de información al conectar el USB o no aparece ningún mensaje, en la terminal podemos usar la orden dmesg esta orden lista los mensajes de salida del kernel de linux entre los que estarán los mensajes de error que ha generado el conector USB al conectarlo, más o menos aparecerá una pantalla como la siguiente.



Si hay demasiados mensajes podemos filtrarlos, por ejemplo que solo aparezcan los mensajes que contengan la palabra usb, para ello utilizaremos la orden dmesg | grep usb, de esta forma solo aparecen los mensajes que contienen la palabra usb tal y como muestra la siguiente imagen (en la cuarta linea empezando por abajo podemos ver la linea Manufacturer que nos indica que el fabricante es Realtek).



(Si tampoco localizamos la linea deseada podemos filtrar por otras palabras como firmware, wlan o wireless)

Si con esta orden tampoco podemos visualizar la línea del fabricante podemos usar la orden lsusb en la terminal para visualizar una lista de todos los dispositivos usb conectados a la RaspberryPi, tal y como se muestra a continuación. (En la segunda línea empezando por abajo vemos que es un adaptador wlan de Realtek)



Una vez determinado el Manufacturer (fabricante) de nuestro adaptador USB para la red inalámbrica buscaremos el firmware que debemos descargar (os recuerdo que la RaspberryPi debe estar conectada a internet, si nuestro adaptador USB no funciona la tenderemos que conectar a través de un cable de red tal y como expliqué en el anterior post) para ello usaremos la orden apt-cache search xxxxx donde xxxx es el nombre del fabricante del USB que hemos localizado (en micaso Realtek). Esta orden devuelve una o más líneas con el nombre del firmware que debemos instalar, tal y como os muestro.



La orden de busqueda devuelven en este caso el nombre del paquete de firmware llamado firmware-realtek para el adaptador de red.
Para instalar el firmware encontrado en la terminal pondremos la orden sudo apt-get install xxxx-xxxx (donde xxxx-xxxx es el nombre del firmware en mi caso firmware-realtek tal y como os muestro en la imagen)



Esto instalará el firmware, seguidamente reiniciaremos la RaspberryPi, a continuación a través de la utilidad Wifi Config procederemos a conectar con la red Wi-Fi tal y como he explicado antes.

Problemas para localizar el firmware.

Si no somos capaces de localizar el firmware correspondiente os dejo una lista de los más comunes:

atmel-firmware  Para dispositivos chipset Atmel AT76C50X
firmware-atheros  Para dispositivos chipset Atheros
firmware-brcm80211  Para dispositivos chipset Broadcom
firmware-intelwimax  Para disposiitivos basados en chipset WiMAX de Intel
firmware-ipw2x00  Para dispositivos IntelProWireless (incluyen 2100, 2200 y 2915)
firmware-iwlwifi  Para otros adaptadores Intel (inluyen 3945, 4965 y serie 5000)
firmware-ralink  Para dispositivos chipset Ralink
firmware-realtek  Para dispositivos chipset Realtek
zd1211-firmware  Para dispositivos chipset ZyDAS 1211

podemos probar de instalar uno a uno los firmware que os he indicado y averiguar cual corresponde a nuestro adaptador USB. Si nos equivocamos y queremos desinstalar el firmware solo tendremos que usar la orden sudo apt-get remove xxxx-xxxx (donde xxxx-xxxx es el nombre del firmware) Después de instalar o desinstalar cada firmware or recomiendo reiniciar la RaspberryPi, para comprobar si hemos instalado el firmware correcto o para asegurarnos que la desisntalación se completa.

Problemas para instalar el firmware. Mi RaspberryPi no tiene conexión a internet.

Si nuestra RaspberryPi no tiene conexión a internet deberemos descargar en otra máquina el paquete de instalación luego pasar este paquete a la RaspberrPi, por ejemplo con un USB y instalarlo desde la terminal con la orden sudo apt-get install xxxxx (donde xxxx es el nombre del paquete que hemos descargado por ejemplo firmware-ralink_0.35_all.deb)

Ahora reiniciaremos la RaspberryPi, si todo es correcto el adaptador USB para red inalámbrica estará listo para funcionar.


Establecer una IP fija para nuestra conexión Wi-Fi

La utilidad Wifi Config modifica el fichero /etc/network/interfaces (según la versión de Raspbian la ubicación y/o nombre del archivo puede variar). Si queremos establecer una IP fija (tal y como hicimos con la conexión con cable) tendremos que modificar este archivo. Desde una terminal ejecutaremos la orden sudo nano /etc/network/interfaces, aparecerá en pantalla el contenido del fichero tal y como os muestro.



Las líneas que hacen referencia a la configuración de red de la Wi-Fi, están en la parte inferior, serán parecidas a estas

auto wlan0
iface wlan inet dhcp
wpa-conf /etc/wpa.conf

Si queremos que la IP sea fija modificaremos algunas lineas. En la linea iface wlan inet dhcp cambiaremos dhcp por manual y añadiremos otras líneas tal y como os muestro

auto wlan0
iface wlan inet manual
wpa-conf /etc/wpa.conf
iface default inet static
    address 192.168.0.123
    netmask 255.255.255.0
    gateway 192.168.0.1

Esta configuración asigna la ip fija 192.168.0.123 a la conexión Wi-Fi de nuestra RaspberryPi. La linea gateway corresponderá a la IP de nuestro router o cable-módem. La netmask está definida según el tamaño de red a la que nos conectamos. (Tal y como vimos en el anterior post). Aseguraos de que estas tres lineas tienen delante un espacio creado con la tecla tabulador.

Una vez modificado el archivo presionaremos CTRL+O y seguidamente la tecla intro del teclado para guardar, y luego CTRL+X para salir del editor nano.

Problemas. Mi RaspberryPi no pude conectarse si en el router oculto la red Wi-Fi.

Es posible que al ocultar la red Wi-Fi la RaspberryPi no se pueda conectar de nuevo a la red Wi-Fi. Para solucionarlo podemos modificar el archivo de conexión de la utilidad Wifi Config. 
La ubicación de este archivo está en el fichero de configuración interfaces. Con la orden sudo nano /etc/network/interfaces aparecerá en pantalla el contenido del fichero tal y como os muestro.



En el apartado de la configuració Wi-Fi (que corresponde al segundo grupo de lineas)  encontramos una línea parecida a esta: 

wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

Esta línea muestra la ubicación de otro archivo que modifica la utilidad Wifi Config (la ubicación y el nombre puede variar según la versión de Raspbian)
Editaremos este archivo con la orden sudo nano /etc/wpa_supplicant/wpa_supplicant.conf, se abrirá una pantalla como la siguiente.



En este archivo está la configuración de la conexión a la red Wi-Fi
Si en el archivo no aparece la línea scan_ssid=1, la RaspberryPi no se puede conectar a una red oculta. Añadid esta línea con un tabulador delante, presionaremos CTRL+O y seguidamente la tecla intro del teclado para guardar, y luego CTRL+X para salir del editor nano.

Podemos reiniciar la RaspberryPi para comprobar que se conecta a nuestra red oculta.