viernes, 2 de abril de 2010

Wireless: instalar drivers RT2870 Y RT3070 en Ubuntu (Linux)

Bien, a lo mejor esto le interesa a un puñadito de gente.

Pero si lo llegas a necesitar lo agradecerás enormemente.

Obviamente, para que te interese tendrías que usar Linux como sistema operativo.

Lo cual sugeriría que eres un tipo/tipa inteligente.

Lo que expondré aquí está probado en Ubuntu 9.10 (Karmic Koala).

Posiblemente sirva también para otras distribuciones.

El caso es el siguiente:

Te compras un adaptador USB Wireless (por ejemplo el D-Link, SMC, Conceptronic o Linksys y muchos otros con chip de Ralink) y te percatas, cagándote en los muertos de los productores de hardware que pasan de los usuarios Linux, que no va, o no trae drivers para Linux.

Puede que tengan drivers para Linux en su web y se puedan descargar. Y sigues cagándote en sus muertos por lo complicado del proceso y muchas veces decepcionante resultado.

La lucecita de tu adaptador Wireless USB sigue sin funcionar y tú sin acceso a Internet.

Estarás tentado a pensar ¡vaya mierda el Linux!... y te equivocarás.

Linux identifica perfectamente la mayoría del hardware y, en el caso de Ubuntu, prácticamente es enchufar y listo.

Pero los adaptadores USB Wireless a veces se resisten.

Y, sin embargo, Ubuntu tiene poderío suficiente como para hacerlos funcionar.

Una solución es usar el programa Nsdiswrapper que te permite usar los drivers de Windows. Pero no te lo aconsejo. El funcionamiento no siempre es todo lo fino que cabría desear. Aún así es una buena solución cuando no hay o no se conoce otra.

Pero ¿sabías que Ubuntu (y Linux en general) contiene infinidad de drivers que sí funcionan con casi todo?

Te lo voy a demostrar.

Vamos a instalar en un minuto el driver para tu adaptador USB Wireless.

1.- Asegúrate que el driver de tu adaptador es el RT2870 o RT3070. Esto lo sabes perfectamente si los drivers que te sugiere la página web del fabricante son esos :-)


2.- Ahora averigua la ID del adaptador. Simplemente lo conectas y tecleas en la consola:

lsusb


Te saldrá algo así:

Bus 002 Device 004: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 003: ID 0461:0010 Primax Electronics, Ltd
Bus 002 Device 002: ID 03f0:c302 Hewlett-Packard DeskJet D2300
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 083a:a701 Accton Technology Corp.
Bus 001 Device 006: ID 058f:6366 Alcor Micro Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


El mío es ese que pone Accton Technology Corp. Quédate con los numeritos asociados (083a:a701). Obviamente en tu caso pueden ser otros.

Si dudas cuál es tu adaptador basta que teclees el comando con el adaptador desenchufado y luego lo hagas con el adaptador enchufado.

Ahora sí, desenchufa el adaptador.


3.- Teclea en tu consola o terminal:

echo 'install rt2870sta modprobe --ignore-install rt2870sta ; /bin/echo "083a a701" > /sys/bus/usb/drivers/rt2870/new_id' | sudo tee /etc/modprobe.d/rt2870sta.conf


Fíjate bien, los numeritos que hay en el medio son los que has averiguado antes, separados por un espacio en vez de ":"

Da igual si el chip de tu adaptador es RT2870 O RT3070 porque vas a usar el controlador rt2870 que funcionará para los dos. Así que no cambies nada más.


4.- Sigue tecleando en el terminal:

sudo modprobe -rf rt2870sta

sudo modprobe rt2870sta

dmesg | egrep 'rt28|usb|Phy'



5.- Conecta el adaptador. Si 6todo ha ido bien ya estará funcionando y el ordenador buscando una red inalámbrica.


6.- Teclea:

iwconfig


Y verás una información parecida a esta:

lo no wireless extensions.

eth0 no wireless extensions.

ra0 RT2870 Wireless ESSID:"R-wlan5D" Nickname:"RT2870STA"
Mode:Managed Frequency=2.462 GHz Access Point: 00:18:9B:05:91:8C
Bit Rate=54 Mb/s
RTS thr:off Fragment thr:off
Link Quality=80/100 Signal level:-61 dBm Noise level:-97 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


La vida es bella.


Pd.- La orden para que se conecte automáticamente al iniciar la sesión está ya puesta, pero por si acaso la repito:

sudo tee /etc/modprobe.d/rt2870sta.conf


*IMPORTANTE:
Si has estado trasteando con drivers descargados o los que venían en el disco del adaptador Wireless tienes que desinstalarlos antes. Entra con la terminal a la carpeta donde tienes el paquete de drivers y teclea en la consola:

sudo make uninstall
sudo make clean


