Introducción
La comunicación wireless es cada vez más natural en cualquier tipo de infraestructura y/o topología de red. Es una característica que pasó de ser un opcional a ser un excluyente en cualquier dispositivo portátil o móvil.
GNU/Linux tiene, como cualquier otro sistema operativo moderno, soporte para dicha tecnología. Pero está limitado, como es normal, a la disponibilidad de los drivers necesarios para un correcto manejo del hardware. Y esta limitación está determinada por factores como el vendor (Si el fabricante del hardware dá soporte para plataforma Linux), o la misma comunidad (Si la comunidad es capaz de organizarse para desarrollar con o sin el apoyo del Vendor, los controladores necesarios).
En este sentido es donde comencé a notar una falta de información sobre el estado y los recursos disponibles, referente al soporte wireless en Linux de tal o cual placa de red o chipset. Esta es la razón de este Post, intentar delinear cierta metodología para todos aquellos que estén interesados en aprender sobre esta tecnología en Linux o simplemente aquellos usuarios que se encuentran ante un problema en el soporte de su actual distribución de Linux sobre el hardware wireless en su equipo.
Linux Wireless Extension & Wireless Tools
Estos paquetes son un proyecto OpenSource apadrinados por el Hewlett Packard y la contribución de Jean Tourrilhes desde 1996 y desarrollado con la contribución de varios usuarios de Linux alrededor del mundo entero.
Wireless Extension (WE) es un API genérica que permite a un driver, exponer al usuario un espacio de configuración y estadísticas especificas comunes a las redes wireless.
Wireless Tools (WT) es un set de herramientas que permiten manupilar las Wireless Extensions. Estas herramientas poseen una interfaz por linea de comandos. Algunas de las herramientas que podremos encontrar en este paquete son:
- iwconfig: Permite manipular los parámetros wireless básicos.
- iwlist: Permite escanear y listar frecuencias, bit-rates, llaves de encriptacion, etc.
- iwspy: Permite medir la calidad del link de cada nodo.
- iwpriv: Permite manipular la Extension Wireless especifica de cada driver.
- ifrename: Permite nombrar interfaces basados en varios criterios estaticos.
La mayoría de las distribuciones de Linux vienen con soporte integrado para Wireless Extensions, junto con alguna versión de Wireless Tools. Nosotros vamos a instalar la ultima version de este paquete en un Kubuntu 9.10, dado que el soporto para la placa wireless Atheros que posee mi notebook Toshiba no funciona adecuadamente con esta distribucion:
mefhigoseth@dorita-laptop:~$ cd /usr/src mefhigoseth@dorita-laptop:/usr/src $ sudo wget http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz --2010-03-21 18:39:13-- http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz Resolviendo www.hpl.hp.com... 192.6.19.80 Conectando a www.hpl.hp.com|192.6.19.80|:80... conectado. Petición HTTP enviada, esperando respuesta... 200 OK Longitud: 294417 (288K) [application/x-gzip] Guardando: «wireless_tools.29.tar.gz» 100%[=============================================================================================================================>] 294.417 11,6K/s en 18s 2010-03-21 18:39:31 (16,2 KB/s) - `wireless_tools.29.tar.gz' guardado [294417/294417] mefhigoseth@dorita-laptop:/usr/src$ tar -zxf wireless_tools.29.tar.gz mefhigoseth@dorita-laptop:/usr/src$ cd wireless_tools.29 mefhigoseth@dorita-laptop:/usr/src/wireless_tools.29$ sudo make clean mefhigoseth@dorita-laptop:/usr/src/wireless_tools.29$ sudo make mefhigoseth@dorita-laptop:/usr/src/wireless_tools.29$ sudo make install
Si todo ha salido bien, ya deberiamos tener compiladas e instaladas las Wireless Tools.
Linux WPA/WPA2/IEEE 802.1X Supplicant
wpa_supplicant es un desarrollo de Jouni Malinen para Linux, BSD, Mac OS X y Windows con soporte para WPA y WPA2. Esta diseñado para ser un Demonio que corre en segundo plano y sirve de componente BackEnd que controla la conexión wireless.
Este paquete es el que vamos a instalar tambien, para tener soporte de redes Wi-Fi encriptadas bajo WPA o WPA2. wpa_suplicant utilizara las Wireless Extensions y las Wireless Tools anteriormente instaladas.
mefhigoseth@dorita-laptop:/usr/src$ sudo wget http://hostap.epitest.fi/releases/wpa_supplicant-0.6.10.tar.gz --2010-03-21 19:06:35-- http://hostap.epitest.fi/releases/wpa_supplicant-0.6.10.tar.gz Resolviendo hostap.epitest.fi... 128.177.27.249 Conectando a hostap.epitest.fi|128.177.27.249|:80... conectado. Petición HTTP enviada, esperando respuesta... 200 OK Longitud: 1190391 (1,1M) [application/x-gzip] Guardando: «wpa_supplicant-0.6.10.tar.gz» 100%[=============================================================================================================================>] 1.190.391 30,6K/s en 27s 2010-03-21 19:07:09 (42,3 KB/s) - `wpa_supplicant-0.6.10.tar.gz' guardado [1190391/1190391] mefhigoseth@dorita-laptop:/usr/src$ cd wpa_supplicant-0.6.9/ mefhigoseth@dorita-laptop:/usr/src/wpa_supplicant-0.6.9$ cd wpa_supplicant/ mefhigoseth@dorita-laptop:/usr/src/wpa_supplicant-0.6.9/wpa_supplicant$ sudo make clean mefhigoseth@dorita-laptop:/usr/src/wpa_supplicant-0.6.9/wpa_supplicant$ sudo make mefhigoseth@dorita-laptop:/usr/src/wpa_supplicant-0.6.9/wpa_supplicant$ sudo make install
Si todo ha salido bien, tendremos compilado e instalado wpa_supplicant
The MadWifi Project
El proyecto MadWifi es un equipo de desarrolladores voluntarios que trabaja en drivers para el Kernel de Linux de dispositivos Wireless LAN con chips Atheros. Actualmente, este proyecto provee de tres drivers: MadWifi, ath5k y ath9k
MadWifi es uno de los mas avanzados drivers WLAN disponibles para Linux, hoy. El driver en si, es OpenSource, pero depende de un HAL (Hardware Abstraction Layer) propietario que se distribuye directamente como binario únicamente.
MadWifi es el acronimo de MultiBrand Atheros Driver for Wireless Fidelity. Es un controlador de dispositivo para el kernel de Linux cuyo trabajo es hacer que nuestra placa WLAN figure como una interfaz de red convencional en nuestro sistema. Adicionalmente, posee soporte para la API de las Wireless Extensions. Esto nos permite configurar todos los aspectos de nuestro dispositivo a traves de las Wireless Tools.
Para instalar este driver, solamente necesitamos descargarlo y compilarlos como los anteriores paquetes:
mefhigoseth@dorita-laptop:/usr/src$ sudo wget http://snapshots.madwifi-project.org/madwifi-0.9.4-current.tar.gz --2010-03-21 19:56:31-- http://snapshots.madwifi-project.org/madwifi-0.9.4-current.tar.gz Resolviendo snapshots.madwifi-project.org... 217.24.1.134 Conectando a snapshots.madwifi-project.org|217.24.1.134|:80... conectado. Petición HTTP enviada, esperando respuesta... 200 OK Longitud: 3534053 (3,4M) [application/x-gzip] Guardando: «madwifi-0.9.4-current.tar.gz» 100%[=============================================================================================================================>] 3.534.053 14,7K/s en 4m 27s 2010-03-21 20:00:59 (12,9 KB/s) - `madwifi-0.9.4-current.tar.gz' guardado [3534053/3534053] mefhigoseth@dorita-laptop:/usr/src$ cd madwifi/ mefhigoseth@dorita-laptop:/usr/src/madwifi$ sudo make clean mefhigoseth@dorita-laptop:/usr/src/madwifi$ sudo make mefhigoseth@dorita-laptop:/usr/src/madwifi$ sudo make install
Si todo nos ha salido bien, tendemos compilado e instalado en driver MadWifi.
Notas
El ultimo paso es prevenir que el sistema operativo carge el modulo de kernel ath5k
(ya que la instalacion del modulo madwifi no lo reemplaza ni lo desinstala) y forzar asi a que utilice nuestro nuevo modulo ath_pci
. Para eso, basta con agregar las siguientes dos lineas al final del archivo /etc/modprobe.d/blacklist.conf
.
# replaced by Mad-WiFi blacklist ath5k
Reiniciamos el equipo, y luego verificamos que el sistema ya este funcionando con los nuevos modulos. Ejecutamos:
mefhigoseth@dorita-laptop:~$ lsmod | grep ath ath_rate_sample 8385 1 ath_pci 64829 0 wlan 142974 5 wlan_tkip,wlan_scan_sta,ath_rate_sample,ath_pci ath_hal 187797 3 ath_rate_sample,ath_pci
A partir de este momento, ya tendremos disponible nuestra placa de red inalambrica funcionando y visible por nuestro sistema operativo. Ahora solo tenemos que utilizar alguna de las herramientas que nos da nuestra distribucion para conectarnos a la red de nuestra preferencia.
Referencias
Wireless Tools for Linux [http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html]Linux WPA Supplicant [http://hostap.epitest.fi/wpa_supplicant/]
The MadWifi Project [http://madwifi-project.org/]
Linux Wireless [http://linuxwireless.org/]
Quick HOWTO : Ch13 : Linux Wireless Networking - Linux Home Networking [http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch13_:_Linux_Wireless_Networking]
Buen post, muy útil!
[...] (Si el fabricante del hardware dá soporte para plataforma Linux), o la misma comunidad (Si la ... Read More RECOMMENDED BOOKS REVIEWS AND OPINIONS linux: wireless tools {scan, [...]