martes, 16 de noviembre de 2010

Instalar D-Link DWA-125 en Ubuntu

Hola, que tal, hace algunos días por alguna razón tuve la necesidad de comprar una NIC Wireless usb y opté por una D-Link DWA-125 el problema vino al querer instalarla, esto es porque a pesar de que la página oficial tiene Drivers para linux nunca pude lograr instalarlo, por más que hacía todos los pasos que ahí me indicaban.

Cabe mencionar que D-Link menciona que esos drivers han sido probados en Ubuntu pero de 32bits y mi máquina es de 64bits. Independientemente de eso me vi en la necesidad de acudir a la generosa comunidad para resolver el problema y es por eso que les comparto este post original de Fernando Bombo.

Antes de empezar y si es que (al igual que yo) se pusieron a instalar algún otro driver antes de intentar lo siguiente, hay que deshacerlo, para esto vamos a la carpeta del driver que bajaron,  donde está el makefile y damos el siguiente comando:

$sudo make uninstall; sudo make clean

Con estoy habremos deshecho los cambios que se crearon con el make, ahora sí, los pasos para instalar son estos:

1. Buscamos e id del adaptador, para tal efecto damos el siguiente comando:

$lsusb

Aparecerá algo como esto:


Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 07d1:3c0d D-Link System
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2. Aquí lo que nos importa es el número que está antes de la marca del dispositivo, en este caso "07d1:3c0d", el cual usaremos pero sin incluir los dos puntos ":". Ahora hacemos esto:

$echo 'install rt2870sta modprobe --ignore-install rt2870sta ; /bin/echo "07d1 3c0d" > /sys/bus/usb/drivers/rt2870/new_id' | sudo tee /etc/modprobe.d/rt2870sta.conf

La indicación de 'rt2870' es para especificar el driver del dispositivo.

3. Es muy probable que existan otros drivers creando conflictos, por lo que nos desharemos de ellos haciendo lo siguiente:

$sudo modprobe -rf rt2800sta
$sudo modprobe -rf rt2x00sta
$sudo modprobe -rf rt2800usb
$sudo modprobe -rf rt2870sta

4. Después de la limpieza hay que aplicar los siguientes comandos:

sudo modprobe -rf rt2870sta
sudo modprobe rt2870sta
dmesg | egrep 'rt28|usb|Phy'

5. Finalmente verificamoes si se cargó con el comando

$iwconfig

y deberá devolver algo como esto:

lo no wireless extensions.

eth0 no wireless extensions.

ra0 RT3070 Wireless ESSID:"11n-AP" Nickname:"RT3070STA"
Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated
Bit Rate:1 Mb/s
RTS thr:off Fragment thr:off
Link Quality=10/100 Signal level:0 dBm Noise level:-115 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

6. Por último y para que no tengamos que repetir estos pasos cada que reiniciamos la máquina modificamos el archivo "rc.local" con lo siguiente:

$sudo gedit /etc/rc.local

Agregamos la siguiente línea:

sudo modprobe rt2870sta

Guardamos y cerramos

Listo, espero que les sea de utilidad.
Un agradecimiento a Fernando Bombo por su post