Como configurar WIFI en Linux

Llegamos a la parte practica sobre la correcta implementación de un equipo ya sea una PC o notebook con tecnología Wifi en donde configrara la placa de red inalámbrica puede llegar a ser un verdadero dolor de cabeza.

Para generar este informe me base en el testeo real de varias distribuciones GNU/Linux y su comportamiento con respecto a tecnologías wifi.
Y para complicarlo todavía mas utilizare una placa PCMCIA insertada en un notebook de características medias en cuanto a hardware.

Seguime en Twitter @arielmcorg

Comencemos.

La tecnología Wifi, o fidelidad inalámbrica representa libertad, y nos permite conectarnos a Internet desde el sillón en casa, o desde la cama en un hotel, o en un ámbito laboral,  placentero, sin utilizar cables. Todas las señales son transmitidas por el aire.

Hay muchas maneras para la configuración de nuestra placa y esto va estar totalmente ligado a nuestra distribución favorita instalada, algunas distros contaran con mayor o menor numero de herramientas gráficas disponibles.
En otras tendremos que lidiar con la consola y sus comandos, en algunas deberemos crear un script para iniciar nuestra placa wifi y otros escenarios mas de la mas grande diversidad.

Las distribuciones elegidas son Mandriva, Opensuse,  Kubuntu, Mepis, y Ubuntu. Todas en sus mas recientes versiones.

ACLARACION. La placa con la cual testeamos fue una placa genérica basada en el chipset realtek 8180 Pcmcia.

Para realizar la configuración y posterior instalación de una placa Wifi debemos antes que nada conocer algunos puntos importantes.
Como primera medida si la placa no es soportada por nuestra distribución tendremos que buscar los drivers provistos por el fabricante para el sistema operativo windows.

Si vieron bien, los driver de windows.

Desde ahora en adelante verán que para cargar un driver existe un muy famoso utilitario dentro de GNU/Linux que nos permite utilizar el archivo .inf mismo que utiliza windows para cargar el modulo de nuestra placa de red.

Emulando al enemigo…

Comencemos utilizando la aplicacion “ndiswrapper” siendo esta nuestro nexo entre Windows y Linux.
De forma imprescindible tendremos que contar con este utilitario en nuestro sistema.
Podemos ingresar al sitio oficial del proyecto:

Descargaremos Ndiswrapper de http://sourceforge.net/projects/ndiswrapper/
Aquí tenemos una lista completa de chipsets soportados:

http://ndiswrapper.sourceforge.net/mediawiki/index.php/List

y paso seguido localizamos los drivers windows de nuestra placa wireless para luego copiarlos en el disco rígido.
La ubicación no es primordial, en forma personal me gusta tener todo muy bien ordenado por lo cual dentro de /usr/local/ariel creó un directorio llamando wifi y ahí copio los .inf de mi placa.

Algunos requisitos previos

Para que nuestro sistema nos deje compilar el módulo Ndiswrapper necesitaremos tener instalados las wireless-tools y por supuesto los compiladores correspondientes a cada distribución (make y gcc).

Desempaquetado y compilación

Compilamos el driver de la forma habitual siempre dentro del sistema como root:

    # tar -zxvf ndiswrapper-x.xx.tar.gz
    # make
    # su
    # make install

Hasta este punto no deberíamos encontrarnos con ningún inconveniente, ahora solo resta instalar el modulo del driver.

Instalando el driver con Ndiswrapper

Una vez finalizada con éxito la compilación/instalación, paso seguido:

    # ndiswrapper -i /usr/local/ariel/wifi/NET8180.inf

ndiswrapper es el comando, “-i” es la orden de instalar y “/usr/local/ariel/xxxx.inf” la ruta completa donde se encuentra el driver windows.

Para comprobar que el driver este instalado podemos ejecutar el siguiente comando:

    # ndiswrapper -l
    net8180 present

Este comando nos brindara la información de que nuestro driver esta instalado.

Arrancando el módulo

Todo no termina aquí, ahora deberemos inicia el modulo para luego poder configurar nuestra placa Wireless

    # modprobe ndiswrapper

Para verificar que se cargo bien el modulo y por supuesto nuestra placa podemos ejecutar dos comandos, uno de ellos es “lsmod” donde obtendremos algo similar:

    # dmesg | grep wlan
    wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx

y como segunda opción podremos ejecutar el comando “iwconfig” en donde el sistema informara que no hay ip asignada a nuestra placa.

Configurando la red

Hasta acá configuramos nuestra placa para que se encuentre operativa, solo que no esta en funcionamiento, entonces vamos a ese punto.

