Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Área de Tecnologías de la Información y las Comunicaciones Aplicadas Universidad de Murcia
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
ATICA arrow Conexión a la Red arrow Red Inalámbrica arrow Config. Icarum arrow GNU/Linux
24.05.2012
 
 
Configuración de GNU/Linux para acceso a icarum con tecnología Intel Centrino Imprimir E-mail

Documento basado en "Cómo Centrino conoció a Ícaro", por Miguel Pérez Ibars. Original disponible aquí.

Siga los siguientes pasos en orden. Si no es la primera vez que accede a la Red Inalámbrica de la Universidad de Murcia, puede saltar al paso 6:

  1. Instalación de la tarjeta de red inalámbrica
  2. Configuración de la tarjeta de red inalámbrica
  3. Configuración del PC para usar DHCP
  4. Descarga del cliente de Redes Privadas Virtuales
  5. Instalación y configuración del cliente de Redes Privadas Virtuales
  6. Conexión

1.- Instalación de la tarjeta de red inalámbrica

Elementos necesarios

  • Las fuentes del núcleo Linux de la serie 2.6. A partir de la versión 0.55 del driver ipw2100 el soporte para núcleos de la serie 2.4 desaparece por falta de tiempo en el mantenimiento (eso dicen). Ésta puede ser la excusa que necesitabas para pasarte definitivamente a esta joya tecnológica que es el núcleo 2.6.x. Necesitaremos configurar algunas opciones para sacarle partido a la tarjeta, además de que sin las fuentes (o al menos sin las cabeceras) no podemos compilar el driver. La última versión del núcleo de Linux está siempre disponible en ftp.kernel.org; en nuestro caso utilizaremos la URL
    ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
  • Las fuentes del driver ipw2100. Tendremos que compilarlo e instalarlo para que el núcleo pueda comunicarse con la tarjeta inalámbrica. Podemos obtener siempre la versión más reciente de
    http://ipw2100.sourceforge.net/downloads.php
  • El firmware de la tarjeta. Es requerido por el driver para funcionar y es cargado en la tarjeta durante el arranque por los scripts de hotplug. La imagen binaria y propietaria de este firmware la obtenemos de
    http://ipw2100.sourceforge.net/firmware.php
    Aseguraos de descargar la versión correcta para la versión del driver que escojáis.
  • El paquete wireless-tools. Nos proporcionará herramientas para configurar parámetros de la red inalámbrica tales como el nombre de red o essid, el modo de funcionamiento de la tarjeta, la clave WEP, etc. Para obtener este paquete ojea primero los discos de tu distribución por si ya lo tuvieras, en caso contrario puedes acudir a la web de rpmfind y buscar allí el paquete con los binarios para tu distribución. Si usas Debian ya sabrás utilizar apt-get (wireless-tools está para stable, testing y unstable) y si usas Gentoo pues adivina... De todas formas siempre puedes acudir a la web del autor de las wireless-tools Jean Tourrilhes:
    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
    y obtener allí el código fuente. Sigue los pasos indicados en el fichero INSTALL para la instalación.
  • El paquete hotplug. Son una serie de scripts que permiten conectar un dispositivo y tenerlo funcionando al instante, cargando los módulos necesarios. Muchos de vosotros tal vez lo conozcáis ya si habéis tenido que configurar el pendrive, pues los módulos ehci, uhci, ohci, etc. son cargados por hotplug. Nosotros lo utilizaremos para cargar el firmware de la tarjeta. Para obtener hotplug aplica el mismo algoritmo que en el punto anterior con las wireless-tools. De todas formas hotplug es un paquete bastante común y es frecuente encontrarse con él ya instalado. Para averiguarlo sólo tienes que hacer `ls /sbin/hotplug`. La web de hotplug la tenéis en
    http://linux-hotplug.sourceforge.net

Instalar la tarjeta inalámbrica

En este apartado veremos todos los pasos a seguir para que nuestro sistema GNU/Linux reconozca la tarjeta de red inalámbrica de nuestra máquina Centrino. Tras finalizar el recorrido por todos ellos seremos capaces de cargar el driver y conocer todas las redes que nuestra tarjeta es capaz de rastrear. Puesto que vamos a hacer labores de administración del sistema no hace falta decir que en todo momento debemos estar actuando como superusuario.

Configurando el núcleo

