HowTo RT61 (Ralink 2561)
Edimax (EW-7128G)
Este documento no es más que un conjunto de experiencias, todas estas fueron en busca de un resultado positivo y no ahonda en configuraciones avanzadas de linux, lo que se buscaba era que la placa con el driver RT61 sea reconocida por el Sistema Operativo Linux (Debian Etch) y poder conectar y autenticar con encriptación WPA/TKIP contra un AP (Lynksys).
Dejando de lado las presentaciones, les cuento mis experiencias y con que elementos arranque:
Tengo una PC "viejita"
486 DX-4 64 de Ram (4X16 SIMM) Disquetera de 3 1/2 Disquetera de 5 1/4 HD de 20GB WD (el original de 1 gb palmo) Dos placas de red (una PCI y otra ISA que no estoy usando) Y una placa Wifi Edimax (EW-7128G)
Despues de los periplos para poder hacer que la pc booteara desde la lectora (solucionado con el SmartbootManager (SMB) en su versión mas nueva, hasta el día de hoy la versión 3.7) le instale Debian Etch en la partición primaria /boot de 128MB con el cargador LILO....de más esta decir que la instalación duro mas de 7hs solo el sistema báse pelado.
Al arrancar y hacer un lspci me indica mi 486 DX-4 que había tomado la placa Edimax pero no figuraba nada en el ifconfig -a:
# lspci 00:0d.0 Network controller: RaLink RT2561/RT61 802.11g PCI 00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:10.0 Host bridge: United Microelectronics [UMC] UM8881F (rev 04) 00:12.0 ISA bridge: United Microelectronics [UMC] UM8886A (rev 0d) 00:12.1 IDE interface: United Microelectronics [UMC] UM8886BF (rev 0d) #
Buscando info en google y en la lista de BAL veo que hay 3 posibilidades de hacerla funcionar:
Instalar los driver oficiales del fabricante (RALINK http://www.ralinktech.com/ralink/Home/Support/Linux.html)
Instalar los drivers de serialmonkey.com (son NO oficiales pero bastante desarrollados http://rt2x00.serialmonkey.com/), aclaro que hasta el momento con estos drivers no se puede poner en modo MASTER, pero dicen en el foro que en poco tiempo se hara posible...habra que esperar (http://rt2x00.serialmonkey.com/phpBB2/viewtopic.php?t=4203)
Instalar los drivers de serialmonkey.com pero los Rt2x00, estos si o si obligan a realizar una compilacion del kernel (http://rt2x00.serialmonkey.com/wiki/index.php?title=Rt2x00_GIT_instructions) y con esto si se podria poner en modo MASTER.
Yo opte por elpunto 2, mas que nada porque los del fabricante no eran muy actuales y leí que no traían soporte para WPA, la contra de elegir estos drivers es que por el momento no acepta el modo MASTER, por el momento....
Asi me mostraba el resulado de la compilación:
citybell:/home/martin/rt61-cvs-2007110611/Module# make make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.18-4-486' CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_main.o CC [M] /home/martin/rt61-cvs-2007110611/Module/mlme.o CC [M] /home/martin/rt61-cvs-2007110611/Module/connect.o CC [M] /home/martin/rt61-cvs-2007110611/Module/sync.o CC [M] /home/martin/rt61-cvs-2007110611/Module/assoc.o CC [M] /home/martin/rt61-cvs-2007110611/Module/auth.o CC [M] /home/martin/rt61-cvs-2007110611/Module/auth_rsp.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_data.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_init.o CC [M] /home/martin/rt61-cvs-2007110611/Module/sanity.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_wep.o CC [M] /home/martin/rt61-cvs-2007110611/Module/wpa.o CC [M] /home/martin/rt61-cvs-2007110611/Module/md5.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_tkip.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rtmp_info.o CC [M] /home/martin/rt61-cvs-2007110611/Module/eeprom.o CC [M] /home/martin/rt61-cvs-2007110611/Module/rt2x00debug.o LD [M] /home/martin/rt61-cvs-2007110611/Module/rt61.o Building modules, stage 2. MODPOST CC /home/martin/rt61-cvs-2007110611/Module/rt61.mod.o LD [M] /home/martin/rt61-cvs-2007110611/Module/rt61.ko make[1]: se sale del directorio `/usr/src/linux-headers-2.6.18-4-486' *** Module rt61.ko built successfully citybell:/home/martin/rt61-cvs-2007110611/Module#
Y luego:
citybell:/home/martin/rt61-cvs-2007110611/Module# make install *** Install module in /lib/modules/2.6.18-4-486/extra ... make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.18-4-486' INSTALL /home/martin/rt61-cvs-2007110611/Module/rt61.ko DEPMOD 2.6.18-4-486 make[1]: se sale del directorio `/usr/src/linux-headers-2.6.18-4-486 ' /sbin/depmod -a *** Update /etc/modprobe.conf alias for wlan* *** Install firmware in /lib/firmware ... *** Check old config ... citybell:/home/martin/rt61-cvs-2007110611/Module#
Despues de esto realice un lsmod para verificar que esté el módulo pero no había nada para mi sorpresa, desde la lista de BAL (Pablo) me indicaba que a pesar de no verlo con lsmod ni con el ifconfig, hága un modpro rt61, al realizarlo probe hacer un iwconfig y APARECIO!, enseguida probe hacer un escaneo para ver que salia:
# iwlist wlan0 scanning
wlan0 Scan completed :
Cell 01 - Address: 07:14:B6:DA:E7:22
ESSID:"mired"
Mode:Managed
Channel:9
Encryption key:on
Bit Rates:0 kb/s
Quality:0/100 Signal level:-60 dBm Noise level:-256 dBmA esta altura estaba mas que contento!. Tenia la 486-DX4 con debian, y reconociendo la placa wireless y escaneando el aire.
Hasta este punto ya habia logrado lo mas importante y era que la placa sea reconocida y pueda ver el AccessPoint, ahora faltaba la segunda etapa que era que se pueda conectar con el AP con una autenticación medianamente seguraLa segunda etapa consiste en conectarlo al AP con encriptacion WPA/TKIP, que es la encriptación que uso en la red. Ya desde acá me seguía guiando Pablo (gracias Pablo!) y el me pasaba una serie de líneas para poder conectar con el AP+WAP/TKIP, la ídea es, la primera vez ponerla linea por linea y ver si da algún tipo de error, las lineas son estas:
1. iwconfig wlan0 mode managed 2. iwpriv wlan0 set AuthMode=WPAPSK 3. iwpriv wlan0 set EncrypType=TKIP 4. iwconfig wlan0 essid "tu_essid" 5. iwpriv wlan0 set WPAPSK="tuclave" 6. iwconfig wlan0 essid "tu_essid"
Los números son solo para que quede claro el orden, se debe colocar de esta forma y repitiendo el essid en los pasos 4 y 6 tal cual figuran. En mi caso no dio nungún error y al hacer un iwconfig ví que estaba Conectado!
# iwconfig
wlan0 RT61 Wireless ESSID:"mi_red"
Mode:Managed Frequency:2.452 GHz Access Point: 00:66:B4:DA:E7:04
Bit Rate=24 Mb/s
RTS thr:off Fragment thr:off
Encryption key:CE5E-3F0EBLABLABLBABLABLA
Link Quality=63/100 Signal level:-71 dBm Noise level:-103 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
#Para ver realmente si salió por esa placa y por el AP puse default gateway la IP de la placa wireless
# route add default gateway la_ip_del_AP
Y luego realize un traceo para ver las IP por donde pasaba el paquete:
citybell:/home/martin# traceroute -n traceroute to (198.133.219.25), 30 hops max, 40 byte packets 1 192.168.1.2 1.961 ms 1.996 ms 1.701 ms 2 * * * 3 200.51.233.142 263.436 ms 182.426 ms 100.569 ms 4 200.51.233.135 226.157 ms 70.172 ms 98.647 ms 5 213.140.36.218 17.624 ms 18.460 ms * 6 213.140.43.69 231.799 ms 84.16.12.193 140.156 ms 213.140.38.70 278.669 ms 7 213.140.36.89 256.169 ms 136.037 ms 213.140.43.198 137.904 ms 8 84.16.12.233 191.703 ms 168.235 ms 213.140.36.37 182.817 ms 11 84.16.12.165 292.313 ms 168.182 ms 213.140.36.193 305.912 ms 12 12.123.16.2 249.066 ms 213.140.37.85 210.838 ms
Ya con esto me senti mas que satisfecho. Lo que faltaba hacer es modificar el /etc/network/interfaces con lo valores de la wlan0 para que levante automaticamente:
citybell:/home/martin# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5)
# The loopback network interface
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.1.2
post-up iwconfig wlan0 mode managed
post-up iwpriv wlan0 set AuthMode=WPAPSK
post-up iwpriv wlan0 set EncrypType=TKIP
post-up iwconfig wlan0 essid 'mi_essid'
post-up iwpriv wlan0 set WPAPSK='mi_clave'
post-up iwconfig wlan0 essid 'mi_essid'
auto eth0
iface eth0 inet static
address 192.168.0.36
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
#iface eth0 inet dhcp
citybell:/home/martin#Y como me dijo Pablo, poner los valores en un script para que una vez que levante se carguen los valores de WPA, es medio repetitivo, ya que en el interfaces ya estan los valores, pero por alguna razón necesita de ese script para que pueda autenticar, les paso el script que lo puse en el /etc/rc.local que es lo ultimo que levanta:
citybell:/home/martin# cat rt61 iwconfig wlan0 mode managed iwpriv wlan0 set AuthMode=WPAPSK iwpriv wlan0 set EncrypType=TKIP iwconfig wlan0 essid 'mi_essid' iwpriv wlan0 set WPAPSK='mi_clave' iwconfig wlan0 essid 'mi_essid' citybell:/home/martin#
Con todo esto te aseguras que tu debian tome la placa, la configure, se conecta al AP con WPA y tengas salida a internet. En mi caso particular, no fue tan así....por algun motivo al reinciar la pc alguna veces tomaba la placa y otras no. El mensaje en el dmesg era este:
rt61: Could not load firmware! (is firmware file installed?)
Por eso hago esta diferencia, hasta este punto debería andarle a las mayorias de las pc, en el caso de la mía y viendo los resultados de los dmesg y el syslog saque en conclusión que al ser una pc vieja el hecho que demora más hace que aveces no tome el modulo y otras si...aleatoreamente.
Lo que hize o me ayudaron a hacer (gracias Nestor!) es sacar el modulo de memoria, agregarlo nuevamente y hacer que relea el archivo de configuración de las placas (interfaces) todo esto lo meti en un script para que lo ralice al final de la carga. Aclaro que esto que voy a poner tambien funcionaría en cualquier otra pc, pero es perder tiempo ya que en maquinas mas potentes , a mi parecer, esto no sucedería pero bueno si lo hacen tb les va a andar.
Antes que nada saque el script que puse en el /etc/rc.local y puse la siquiente linea al final.
echo '/home/martin/rt61_nuevo.sh'| at now + 2 minutes
Con esto lo que logro es que al finalizar toda la carga del sistema, se ejecute esa linea donde demora 2 minutos y luego hace correr el script rt61_nuevo.sh, que dice lo siquiente:
citybell:/home/martin# cat rt61_nuevo.sh #!/bin/bash rmmod rt61 #saca el modulo sleep 15 #espera 15 segundos modprobe rt61 #carga el modulo sleep 15 #espera 15 segundos /etc/init.d/networking force-reload #hago que relea la configuracion de las placas sleep 15 #espera 15 segundos route add default gateway 192.168.1.2 #Agrego la ruta por defecto iwconfig wlan0 mode managed #Autentica contra el AP iwpriv wlan0 set AuthMode=WPAPSK #Autentica contra el AP iwpriv wlan0 set EncrypType=TKIP #Autentica contra el AP iwconfig wlan0 essid 'mi_essid' #Autentica contra el AP iwpriv wlan0 set WPAPSK='mi_clave' #Autentica contra el AP iwconfig wlan0 essid 'mi_essid' #Autentica contra el AP iwconfig wlan0 retry 60 #Hace un reintento para conectarse cada 60 segundos por si se cayo el AP citybell:/home/martin#
Se daran cuenta que se toma su tiempo...pero bueno lo importante es que se conecte. Lo tengo andando asi y hasta ahora siempre se conecta.
Espero les sirva,