martes, 22 de julio de 2014

configurar tp-link TL-WN725N v2 con wpa2 y dhcp en una raspberry pi con raspbian


Raspberry Pi es un ordenador de tamaño reducido (aproximadamente del tamaño de una tarjeta de crédito). Su consumo de 2.5W (modelo A) o 3.5W (modelo B) y sus características hacen de él un aparato muy versátil.


Cuando compré la raspberry, también compré el adaptador nano usb wifi TP-LINK TL-WN725N, con el objetivo de poder conectar la raspberry a una red inalámbrica cuando fuese necesario.

Actualmente, hay dos versiones de este adaptador: La v1 y la v2. Mientras que la v1 funciona directamente, para conseguir que funcione la v2 hay que instalar el driver. Para conectarnos con la raspberry pi a una red con DHCP protegida con WPA2-PSK utizando el adaptador nano usb wifi TP-LINK TL-WN725N bajo raspbian hay que realizar los siguientes pasos:

  1. Descargar e instalar el driver
    1. Averiguar la versión del kernel de raspbian

      Para concer la versión del kernel que está utilizando raspbian ejecutamos el comando:

      $ uname -r

    2. Descargar el driver

      La lista más completa de drivers la he encontrado en el blog de mendrugox, en la entrada: TP-LINK TL-WN725N v2 working on Raspberry Pi (Raspbian), donde se encuentran una lista con el driver para cada kernel y las instrucciones de instalación.

    3. Descomprimir el archivo

      Las últimas versiones del driver continen un fichero de módulo de kernel linux (.ko) y un fichero de firmware (.bin).

    4. Instalar el fichero de módulo de kernel linux

      # mv fichero.ko /lib/modules/version_del_kernel/kernel/drivers/net/wireless

    5. Instalar el fichero de firmware

      # mv fichero.bin /lib/firmware/rtlwifi/

    6. Añadir el módulo al kernel

      # depmod -a # modprobe 8188eu

      *Si al instalar el driver aparece el mensaje "Exec format error" es que la versión del driver no es la correcta para el kernel.

    7. Configurar la carga automática del módulo

      Editar el fichero /etc/modules (como root) y añadir la línea: 8188eu

    8. Reiniciar la raspberry

      # sudo reboot

  2. Configurar la red wifi
    1. Añadir la configuración al fichero /etc/network/interfaces

      Editar el fichero /etc/network/interfaces (como root) y añadir las siguientes líneas:

      allow-hotplug wlan0
      iface wlan0 inet manual
      wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
      iface default inet dhcp

      Consultar la información sobre la red

      # iwlist scan

      Este punto es muy importante. Con este comando se podemos consultar toda la información sobre una red wifi al alcance, por si tenemos alguna duda. Los puntos más importantes son los que nos ofrecen información sobre el tipo de cifrado utilizado:

      Group Cipher
      Pairwise Ciphers
      Authentication Suites

    2. Generar la clave WPA-PSK

      Vamos a generar una clave cifrada, para no dejar la clave de la red en plano en el fichero de configuración.

      # wpa_passphrase essid passphrase

      Anotamos la línea: psk=...

    3. Configurar wpa_supplicant

      Editar el fichero de configuración /etc/wpa_supplicant/wpa_supplicant.conf (O el que hayamos indicado en /etc/networking/interfaces) y añadir las siguientes líneas:

      network={
      ssid= nuestro_essid
      scan_ssid=1
      psk=clave_wpa_psk_generada_antes
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP TKIP
      group=CCMP TKIP
      }

      *En este apartado es dónde cobran importancia los datos sobre el cifrado de la red que hemos apuntado antes. Las configuraciones varían dependiendo del tipo de cifrado utilizado. Se puede encontrar más información en el man de wpa_supplicant

    4. Levantar la interfaz de red

      # ifup interfaz_de_red

Notas:

El driver USB utiliza memoria del kernel, y cuando el tráfico es muy alto, esta memoria se agota y causa cuelgues. Para solucionarlo hay dos alternativas:

  1. Adelantar la solicitud de memoria de página

    Para esto hay que editar el fichero /etc/sysctl.conf y modificar el valor de la línea

    vm.min_free_kbytes = 8192

    para dejarla:

    vm.min_free_kbytes = 16384

  2. Limitar el ancho de banda

    Esta opción es la menos apetecible. Pero cuando no hay otra alternativa... Podemos limitar cómodamente el ancho de banda de una tarjeta de red podemos utilizar wondershaper.

    # wondershaper wlan0 kbps_bajada kbps_subida

Enjoy!

Fuentes

No hay comentarios:

Publicar un comentario