Como ya hemos dicho usaremos un núcleo de la serie 2.6. A continuación se listan las opciones a marcar en la etapa de configuración del núcleo (make config/menuconfig/gconfig) junto con la explicación de cada una de ellas.

 CONFIG_MODULES
 Loadable module support ->
 [*] Enable loadable module support

Vamos a construir el driver como módulo, no dentro de un núcleo monolítico, así que necesitaremos el soporte para módulos.

 CONFIG_KMOD
 Loadable module support ->
 [*] Automatic kernel module loading

Si seleccionamos esta opción algunas partes del núcleo podrán cargar módulos automáticamente sin necesidad de que se lo indiquemos nosotros en línea de comandos con modprobe.

 CONFIG_HOTPLUG
 General Setup ->
 [*] Support for hot-pluggable devices

Si quieres "enchufar" dispositivos y tenerlos funcionando al instante, ya sea una tarjeta PCMCIA, un pendrive o un ratón USB, marca esta opción junto a la anterior. Para sacarle partido necesitarás también el paquete hotplug.

 CONFIG_FW_LOADER
 Device Drivers ->
 Generic Driver Options ->
 [*] Hotplug firmware loading support

Esta opción es necesaria cuando vamos a tener módulos externos al núcleo que necesitan cargar algún firmware para funcionar, como es el caso del driver ipw2100.

 CONFIG_NET_RADIO
 Device Drivers ->
 Networking Support ->
 Wireless LAN (non-hamradio) ->
 [*] Wireless LAN drivers & Wireless Extensions

Habilita las Wireless Extensions, que son la interfaz que utiliza las wireless-tools, que recordemos nos permiten ajustar parámetros de la red inalámbrica.

 CONFIG_CRYPTO, CONFIG_CRYPTO_ARC4, CONFIG_CRC32
 Cryptographic options ->
 [*] Cryptographic API ->
 [*] ARC4 cipher algorithm
 [*] CRC32

Apartir de la versión 0.47, el driver ipw2100 utiliza los algoritmos de cifrado WEP proporcionados por el núcleo. Habilitando estas opciones tendremos disponible el cifrado WEP en nuestras comunicaciones con el driver ipw2100. No son necesarias para conectar con Icarum aunque sí podrían interesarte para montar alguna red pequeña en casa.

Una vez salvada la configuración compilamos el núcleo con nuestro conjuro favorito y lo instalamos, sin olvidar que no debemos borrar las fuentes porque las necesitaremos más tarde.


Construir el módulo

Esta parte es más sencilla. Desempaquetamos el fichero que contiene el código fuente del driver con la siguiente secuencia de comandos:

 # cp ipw2100-x.xx.tgz /usr/src/
 # cd /usr/src
 # tar xvzf ipw2100-x.xx.tgz
 # cd ipw2100-x.xx

La instalación es tan sencilla como

 # make
 # make install

No olvides tener el código fuente del núcleo que acabas de compilar bajo /usr/src. No es necesario que exista un enlace 'linux' al directorio de tus fuentes pero sí que estés ejecutando ese núcleo porque el fichero Makefile usará la ruta /usr/src/linux-`uname -r` para acceder a ellas. Si acabas de compilarlo y no lo has instalado aún da igual, no reinices, sólo tienes que añadir al primer make lo siguiente:

 KSRC=/ruta/al/directorio/con/las/fuentes

Si la instalación fue bien ahora tendremos un directorio en /lib/modules/`uname -r`/kernel/drivers/net/wireless llamado ipw2100 con los módulos construidos. Podéis obtener información de cada uno de ellos con la herramienta modinfo, por ejemplo:

 /sbin/modinfo ipw2100

Como nota interesante decir que cuando cargues el módulo más tarde (ahora no podrías) con modprobe la interfaz de red tendrá el nombre eth%d, donde 'd' es un número de interfaz libre. Probablemente preferirás un nombre más acorde con el tipo de interfaz, digamos wlan%d. Hay dos formas para hacer ésto: o bien pasas esta información como parámetro al cargar el módulo:

 modprobe ipw2100 if_name=wlan%d

o modificas el fichero fuente ipw2100.c tecleando esta línea en el directorio donde has descomprimido los fuentes del módulo:

 sed s/eth%d/wlan%d/g ipw2100.c > ipw2100.c.bueno; mv ipw2100.c.bueno ipw2100.c