IMPORTANTE. Para poder configurar de forma correcta nuestra placa de red debemos contar con datos sobre la red a utilizar.
Los datos son nombre de red ESSID clave WEB Key para el ingreso y tipo de red (IP disponible, o IP automática).
Una vez que obtenemos estos datos podemos continuar con la configuración.

Se preguntaran que comando puedo utilizar para configurar la IP de mi placa, acceso mediante clave,etc.
El comando es “iwconfig” con el obtendremos la siguiente salida por consola:

    # iwconfig
    wlan0 IEEE 802.11g ESSID:”USR9106″
    Mode:Managed Frequency:2.462GHz Access Point: 00:C0:49:D3:FE:F8
    Bit Rate:18Mb/s Tx-Power:14 dBm
    RTS thr:2347 B Fragment thr:2346 B
    Encryption key:off
    Power Management:off
    Link Quality:94/100 Signal level:-72 dBm Noise level:-256 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:154352 Invalid misc:368171 Missed beacon:0

De forma simple vemos una nueva interfaz de red llamada wlan0 que se corresponde con nuestra tarjeta wireless. Solamente queda configurar la red. Para ello utilizaremos los siguientes comandos (como root):

Activamos el modo Managed

    # iwconfig wlan0 mode Managed

Ingresamos la contraseña de la red (omitimos si no sabemos lo que es)

    # iwconfig wlan0 key restricted XXXXXXXX

Y para terminar la configuración levantamos la red

    # iwconfig wlan0 essid ESSID (modificando ESSID por el nombre adecuado)
    # ifconfig wlan0 up (levantamos propiamente la red)

De esta manera si nuestro access point realiza la gestión de un servidor DHCP (IP Dinámicas) nosotros obtendremos una IP dentro del rango establecido por el concentrador.

Por el contrario si deseamos realizar una configuración manual de nuestra red y no valernos de nuestro access point (concentrador) vamos a utilizar el comando “ifconfig wlan0″ para cada funciona (IP estática o mismo el gateway de nuestra red).

Configurando las DNS

Antes de poder utilizar la placa wireles debemos configurar nuestros servidores DNS (un servidor DNS es quien brinda la información necesaria para resolver los nombres de dominios en Internet).
Utilizamos el siguiente comando:

    # echo “nameserver ” >>/etc/resolv.conf
    # echo “nameserver ” >>/etc/resolv.conf

Reemplazando la palabra nameserver por las direcciones IPs correspondientes.

Listo nuestra placa se encuentra funcionando de forma totalmente óptima, solo que ustedes dirán ingresar tantos comandos no es muy apropiado a la hora de configurar un equipo que se conecta de forma quizás temporal en un determinado local con acceso a wifi, patio de comidas, shopping, etc.
Y la respuesta es totalmente cierta.
La función de saber como se utiliza el comando ndiswrapper es quizás la forma mas rudimentaria de configuración, y como regla de oro vamos a ir de la forma mas difícil hasta la mas simple.

Automatizando la configuración con un script de bash

En GNU/Linux no existe una solo forma de realizar las tareas, y este no va ser el caso de romper esa regla, es por eso que vamos a ingresar tres opciones de script para que nuestros lectores puedan tomar el que mas sea de su agrado.

1. Un script simple donde levantamos el modulo ndiswrapper, hacemos lo mismo con el modo, ingresamos la clave, (key restricted) y el nombre de la red (linksys es nuestro nombre de red no todas se llaman de esa manera)  para que nuestro access point o servidor DHCP de la red nos brinde la IP necesaria.

#!/bin/sh
# Caso 1 para sustituir valores sin importar donde nos encontremos.
modprobe ndiswrapper
    iwconfig wlan0 mode managed
    #iwconfig wlan0 key restricted xxxxx
    iwconfig wlan0 essid linksys

2. Vamos añadiendo mas configuraciones a nuestro script y este es muy completo como para utilizar dentro de una red local fija donde se define los mismos valores anteriores sumando se la asignación de una IP fija libre en nuestra red, y el gateway o pasarela hacia Internet.

#!/bin/sh
# Caso 2, ideal para red local donde los datos para la conexión no varía nunca.
modprobe ndiswrapper
    iwconfig wlan0 mode managed
    #iwconfig wlan0 key restricted xxxxx
    iwconfig wlan0 essid linksys
    ifconfig wlan0 up 192.168.0.16
    route add default gw 192.168.0.254

3. Este caso es el mas completo y nos servirá para poder activar o desactivar nuestro equipo dentro de una red inalámbrica ya sea en un punto fijo como en un local de paso con acceso a wifi.
Con este script haciendo uso de los comandos “start” y “stop” podemos subir o bajar nuestra configuración wifi. El ejemplo que se incluye es una combinación de el anterior con los comandos start/stop.

