Problemas wireless con driver iwl3945

Objetivos

Transferencias simétricas con el driver iwl3945.

Antecedentes

El problema se me ha presentado en la versión de Intrepid (no sé si ocurre en las anteriores) con el driver que viene por defecto para mi tarjeta wireless iwl3945: Intel Pro Wireless 3945 a/b/g. Con este driver, la tarjeta funciona correctamente (se detecta, se conecta WPA al router y envía y recibe) pero las tasas de transferencias, no eran las mismas que desde otro ordenador al servidor con otra tarjeta inalámbrica.
La tarjeta DLINK wireless de otro equipo, por ejemplo, alcanzaba las siguientes tasas de transferencias:

  • Envío: 2500 KB (2'5 MB) * 8 = 20 Mbits/sec
  • Recepción: 2500 KB (2'5 MB) * 8 = 20 Mibts/sec

El mismo ordenador, de la tarjeta wireless con la tarjeta Ethernet:

  • Envío: 11500 KB (11.5 MB)*8 = 92 Mbits/sec
  • Recepción: 11500 KB (11.5 MB) * 8 = 92 Mbits/sec

Sin embargo, la tarjeta con el módulo iwl3945 alcanzaba tasas asimétricas:

  • Envío: 200 KB = 1'6 Mbits/sec
  • Recepción: 1500KB = 12 Mbits/sec

Algo bastante extraño, por otra parte.

Solución

Una vez revisado que el problema estaba en el equipo cliente y no en el servidor, usando el programa iperf y el tutorial que tengo colgado aquí, y que la tarjeta de red cableada funcionaba correctamente, empecé a investigar por los foros.

Algunos hablaban de que el problema se resolvío haciendo un back al antiguo driver que había para estas tarjetas, el ipw3945. Sin embargo, la mayoria de los foros de desarrollo y soporte (launchpad) comentaban que el driver ipw3945 estaba obsoleto y no ya no estaba soportado. Que el nuevo driver y el que iba a tener soporte, era el iwl3945.
Por tanto la solución era instalar la última versión de este módulo. Por tanto, nos dirigimos a la página:

http://linuxwireless.org/en/users/Download

En esta página es necesario bajarse la última versión para mi kernel. Para ello, nos vamos al directorio usr/src y nos descargamos el paquete con los últimos drivers:

cd /usr/src
$ sudo wget http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2

Descomprimimos:

$ sudo tar xvf compat-wireless-2.6.tar.bz2

Y se nos crea el directorio compat-wireless-2009-02-11/. Dentro del directorio, como siempre:
$ cd compat-wireless-2009-02-11
$ sudo make
$ sudo make install

Estos son los drivers genéricos. Ahora necesitamos el firmware para nuestra tarjeta en concreto.
Para ello nos vamos a http://wireless.kernel.org/en/users/Drivers/iwl3945
Y luego a http://www.intellinuxwireless.org/?p=iwlwifi&n=downloads
Y descargamos el último firmware:

$ sudo wget http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-15.28.2.8.tgz

Lo movemos al directorio /usr/src/ y lo descomprimimos.

$ sudo mv iwlwifi-3945-ucode-15.28.2.8.tgz /usr/src
$ sudo tar xvf  iwlwifi-3945-ucode-15.28.2.8.tgz

Y copiamos el fichero con el firmware a /lib/firmware

$ cd /usr/src/iwlwifi-3945-ucode-15.28.2.8
$ sudo cp iwlwifi-3945-2.ucode /lib/firmware

Una vez finalizado, reiniciamos el equipo.

Volvemos a realizar transferencias (via ftp, scp, etc….) y ahora si vemos que son simétricas y similares a las del otro equipo inalámbrico.

Suponemos que ya tenemos el antiguo driver iwl3945 funcionando y no hay que tocar los ficheros de módulos

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License