De esta última manera vuelves a compilar y listo, cada vez que se cargue el módulo tu interfaz tendrá el nombre por defecto wlan0 (es poco probable que tengas más interfaces inalámbricos). El problema del primer método es que como verás a continuación, el módulo ipw2100 será cargado por hotplug automáticamente mediante una serie de scripts y resulta un tanto difícil meter mano a esos scripts. Así que el segundo método parece más razonable; pero no olvides volver a compilar e instalar tras el cambio.

Cargar el firmware

Para que el driver funcione es necesario que el firmware que hemos obtenido de la web de ipw2100 esté cargado en la tarjeta. Ya comentamos que este era un trabajo para hotplug, así que tenemos que tenerlo instalado en nuestro sistema. Si ya lo tenemos instalado en nuestra distribución debemos comprobar que existe el fichero /etc/hotplug/firmware.agent, de lo contrario deberíamos actualizar el paquete a una versión más reciente.

Pues bien, para que hotplug cargue el firmware de nuestra tarjeta en el arranque tenemos que poner las imágenes binarias de éste en un lugar donde hotplug pueda encontrarlas. Para ello descomprimimos el tarball con el firmware y copiamos todos los ficheros *.fw a /usr/lib/hotplug/firmware. Si tal directorio no existe lo creamos.

Un último apunte para el firmware: debemos tener montado el sistema de ficheros virtual sysfs. Si el comando

 mount | grep sysfs

no nos devuelve ningún resultado, debemos montarlo nosotros mismos. Ésto es fácil, simplemente añade la siguiente línea al fichero /etc/fstab

 none /sys sysfs defaults 0 0

Además, si observas esa línea verás que es necesario que exista el directorio sys en el directorio raíz, así que si no existe lo creamos. Por último hacemos

 mount -a

y volvemos a lanzar el primer comando para comprobar que efectivamente ya tenemos sysfs en nuestro sistema. A partir de este momento el sistema de ficheros sysfs se montará automáticamente en cada arranque.

Probar el funcionamiento

Llega un momento crítico, si todo ha salido bien es la hora de probar si la tarjeta funciona como es debido. Después de haber instalado todo lo anterior reiniciamos la máquina para que hotplug cargue el firmware. Además, como la tarjeta inalámbrica está enganchada al bus PCI y hotplug también gestiona estos dispositivos, el driver ipw2100 también será cargado junto al firmware, con lo que nos ahorramos cargarlo nosotros a mano con modprobe. Bueno vale, como no estamos en Windows que hasta para instalar un programa hay que reiniciar, podemos ahorrarnos ese engorroso paso volviendo a arrancar el servicio hotplug de esta manera

 /etc/init.d/hotplug stop
 /etc/init.d/hotplug start

Debes comprobar por la salida que el módulo ipw2100 ha sido cargado. También echa un ojo a los últimos mensajes registrados por el núcleo con

 dmesg

Al menos deberías poder ver estas dos líneas

 ipw2100: 0000:02:07.0: Detected at mem: 0xE0200000-0xE0200FFF -> d055f000, irq: 5
 eth0: Using hotplug firmware load.

La salida puede variar en la primera línea puesto que la configuración hardware de tu tarjeta puede ser diferente. Si hubiera algún error en la carga del módulo (firmware no encontrado, problemas con ACPI) lo podríamos averiguar con dmesg. Si has seguido todos los pasos como se indican es raro que encuentres algún error salvo por algunas opciones de configuración de tu núcleo que entren en conflicto con el módulo ipw2100. Si el error persiste echa un ojo a la sección de noticias de la web de ipw2100.

 La manera definitiva de probar nuestra tarjeta será mediante el uso de las wireless-tools, que introducimos en la siguiente sección.

Wireless-tools

El paquete wireless-tools es un conjunto de herramientas que utilizan el API de las Wireless Extensions proporcionado por el núcleo para ajustar parámetros específicos de las redes inalámbricas y obtener algunas estadísticas.

El conjunto completo de aplicaciones que vienen con este paquete son:

 iwconfig
 iwevent
 iwgetid
 iwlist
 iwpriv
 iwspy

Para una descripción detallada de cada una de las órdenes podéis utilizar las páginas de manual. Nosotros solamente vamos a utilizar para nuestros propósitos iwconfig e iwlist.

Podríamos decir que iwconfig es el equivalente a ifconfig para redes IP. La sintaxis general de este comando es

 iwconfig interfaz acción parámetro