#!/bin/sh
# Script ideal para ser añadido en los init de nuestra distro
case “$1″ in
‘start’)
    modprobe ndiswrapper
    iwconfig wlan0 mode managed
    #iwconfig wlan0 key restricted xxxxx
    iwconfig wlan0 essid linksys
    ifconfig wlan0 up 192.168.0.16
    route add default gw 192.168.0.254
    ;;
‘stop’)
    ;;
*)
    echo “Usage: $0 { start | stop }”
    ;;
esac
exit 0

IMPORTANTE. Vimos en estos tres ejemplos como configurar nuestra placa wireles, y en ningún momento hablamos del driver. Esta respuesta es simple de responderla ya que una vez instalada no debemos hacer esa operación nuevamente.
Caso contrario con la configuración del modulo y de la placa en la red, estas configuraciones cuando nuestra PC reinicia se pierden, es por eso que les mostramos la realización de los script.
Los scripts pueden ser escritos con cualquier editor de texto con la extensión .sh (siempre como usuario root) y luego modificados los permisos con el comando “chmod 755 /ruta_completa_scrit”.

Hasta aquí vimos una forma de configurar nuestra tarjeta wireles, ahora vamos a ver una forma de hacerlo en base a los entorno gráficos  y sus utilitarios.

Configurando desde la parte gráfica

Antes de continuar con la explicación debemos aclarar que si o si en cualquiera de los casos que explicamos debemos tener instalado el driver con ndiswrapper.
Luego la carga del modulo como posterior configuración se realizara según nuestra herramienta de configuración.

Vamos a la herramienta clásica incluida en cualquier distribución GNU/Linux con entorno gráfico KDE.
Kcontrol es la suite de configuración en el entorno KDE y con el vamos a poder configurar la placa wireles sin problemas y además como adicional la posibilidad de contar con tres configuraciones alternativas.

Una imagen puede mas que mil palabras…

En esta figura vemos la captura de la distribución Mepis con su correspondiente centro de control Kcontrol y la configuración wifi. De forma simple podemos activar la placa de red wireles con solo añadir el nombre de nuestra red inalámbrica.

En esta figura vemos la configuración mas especifica de una determinada red wifi ya basada en un numero “conf1″. Si observamos veremos hasta 3 configuraciones mas alternativas, el modulo de nuestra placa que con solo hacer clic en autodetect es detectado, el nombre de la red, y la velocidad de nuestra red.

Configuración completa en KDE

En tres imágenes veremos como configurar desde cero una placa wifi sobre el entorno gráfico KDE con la distribución Kubuntu y sus utilidades.

Simplemente abrimos una consola desde KDE con la combinación de teclas ALT + F2 + konsole e ingresamos primero el comando ndiswrapper -i para la instalación del driver, luego levantamos el modulo con el comando modprobe ndiswrapper y cerramos la consola.

En esta figura vemos un utilitario incluido en la mayoría de las distribuciones con entorno gráfico KDE llamada KWiFiManager, con ella y una vez realizada la operación anterior veremos la señal de nuestra red expresada en MBits, luego con solo hacer clic en buscar redes veremos las disponibles.
Desde ahí mismo podremos seleccionarla o bien configurarla mediante la solapa preferencias.
Los datos necesarios ya los sabemos solo resta ingresar en la red.

Volvimos a la suite “kcontrol” donde podemos realizar la configuración directa del dispositivo de red wifi de forma manual.

En las tres figuras anteriores hablamos de como configurar nuestra placa en el entorno gráfico KDE, ahora es el turno de GNOME.
Si bien no tiene el mismo atractivo que KDE la configuración es bastante similar como también simple, para ella vamos a utilizar la distribución Ubuntu.
Desde GNOME vamos a dirigirnos a sistema, administración y luego a redes para encontrarnos que nuestra PC detecto ya una placa de red wireless conectada pero no configurada.
De forma simple vamos a la solapa propiedades para continuar con la siguiente imagen.

La ventana desplegada es mas que simple de comprender a esta altura del articulo, solo debemos completar con los datos necesarios para configurar y activar nuestra placa en la red inalámbrica reinante.

Configuración en base a distribuciones

Mandriva
Esta popular distribución GNU/Linux tiene algunas características muy destacadas, una de ellas es la gran cantidad de herramientas gráficas para realizar la configuración de toda la suite.
De esta manera la configuración de una placa wireless no podía quedar fuera de su alcance, entonces veamos como deben realizar las configuraciones nuestros usuarios de Mandriva…