[ACTUALIZACION PARA UBUNTU LUCID LYNX 10.04] Todo lo anterior sirve para Ubuntu Lucid sin embargo me ocurrió que cada vez que reiniciaba no cargaba los drivers y tenía que teclear en la consola
sudo modprobe rt2870sta
Para solucionarlo basta editar el archivo /etc/rc.local

sudo gedit /etc/rc.local


Y agregar sudo modprobe rt2870sta justo antes de la linea que pone exit 0

El archivo te queda así:


#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo modprobe rt2870sta
exit 0


Lo guardas y listo.

28 comentarios:

juan antonio dijo...

nada de nada esto sigue como siempre ni si quiera encunentra redes

NievesCastroLara dijo...

Tienes que desinstalar previamente cualquier driver que hayas intentando instalar (incluidos los que se bajan de la web del fabricante). Para mi funcionó (usando Ubuntu 9.4).

Whiskey dijo...

mmm ya desistale mis drivers anteriores que probe pero nada aun no lo logro hacer funcionar y esoty utilizando xubuntu
hay alguna forma de saber si tengo ya todo desistalado?? o como puedo hacer que funcione con los drivers de windows??
Bueno gracias de antemano, sale

NievesCastroLara dijo...

Para usar los controladores de Windows necesitas nsdiswrapper. Mira este tutorial: http://casidiablo.net/instalacion-tarjeta-wireless-linux/

Pero te recomiendo que no tires la toalla. Funcionará mejor si consigues hacerlo con controladores de linux. No uso xubuntu así que te aconsejo que busques en este sitio: http://www.ubuntu-es.org/ y si no encuentras la solución pregunta allí. Te ayudarán. Indica tu versión de Xubuntu, el adaptador y los drivers que utiliza. Verás como lo consigues. Hasta ahora no he conseguido encontrar algo que no funcione en Linux (aunque a veces he tenido que investigar y preguntar mucho) pero luego vale la pena.

Suerte

Abraham dijo...

Muchas Gracias amigo.

Whiskey dijo...

ah ok muchas gracias raza
voy a checar entonces
chido man.

Israel dijo...

muchas gracias por el post. Ya casi había perdido la esperanza...
Me funcionó aunque con un matiz: Uso Ubuntu 10.04 y al volver a conectar el USB y hacer iwconfig, no me salia lo mismo.
Entonces edité el rc.local y reinicé el ordenador. Todo funcionó perfectamente: reconocía las redes que estaban cercanas y después de poner el password de la red, conexión establecida.

Repito, Muchas gracias.

Pablo dijo...

RT3070 L. Hola he seguido los pasos en backtrack 3 usb (Se cargan los rt 2870 aparece la interface ra0 pero a la hora de darle airmon-ng start ra0 me aparece como monitor los driver de rt2500 (solo tengo un adaptador idu-1800mw 18G -Wifly-City... sera buena?). Airodump-ng no me detecta nada. A que se debe o que puedo hacer?... Muchas gracias de antemano

Ambiente Regional dijo...

Hola

Tengo este problema:

- Cuando apago el pc y luego lo vuelvo a prender no toma el dwa-125.

- Pero, si apago el equipo, saco el dwa-125, prendo el equipo, y pongo el dwa-125 se conecta el wifi.


Si alguien me puede ayudar le estaré tremendamente agradecido.

Saludos cordiales,

ppellet

m_vargas85 dijo...

Hola man... Cheque tu tuto y me funciono de maravilla, el problema es que me conecto perfectamente al WEPs pero no logro conectarme a WPA que se usa en mi trabajo, podrias orientarme porque puede ser? sera problema del RT2870? tengo instalado tambien win xp en otra particion y ahi me funciona en todo (WEP y WPA) con el driver de windows

Tiago dijo...

Muito bom!
Funcionou perfeitamente!
Saludos de Portugal!

Thanateros dijo...

tengo ubuntu 10.04 y un adaptador dlink DWA-140 y he hecho lo que sale en esta pagina y no se encience la lucecita ni detecta redesni nada, que puedo hacer ??

k1z3 dijo...

excelente pana a mi me funciono de maravilla.......... encontré tu blog por casualidad pero de verdad funciono yo tengo un alpha AWUS036NH de 2 w lo compre por supuestamente tenia gran alcance pero en el exterior dentro de la casa con un par de paredes no sirve...

Nemo dijo...

buenas,
acabo de comprar la dwa 125, compilando drives q dan, uso fedora, estos pasos tambn sirven?(= los pruebo)
o hay alguna otra forma?

Nemo dijo...

buen dia, los instale pero obtenia Access Point: Not-Associated
no sabia q hacer, asi q me puse a probrar con los drives y la embare, ahora obtengo esto:
$ iwconfig
lo no wireless extensions.

eth0-eth1 no wireless extensions.

eth1 no wireless extensions.

ra0 Ralink STA
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 invalid crypt:0 invalid misc:0uria22

Cosme dijo...

El script /etc/rc.local se ejecuta con los privilegios de usuario root por lo que no es necesario ni recomendable utilizar el comando sudo para ejecutar comando en dicho script.

Es decir, en /etc/rc.local deberías poner sólo "modprobe rt2870sta" y no "sudo modprobe rt2870sta"

Mariangela dijo...

Hola! perdona mi ignorancia pero luego del tutorial no consigo hacer nada de nada. De hecho, no entiendo bien qué hace esta función

echo 'install rt2870sta modprobe --ignore-install rt2870sta ; /bin/echo "083a a701" > /sys/bus/usb/drivers/rt2870/new_id' | sudo tee /etc/modprobe.d/rt2870sta.conf

Puedes explicármelo? antes de tu tutorial, he seguido este otro http://ohioloco.ubuntuforums.org/showthread.php?t=1285828&page=13 sin embargo tampoco me ha funcionado.

Tengo varias máquinas en ubuntu 10.04 Mi esposo en otra máquina logró hacer funcionar la tarjeta instalando el nuevo kernel pero me da, realmente, mucha pereza hacerlo por ese lado y quisiera encontrar otro modo de hacerlo porque es un procedimiento que deberé repetir en unas 11 máquinas.

Alguna sugerencia?

Básicamente el comportamiento que tiene mi máquina es el siguiente:

1) Aparece el indicador de "redes inalámbricas" pero en estado desactivado
2) si configuro manualmente una red se "conecta" pero de "mentira" es decir no transmite datos.

Pensé que podría ser un tema de privilegios de acceso de usuario, sin embargo no hay ninguna opción desabilitada de acceso a red para el usuario principal de la máquina.

Por ninguna de las dos vías (tu post y el otro) he conseguido que aparezca algo parecido a Ro con el ifconfig o iwconfig ... siempre aparece la wlan y wmaster0

Saludos
Mariangela

Aldo dijo...

Muchas gracias¡

Todo perfecto

cocoloco dijo...

Gracias por el esfuerzo y la dedicación.Perfecto para un manazas.

Jordi Bel dijo...

Muchisiiiimas gracias llevaba meses batallando con drivers instalando y desinstalado. Ha funcionado como un reloj

Uso Ubuntu 10.04

Josep Ma

tequesta dijo...

Muchas gracias!!!

A mi me funcionaba, pero perdía conexión y reconectaba después de un rato ... estuve como una semana urgando por internet hasta que encontré este tutorial que me dio una mano, mil gracias

Probado en Linux Mint 10

Saludos

Dan dijo...

Gracias por esta ayuda!

Ahora he conseguido hacer funcionar el adaptador SWEEX LF153 sobre UBUNTU 10.10 , me daba problemas de conexion intermitente y despues de este tutorial funciona a la perfeccion.

Tengo que añadir que primero probe sobre la Ubuntu 9.10 y no consegui que detectara redes, aconsejo probar con la 10.10 si tienes este mismo problema

Jeison dijo...

Muchas gracias, tengo un DWA 125 con RT2870 y me funciono muy bien, pero cuando reiniciaba el pc, no detectaba la red inalámbricas tenia que escribir "sudo modprobe rt2870sta"
y luego "iwconfig" en terminal, trabajo en ubuntu 9.10 y me causo rareza que decías que solo para ubuntu 10.04 se editaba el archivo /etc/rc.local son "sudo modprobe rt2870sta", pues déjame decirte que también funciona y es necesario al menos para mi cambiar el archivo en ubuntu 9.10. Muchas Gracias perdi mucho tiempo para encontrar la solución.

crisis de egoismo dijo...

Con ubuntu 11.04 tengo que deshabilitar el driver rt2800usb con " rmmod rt2800usb"y a continuacion desconectar el adaptador(dlink dwa-140 revB2)y volver a conectarlo porque se queda como trabado,con la luz encendida fija y entonces conecta sin problemas pero no funciona en modo monitor

meny_hdz dijo...

todo bien solo tengo un problema mas, me aparece como desconectado el adaptador y no me detecta ninguna red alguna solucion para esto??

salu2!!!

meny_hdz dijo...
Este comentario ha sido eliminado por el autor.
Grego dijo...

muchas gracias, me funciono perfecto!!

telkmoni dijo...

!Muchas gracias!
Tu blog me ha servido de mucho,pero querria comentar mi experiencia para ayuda de otros.

Si lo que intentais es instalar un wirlles usb combatible por que la tarjeta wifi de vuestro portatil no es compatible(como las dichosas bcm43xx),no lo podreis hacer estando las 2 enchufadas,tendreis que quitar la del portatil y depues seguir los pasos del nuestro querido bloguero para instalar el modem usb.

Saludos y gracias!