Veamos algunos de las opciones que nos ofrece:

  • iwconfig eth0 essid nombreRed De esta manera asociamos nuestra interfaz eth0 con una red virtual formada por un conjunto de puntos de acceso identificados por el essid o nombre de red. Si el nombre de red proporcionado es la cadena vacía, esto es, la cadena "", la interfaz se asociará con el mejor punto de acceso disponible, con el cual tengamos una señal más fuerte. Después de ejecutar la orden tendremos acceso a la LAN que hay detrás del punto de acceso con el que se nos asigne.
  • iwconfig eth0 mode {adhoc,managed,master,monitor} Un adaptador inalámbrico puede trabajar en varios modos que determinan la forma en que se comunica con los demás equipos de la red. Un punto de acceso trabaja en modo master y nosotros utilizaremos el modo managed para contactar con ese punto de acceso. El modo ad-hoc se utiliza cuando queremos establecer comunicación con otro equipo directamente sin necesidad de un punto de acceso intermedio.
  • iwconfig eth0 key "s:clave" Para proteger nuestras comunicaciones las cifraremos mediante el protocolo WEP definido en el estándar 802.11 asignando una clave con este comando. Para la clave usaremos cinco caracteres para cifrado de 40 bits y 13 caracteres para cifrado de 104 bits. No es necesaria clave WEP para acceder a la red de la Universidad de Murcia por motivos que veremos más adelante.
  • iwconfig eth0 Muestra información sobre el enlace. Podemos ver el nombre de red (ESSID), el modo en el que está nuestra tarjeta, el punto de acceso que estamos utilizando y algunas cosas más. Uno de los valores interesantes es la calidad del enlace que nos da una idea de la calidad del servicio que puede ofrecernos el punto de acceso. Si la tarjeta no es inalámbrica o si el módulo no se cargó correctamente, al invocar esta orden veremos el siguiente mensaje:
    eth0 no wireless extensions.
Por defecto nuestra tarjeta detectará el punto de acceso más "cercano" y se asociará con él. De todas maneras podemos ver qué redes hay disponibles ahí fuera con iwlist. Este comando tiene más posibilidades pero a nosotros sólo nos interesa ésta. Así, tecleamos

 iwlist eth0 scan

y obtenemos una lista de todos los puntos de acceso y equipos en modo ad-hoc detectados por el interfaz. Entre la información reportada vemos el essid, así que si queremos conectarnos con un punto de acceso en particular usaremos el valor de essid dado por iwlist con iwconfig

Resumiendo

Vamos a ver los pasos que hemos seguido hasta tener instalada la tarjeta inalámbrica Intel PRO/Wireless 2100 en nuestro sistema GNU/Linux:

  1. Obtener todo el software necesario.
  2. Configurar, compilar e instalar el núcleo Linux de la serie 2.6 con las opciones necesarias para que funcionen todos los demás pasos restantes.
  3. Compilar e instalar el driver ipw2100. Lo desempaquetamos en un directorio cualquiera (no es necesario que sea /usr/src) y lo instalamos como cualquier código fuente, recordando que los fuentes del núcleo recién instalado deben estar todavía presentes bajo /usr/src.
  4. Cargar el firmware. Descomprimimos el fichero con las imágenes binarias y colocamos los ficheros *.fw en el directorio donde hotplug va a buscarlos, que es /usr/lib/hotplug/firmware, creándolo si es necesario. El sistema de ficheros sysfs debe estar montado y por supuesto, hotplug debe estar instalado.
  5. Probar la tarjeta. Para ello volvemos a arrancar el servicio hotplug, que nos cargará el módulo de la tarjeta y el firmware. Finalmente instalamos las wireless-tools y confirmamos que nuestra tarjeta se instaló con éxito probando algunas de sus opciones.

2.- Configuración de la tarjeta de red inalámbrica

Antes de nada, el driver/módulo de tu adaptador de red inalámbrico debe estar cargado. Ya sea un adaptador PCI, PCMCIA o USB ésto está solucionado si lo instalamos correctamente y usamos hotplug. Si tu interfaz se llama wlan0 comprueba que

 iwconfig wlan0

te da una salida apropiada. El comando iwconfig lo encontramos en el paquete wireless-tools.

Si tu interfaz de red inalámbrica es válida, con el comando anterior podrás ver además el punto de acceso que tiene asociado. 