Mandriva tiene un centro de control por muchas distribuciones admirado, y este es “drakconf” en el podremos configurar prácticamente todo nuestro equipo sin olvidarnos de nada.
Pero sobre redes wifi vamos a encontrarnos dentro de “redes e internet” la opción “conexión inalámbrica” haciendo clic en ella entraremos en la configuración de nuestra red/internet.

Paso seguido vamos hacer clic en conexión inalámbrica para poder continuar con la configuración.

Como muestra la figura vemos que Mandriva detecto la placa de red solo que no la configuro de forma automática por no estar incluida en su núcleo.
De esta manera no vamos a desligarnos de ndiswrapper, así que busquemos el CD que vino con la placa y pasemos al siguiente paso.

Vemos en la parte superior como Mandriva solicita instalar ndiswrapper, una vez que fue instalado hacemos clic en usar controlador de windows para continuar con el siguiente paso.

Al mejor estilo Mandriva facilitando las operaciones ya no es necesario copiar nuestro driver en el disco ella se encarga de buscar directamente de la unidad de CDrom examinando hasta encontrarlo.
Hacemos clic en el .inf correspondiente para continuar con el siguiente paso.

Sin mucha explicación la única opción es aceptar el driver para nuestra placa que habíamos seleccionado previamente. Y de esta forma terminamos de configurar la placa wireless sin mayores contratiempos.
Luego podremos dirigirnos a configurar la placa desde drakconf o bien desde kcontrol total decisión del usuario.

OpenSuse
Esta popular distribución GNU/Linux cuenta con una herramienta de configuración llamada “yast2″ con ella de la misma manera que Mandriva vamos a poder configurar nuestra placa wireless.
La gran sorpresa fue cuando vemos que Opensuse levanta los drivers de windows mediante ndiswrapper de forma casi podríamos decir nativa.
Sobre nuestra placa Pcmcia una vez incertada en su correspondiente slot nos solicito los Cds de instalación para completar la configuración.
Luego de haber instalado los paquetes necesarios la placa de red empezó a destellar con la correspondiente actividad wireless.

Veamos su configuración desde yast:

En esta figura vemos como desde yast configura de forma simple nuestra placa de red wlan0. Podemos realizar la
configuración de la IP en forma estática con todos sus correspondientes valores o bien valernos de un servidor DHCP.

Ya dentro de la configuración inalámbrica vamos a definir los datos necesarios para la configuración directa de nuestra PC en la red. Los valores ya los conocemos y solo debemos completarlos desde esta pantalla.
Luego de configurar y aplicar los cambios el sistema se encuentra listo para ser usado.

Ubuntu
De todas las distribuciones testeadas con mi notebook ninguna me resulto tan operativa para configurar la placa de red como Ubuntu.
Si bien todos los casos previos pueden funcionar en esta distro, se diferencia de las demás por incluir una utilidad que simplifica la vida a cualquier usuario nómade de wifi.
Wifi-radar es un servicio que corre de forma constante en nuestra PC/Notebook con la cual podremos obtener acceso a la configuración de una forma casi instantánea.

Con solo ejecutar ALT + F2 + wifi-radar se levanta un front-end gráfico con el cual podemos hacer clic en la red y proceder a la configuración de la misma sin muchos conocimientos.

En esta figura vemos varias redes inalámbricas próximas listas para ser utilizadas.

Bien, desde el principio se preguntaran: como cargo el driver, y el modulo.
Estas son dos buenas preguntas, las opciones son dos, una de ellas puede ser la forma manual con el ingreso de comandos/script, y la otra es una excelente aplicacion que podemos instalar con synaptic llamada “ndisgtk” basada en ndiswrapper pero en formato gráfico.
Con esta aplicacion podremos instalar el driver de windows, cargar el modulo y configurar la conexión a una red, o bien dejarla sin configurar para luego desde wifi-radar seleccionar la red. Y todo esto persistirá cuando vuelva a iniciar mi equipo sin perder nada de la configuración.
Una maravilla, veamos las imágenes…

En esta imagen lanzamos ndisgtk, no se encuentra definida ninguna placa wireless, para ellos vamos hacer clic en configure network.

Simple, navegamos hasta el driver para windows, hacemos clic en install y todo listo se instala además de cargar el modulo.

Ahora es el turno de configurar toda la conexión wireless, una vez instalada en propiedades de nuestra placa cargamos los datos necesarios para la óptima puesta en marcha de nuestra PC en la red.

CONCLUSION. En este informe trate de explicar como configurar una distribución GNU/Linux dentro de una red inalámbrica. Rompimos con el mito de que en GNU/Linux las operaciones son dificultosas y por supuesto brindamos toda nuestra experiencia en un tema tan comentado pero no explicado en detalle.

Seguime en Twitter @arielmcorg

Author: Ariel Corgatelli

Share This Post On