Adaptador Wifi miniUSB para Linux

A muchos nos ha pasado que hemos comprado unos mini-adaptadores wifi del tamaño de una moneda para dotar o mejorar la conectividad wifi de nuestro portátil, para una raspberry, etc.

Mi caso concreto, era para mejorar la cobertura wifi (que tampoco es que tenga mucha debido a su diminuto tamaño) debido al soporte de redes tipo N que el portátil no traía. Fue éste el que compré en eBay, puesto que todos eran los mismos, aunque de diferentes vendedores.

En la descripción del artículo, se indica:

  • La forma mas sencilla de conectar tu ordenador a una red inalámbrica WIFI, mediante este adaptador USB.
  • Función de punto de acceso, para conectar sus dispositivos al adaptador y compartir internet desde el ordenador.
  • Podrás navegar en cualquier momento y en cualquier ordenador.
  • Tamaño pequeño con una gran potencia 150 Mbps.
  • Diseño compacto de fácil transporte.
  • Wireless-N (802.11n)
  • ESTÁNDAR: IEEE 802.11n, IEEE 802.11g (darft), IEEE
  • RANGO DE FRECUENCIA: 2.4 – 2.4835 GHz.
  • NUMERO DE CANALES: 13.
  • Compatible con Microsoft Windows 2000 / XP / Vista / WIN 7 / Win 8 / Win 8.1 / Win 10

Lo cual me parecía una información bastante escasa. Decido preguntar a un par de vendedores de estos aparatos. Y obtengo respuestas genéricas tal que así:

Hola

Le envío las especificaciones del artículo para su comprobación:

Especificaciones: 
-Mini Adaptador Usb Wifi
– Tiene un diseño sencillo, pequeño, discreto y muy fácil de transportar, pero con una gran potencia: 150Mbps
– Sirve para conectar cualquier PC de mesa o portátil a la red inalámbrica Wifi.
– Color: Negro y rojo
– Sistemas operativos: Windows 2000 / XP / Vista / WIN 7 / WIN 8 / Windows 10
– Rango de frecuencias: 2.4 ~ 2.4835GHz.
– Medidas: 20 x 14 x 6 mm aprox.
– Interfaz: USB2.0

Saludos.

Nada. Me quedo igual. Básicamente, copian y pegan la información que tienen en la web de la tienda china (como esta, por ejemplo). Así que finalmente decido adquirirlo a la primera que pillo, total, unos céntimos de diferencia no importan.ASUS-Eee-PC-900HD-2

Al llegarme el adaptador lo pruebo en un portátil Asus 900HD como en el de la foto. Este PC lleva de casa Windows XP, pero decidí cambiarlo por Lubuntu, un sistema Linux más liviano y más actual.

No me lo detecta. Normal (creo). Así que decido buscar por la extensa web. Y doy con un post donde explican cómo instalar los drivers de este modelo (o de uno similar). Pero no me funciona con los drivers que mencionan, ya que son para una versión anterior al kernel que estoy usando.

Los pasos a seguir fueron:

  1. Enchufamos el dispositivo a un puerto usb. Listamos los dispositivos conectados a los puetos USB con el comando:
    lsusb

    Nos aparecerá algo tal que así bash1
    El adaptador en cuestión es de ralink y el modelo 7601, por lo que es un RT7601

  2. En la tercera línea se puede apreciar que linux detecta que el dispositivo está enchufado.
    Bus 001 Device 007: ID 148f:7601 Ralink Technology, Corp. 

    Pero como no tiene los drivers, no lo puede hacer funcionar. Descargamos los archivos fuente directamente desde github.

  3. Una vez descargados, descomprimimos el archivo con el comando
    tar xjf DPO_MT7601U_LinuxSTA-master.zip

    (suponiendo que el nombre del archivo descargado sea ese).

  4. Descargamos también el parche (mirror) y lo ponemos en la misma carpeta donde hemos puesto el archivo zip del paso 2.
  5. Accedemos a la carpeta donde hemos descomprimido el source de los drivers y aplicamos el parche.
    cd DPO_MT7601U_LinuxSTA-master.
    patch -p0 < ../rt2870-mt7601Usta-kuid_t-kgid_t.patch
  6. Ejecutamos.
    make
    sudo mkdir -p /etc/Wireless/RT2870STA/
    sudo cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat
    sudo /sbin/insmod os/linux/mt7601Usta.ko
  7. Finalmente, compilamos
    make install

Y ya lo tendremos funcionando, como se puede ver en esta captura (dispositivo ra0)

sh2

Cabe decir que habrá que hacer estos pasos cada vez que actualicemos el kernel. También es posible que, a la hora de compilar nos dé un error de que no encuentra los headers. En tal caso habrá que instalarlos con el comando

sudo apt-get install --reinstall linux-headers-generic build-essential 

Con todo esto ya tendremos el adaptador totalmente operativo en Ubuntu (y todas sus variantes) y puede que en las demás distribuciones de linux.