Para comprobar si tu tarjeta ya está asociada con un punto de acceso simplemente ejecuta iwconfig con tu interfaz inalámbrica. En el campo ESSID deberás ver el nombre icarum y en el campo Access Point un valor distinto de cero. Si no es así no te preocupes, simplemente tendremos que especificar el punto de acceso a mano con

 iwconfig wlan0 essid icarum

Si después de ésto haces iwconfig de nuevo y ves que el campo Access Point es cero o que el campo Link Quality tiene un valor bajo, digamos por debajo de 40/100, tendrás que desplazaros a otra zona con mejor cobertura. Para ver los mapas con las zonas que disponen de servicio echa un ojo a

http://www.um.es/atica/icarum/cobertura  

3.- Configuración del PC para usar DHCP

Para que nuestro equipo tenga acceso a la red de la Universidad de Murcia y podamos usar servicios como Webmail o SUMA nuestra interfaz debe tener una dirección IP asignada, puesto que si sólo estamos "enganchados" a un punto de acceso estamos comunicados nada más que a nivel de enlace. 

La manera que te ofrece la red de la Universidad de Murcia de configurar a nivel IP tu interfaz es mediante el protocolo DHCP (Dynamic Host Configuration Protocol), gracias al cual no tendrás que tocar ningún fichero de configuración ni teclear absolutamente nada. Mediante este protocolo estándar de las redes IP tu máquina simplemente solicita una configuración IP para una interfaz y un servidor de DHCP disponible le contesta con la información solicitada. El cliente de DHCP es el programa encargado de solicitar dicha información mediante mensajes broadcast o de difusión, esperando una respuesta de algún servidor DHCP que escuche la petición. Clientes de DHCP hay varios, nosotros usaremos pump que se encuentra disponible en muchas distribuciones y es bastante fácil de usar.

Una vez tengas instalado el cliente de DHCP (en nuestro caso será pump), usa

 pump -i wlan0

y automáticamente ya tienes acceso al web de la Universidad de Murcia www.um.es, de donde puedes descargar el cliente de Redes Privadas Virtuales para completar tu configuración.  

4.- Descarga del cliente de Redes Privadas Virtuales

Este paso sólo es necesario si no tiene instalado el cliente de Redes Privadas virtuales. Si ya lo tiene instalado, salte al paso de configuración.

Para hacer uso del servicio de Red Inalámbrica de la Universidad de Murcia, hace falta instalar el cliente de Redes Privadas Virtuales. Para descargarlo Pinche aquí.

Nota: para poder descargar el cliente es necesario tener cuenta de correo electrónico en la Universidad de Murcia. La cuenta debe ser del dominio um.es (<nombre>@um.es).

Para más información sobre el servicio de Redes Privadas Virtuales de la Universidad de Murcia, vaya aquí.

5.- Instalación y configuración del cliente de Redes Privadas Virtuales

En esta página tiene toda la información sobre cómo instalar y configurar el cliente de Redes Privadas Virtuales para las plataformas Windows, Linux y Mac OS X con el cliente proporcionado por Cisco Systems.

Si ya tiene instalado el cliente, salte al apartado de "Configuración" para crear una conexión llamada Icarum. La creación de esta conexión sólo es necesaria la primera vez que se conecte. Si ya tiene el cliente instalado y la conexión configurada, salte al paso de conexión.

Siga según las instrucciones de la citada página, pero creando un fichero llamado 

/etc/CiscoSystemsVPNClient/Profiles/Icarum.pcf

que contenga lo siguiente:

Description=Red inalámbrica de la Universidad de Murcia
Host=vpn.um.es
GroupName=icarum
Username=<nombre>@um.es
GroupPwd=icarum 

6.- Conexión/Desconexión

En esta página tiene toda la información sobre cómo conectarse y desconectarse a la red de la Universidad de Murcia usando el cliente de redes privadas virtuales para las plataformas Windows, Linux y Mac OS X. Para conectarse a Icarum el procedimiento es exactamente el mismo, pero deberá escoger la conexión llamada "Icarum": 

vpnclient connect Icarum

Última modificación ( 11.10.2011 )
 
Área de Tecnologías de la Información y las Comunicaciones Aplicadas
Volver al incio del documento Volver al inicio del documento
Área de Tecnologías de la Información y las Comunicaciones Aplicadas