sábado, 12 de diciembre de 2015

Instalar adaptador USB WIFI con chipset Ralink RT7601

Hace un tiempo, como era muy barato, me compré un 'Adaptador USB Wifi' o sea, un 'pincho USB' modelo TP-LINK TL-WN727N. El objetivo era saber si podría ser capaz de hacer funcionar en un PC (sin tarjeta inalámbrica) las redes wifi. 
Ojo, cuando hablo de 'adaptador USB Wifi' no confundirlo con los 'pinchos USB' que compras a tu proveedor de internet, y te suministra una tarjeta micro-SD por la que te da conexión por wifi de 1, 2, 4... GB al mes (y te cobra cada mes por ello, claro). El 'pincho USB' del que hablo no tiene (ni necesita) esa tarjeta micro-SD, hace de tarjeta (externa) inalámbrica y te permite conectar por Wifi tu ordenador, si detecta alguna red 'libre'. O, simplemente, si haces 'tethering' con tu smartphone (o sea, creas un punto de acceso) puedes tener wifi en tu PC (que siempre es más cómodo que tener la conexión solo en el teléfono), usándolo dicho smartphone como modem. Vamos, esto...
Como siempre, el pincho viene preparado para Windows y por ningún lado se dice si es compatible con Linux. Incluso el chico de la tienda me decía que no creía que lo fuese... pero yo, que a cabezota no me gana nadie, lo compré, porque, después de todo, mis experiencias con cosas de TP-LINK (de Ralink Technology) habían sido buenas. Pero...
(un inciso: por supuesto lo primero que hice al llegar a casa fue ver si mi Debian reconocía ese adaptador wifi. Efectivamente, si lo inserto, se le enciende un piloto y si hago un
lsusb
me salen varias cosas y, entre ellas, una línea que dice
Bus 007 Device 003: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
que claramente hace referencia al 'pincho').

... pero el problema es que, reconocido, no conseguía que me detectase ninguna conexión inalámbrica.
Más adelante leí algo como ésto en una web, y me parece que es el fondo de la cuestión
Hay muchos adaptadores Wi-Fi, o pinchos Wi-Fi o como sea que los llaméis, y hay muchos compatibles, basta conectarlos y todo funciona. Pero también hay otros que incluso se anuncian como compatibles y que no lo son. Esto ocurre con los que tienen chipset Ralink RT7601, que también aparecen como Mediatek o MT7601 o te lo pueden vender como Ralink RT5370. La cuestión es que el RT5370 si es 100% compatible pero el RT7601 no lo es de momento y muchas veces se indica que tienen un chipset pero en realidad es otro".
O sea… que la había 'cagado'.

Probé ochenta mil cosas, rastreando por Google, se me ratificó la impresión de que ese modelo daba muchos problemas... y abandoné la idea durante varios meses. Hasta que ayer, que (por pura cabezonería) pensaba comprarme, para Navidad, algún otro pincho (y por si acaso de otra marca, claro), hice un último intento de búsqueda y encontré, aquí, la solución.

Y como lo que dice esa web es muy complejo, lo voy extractar contando cómo lo he hecho, que en el fondo es bastante sencillo... y funcionó:
a) Lo primero, hay que descargar este archivo 'mt7601-master.zip' del siguiente enlace:
https://github.com/porjo/mt7601/archive/master.zip
(no se por qué pero me parece que es una especie de 'parche' al controlador oficial) y extraer su contenido. Yo lo hago en el Escritorio, que me resulta muy cómodo. Y, hecho esto, voy a su carpeta y abro en ella una terminal. O sea, en /home/.../Escritorio/mt7601-master/src

b) Ahora, por si acaso, en una terminal (porque se necesita tener instalados estos paquetes), hay que hacer esto:
sudo aptitude install
linux-headers-$(uname -r) build-essential git

NOTA: con esto instalas, además de los paquetes build-essential y git, los linux-headers XXXX correspondientes a tu kernel en uso. Yo ya los tenía instalados, pero no cuesta nada hacerlo.

c) Y finalmente (seguimos en la consola) hay que ir introduciendo los siguientes comandos:
make 
(se pone a compilar cosas y tarda un poco). Y cuando termine
sudo make install
sudo mkdir -p /etc/Wireless/RT2870STA/
sudo cp RT2870STA.dat /etc/Wireless/RT2870STA/
sudo modprobe mt7601Usta
Y ya está. Si ahora pincho en el icono del Network Manager, y activo las conexiones inalámbricas, veo esto:

NOTA FINAL MUY IMPORTANTE: pero descubrí, al día siguiente, cuando volví a encender mi PC, que otra vez no me reconocía las conexiones wifi. Nada grave, haciendo de nuevo un
sudo modprobe mt7601Usta
se activaban. 
Para hacerlo más cómodo, y no tener que recordar esta orden, lo primero que se me ocurrió es crear, en Nemo, un lanzador ('create a new launcher here...') en el Escritorio, con esa instrucción (y con un simple clic de ratón, solucionado). 
Pero, acordándome del tema de la carga de 'módulos' es aún más sencillo, y definitivo, hacer esto otro: editar el archivo /etc/modules, por ejemplo con
sudo nano /etc/modules
y añadir a ese archivo editado la línea
mt7601Usta
Y guardado, a partir de ese momento, se cargará este módulo al arrancar el PC... y ya siempre que introduzco el pincho USB de TP-Link me reconoce las redes wifi a mi alcance.

Así que lo que parecía una metedura de pata, porque aunque la marca TP-Link, y Ralink en general, es bastante amigable con Linux, no sabía hacerlo funcionar, porque desconocía por completo la historia del famoso chipset 7601, mira por donde me ha servido para aprender alguna cosita. Que quede aquí como un apunte más, aunque supongo que Ralink (o los desarrolladores del kernel de Linux) lo arreglarán algún día. 

Y, entretanto... ¡Prueba superada…! 

Por cierto: más tarde leí que, si cambiaba el kernel, era muy conveniente, tras reiniciar, hacer esto:
cd ~/mt7601/src 
make clean 
make 
sudo make install 
sudo modprobe mt7601Usta

Y Nota Final:
Más adelante me peleé un poco con otro adaptador de la familia, el TP-Link TL-WN725N 'Nano USB Adapter', que es una monada, y muy barato (menos de 10 euros)
aunque debo de decir que me dió un poquito de guerra hasta que no hice un
sudo aptitude install firmware-ralink
para que me lo reconociese.
Para habilitarlo, el procedimiento es similar a lo hecho con el otro adaptador, eso de make, sudo make install, etc, etc. Solo hay que buscar los drivers apropiados, que se encuentran bastante fácilmente por Google, por ejemplo aquí...
https://github.com/lwfinger/rtl8188eu/archive/master.zip


1 comentario: