http://rubensa.bitacoras.com/archivos/2006/03/20/instalar-conceptronic-c54ru-en-ubuntu-breezyHace algún tiempo realicé una anotación con varios enlaces hacia información de cómo instalar y configurar este dispositivo Wifi USB en Fedora Core 4. En aquella ocasión yo ni siquiera lo había instalado, solamente lo puse ahí como referencia para poder volver a ello cuando tuviese tiempo. Bueno, ahora me he puesto manos a la obra, pero en esta ocasión con Ubuntu, que es la distribución que tengo instalada.
En la página oficial de Conceptronic no existen drivers para GNU/Linux para el C54RU.
Este adaptador Wi-Fi USB 2.0, está basado en el Ralink RT2500 (tiene el mismo chip que el D-Link DWL-G122). Actualmente está disponible el código fuente de los drivers Linux para este dispositivo, pero en mi caso he utilizado los del proyecto Open Source "rt2x00" ya que ha sido de éstos últimos de los que he conseguido encontrar más información (el proyecto rt2x00 está basado en los drivers originales de Ralink).
El proyecto dispone de dos drivers independientes, uno para los dispositivos PCI y PCMCIA; y otro para los dispositivos USB. Actualmente están trabajando en un nuevo módulo que incluye el soporte para PCI, PCMCIA y USB, pero aún está muy "verde" su desarrollo y por tanto no lo he intentado utilizar.
Nota: este adaptador consume unos 200 mA, por lo que a Linux no le hace mucha gracia que se lo enchufes en un hub USB. Conviene por tanto enchufarlo directamente a un conector USB del PC.
Compilando e instalando los drivers:
Antes que nada, lo primero es (con el dispositivo conectado) mirar a ver si Ubuntu lo detecta:
$ lsusb
Que debería devolver algo similar a esto:
Bus 001 Device 001: ID 14b2:3c02
Si tenemos la 14b2:3c02, podemos seguir descargando las fuentes del driver que han hecho los del proyecto "rt2x00":
http://rt2x00.serialmonkey.com/wiki/index.php/Downloadsdonde me descargo:
Latest BETA rt2570 driver: v1.1.0-b1
(aunque parecería más lógico el rt2500, como ya he dicho antes, el que es para usb es el rt2570)
Una vez descargado, lo descomprimimos:
$ gunzip rt2570-1.1.0-b1.tar.gz
$ tar -xvf rt2570-1.1.0-b1.tar
Ahora lo que tenemos que hacer es compilar e instalar el módulo, para lo cual necesitaremos tener instalados los siguientes paquetes:
$ sudo apt-get install build-essential linux-headers-$(uname -r)
NOTA: `uname -r` se sustituirá por la versión del kernel que tienes instalada.
Además, como en Breezy el kernel está compilado con la versión 3.4 de gcc, debemos instalar también dicho paquete:
$ sudo apt-get install gcc-3.4
NOTA: Normalmente está instalado pero por si acaso aseguraos que también teneis instalado el paquete "wireless-tools".
Una vez instalado todo lo necesario, entramos en la carpeta "Module" y lo compilamos:
$ cd rt2570-1.1.0-b1/Module
$ make
Una vez compilado, tendrás el módulo "rt2570.ko". Cópialo a la carpeta de módulos para tu kernel (en mi caso he creado antes una subcarpeta para él):
$sudo mkdir /lib/modules/`uname -r`/kernel/drivers/net/wireless/rt2570
$sudo cp rt2570.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/rt2570
En kernels 2.6 para configurar los módulos, se utiliza el archivo "/etc/modprobe.conf" y en los 2.4 "/etc/modules.conf" aunque luego puede variar segun uses un kernel generico o uno oficial de la distribucion. Además en las distribuciones Debian y derivadas se opera de forma algo diferente al resto: se procura no editar esos ficheros directamente si no que se van creando ficheros en "/etc/modutils" (asociado a "/etc/modules.conf") o en "/etc/modprobe.d" (asociado a "/etc/modprobe.conf") con las diferentes configuraciones de los modulos.
Ya que yo utilizo Ubuntu, que está basado en Debian, no usamos el fichero "/etc/modules.conf" sino que tendremos que crear el archivo "/etc/modprobe.d/rt2570":
$ echo "alias rausb0 rt2570" | sudo tee /etc/modprobe.d/rt2570
Con esto hemos indicado que vamos a crear un dispositivo llamado rausb0 que será nuestra tarjeta de red USB (de modo similar a que eth0 es la tarjeta de red normal y corriente).
Ahora salvamos los cambios ejecutando:
$ sudo update-modules (Este comando lee el directorio "/etc/modutils" y rellena el fichero "/etc/modules.conf" con los datos que ha encontrado)
$ sudo depmod -a
Ahora hay que ejecutar:
$ sudo modprobe rt2570
NOTA: Es posible que sea necesario ejecutar antes:
$ sudo insmod /lib/modules/`uname -r`/kernel/drivers/net/wireless/rt2570/rt2570.ko
Ahora para probar si el USB nos funciona debemos hacer un "iwconfig" y ver el resultado. Si obtenemos algo parecido a lo siguiente, eso quiere decir que en ese dispositivo nos reconoció el adaptador y ahí vamos a tener que configurarlo.
$ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
rausb0 RT2500USB WLAN ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: 00:00:00:00:00:00
Bit Rate:0 kb/s Tx-Power:50 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Ahora podríamos levantar la tarjeta de red ejecutando el comando:
$ sudo ifconfig rausb0 up
Configurando WPA:
El rt2570 soporta WPA de forma nativa. No utilizaremos el Gnome Network Manager ya que no tiene opciones WPA. Es necesario, por tanto, editar a mano el archivo "/etc/network/interfaces" e incluir lo siguiente:
$ sugo gedit /etc/network/interfaces
iface rausb0 inet dhcp
pre-up ifconfig rausb0 up
pre-up ifconfig rausb0 down
pre-up ifconfig rausb0 up
pre-up ifconfig rausb0 down
pre-up iwconfig rausb0 essid "MiESSID" (o el ESSID de tu punto de acceso)
pre-up iwconfig rausb0 mode Managed
pre-up iwpriv rausb0 auth 4 (1:Open, 2:Shared, 3:WPAPSK, 4:WPA2PSK, 5:WPANONE)
pre-up iwpriv rausb0 enc 3 (1:none, 2:wep, 3:tkip, 4:aes)
pre-up iwpriv rausb0 wpapsk 12345678 (WPAPSK password)
pre-up ifconfig rausb0 up
Salva el archivo y ejecuta:
$ sudo ifconfig rausb0 up
$ sudo ifdown rausb0 && ifup rausb0
Resumen rápido y notas finales:
1.- No utilices "make install" ya que modifica "/etc/modules.conf" que no es lo correcto para Debian (y por tanto para Ubuntu)
2.- Copia el módulo rt2570.ko en el arbol de módulos de tu kernel
3.- Pon un alias para asociar el módulo con el dispositivo Conceptronic. Todos los archivos de "/etc/modprobe.d" son leidos por "modprobe" así que simplemente crea un archivo con el alias:
$ sudo echo "alias ra0 rt2500" >/etc/modprobe.d/rt2570
4.- Comprueba si está funcionando ejecuando "rmmod rt2570; depmod -a; modprobe rausb0" con lo que se debería cargar el módulo rt2570
5.- Configura la seguridad WPA en el archivo "/etc/network/interfaces"
6.- En el futuro simplemente tienes que enchufar el adaptador y ejecutar "ifup rausb0" para activar el enlace
7.- Si quieres puedes automatizar el proceso creando una archivo con permisos de ejecución llamado "/etc/hotplug/usb/rt2570" con estas 3 líneas:
#!/bin/bash
# Este archivo lo ejecuta hotplug cuando se inserta el adaptador rt2570
/sbin/ifup rausb0
Algunos comandos de interés:
* lsmod (lista los módulos cargados. Aquí debería aparecer rt2570)
* depmod -a
* modinfo (da información del módulo)