[HOW TO] Intel PRO wireless 3945abg en hardy heron (8.04) con ipw3945

Imagen de Panko

[HOW TO] Intel PRO wireless 3945abg en hardy heron (8.04) con ipw3945

NOTA: Este tutorial ha sido modificado varias veces, así que recomiendo a los que lo vayais a seguir, hacerlo desde el principio paso a paso si ya lo habeis hecho y os ha fallado en algun paso...

Como muchos ya sabréis, k/x/ubuntu 8.04 hardy heron ha sustituido los drivers privativos para la tarjeta wireles Intel PRO Wireless 3945abg (ipw3945) por los del proyecto libre (iwl39459).
parece ser que dicho drivers libres no acaban de funcionar correctamente, disminuyendo el rendimiento de dicha tarjeta e incluso no funcionando esta en algunos casos. Tampoco han incluido la posibilidad de escojer el driver a usar entre el privativo y el libre...

Tras varias busquedas infructuosas, encontré alguna que otra solución, como por ejemplo instalar los backports-modules para conseguir devolver a la vida el led de la tarjeta, o incluso hacer un downgrade desde el kernel 2.6.24 al 2.6.22 que usa gutsy y si que incluye los drivers propietarios. Pero (por supesto, no podia ser de otra forma) esto acarrea otros efectos no deseados: en mi caso, deja de funcionarme el sonido, y hacer que funcione este, provoca que no funcione si inicio el sistema con el kernel 2.6.24...

La solución la encontré en un foro de ubuntu en inglés, en concreto en este post:

y se podría decir que es relativamente sencilla. Pongo la traducción al castellano (más o menos, no soy ducho en la lengua inglesa, solo me defiendo):

NOTA: las lineas precedidas de $ son los comandos que teclearemos en la consola.

Antes que nada, abrimos una consola, creamos un directorio para el proceso y entramos en el:

      $ mkdir ipw3945
      $ cd ipw3945

Y ahora vamos con el HOW-TO paso a paso (sin salir de la consola donde estamos):

* 1. Descargar ipw3945 microcode, extraer, y copiar el archivo ipw3945.ucode al directorio de firmwares:

      $ wget http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.14.2.tgz
      $ tar -xvzf ipw3945-ucode-1.14.2.tgz
      $ sudo cp ipw3945-ucode-1.14.2/ipw3945.ucode /lib/firmware/`uname -r`/ipw3945.ucode

* 2. Descragar ipw3945 regulatory daemon, extraer, y copiar el archivo ipw3945d al directorio /sbin :

      $ wget http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz
      $ tar -xvzf ipw3945d-1.7.22.tgz
      $ sudo cp ipw3945d-1.7.22/x86/ipw3945d /sbin/ipw3945d	(si usamos ubuntu 64 sustituir x86 por x86_64)

* 3. Descargar ipw3945 source y extraer:

      $ wget http://surfnet.dl.sourceforge.net/sourceforge/ipw3945/ipw3945-1.2.2.tgz
      $ tar -xvzf ipw3945-1.2.2.tgz

* 4. Descargar y aplicar el parche necesario para poder compilar en kernels 2.6.24 (y superiores, teoricamente):

      $ wget http://james.colannino.org/downloads/patches/ipw3945-1.2.2.patch
      $ cp ipw3945-1.2.2.patch ipw3945-1.2.2/ipw3945-1.2.2.patch
      $ cd ipw3945-1.2.2
      $ patch -p1 ipw3945.h < ipw3945-1.2.2.patch

* 5. Compilamos el modulo ipw3945
NOTA: Si queremos compilar el driver para que soporte el modo MONITOR (gracias por el aporte, shankao algooooo ) editamos el archivo Makefile:

      $ nano Makefile
      buscamos la linea que diga #CONFIG_IPW3945_MONITOR=y
      y la modificamos para que quede CONFIG_IPW3945_MONITOR=y

Guardamos el archivo pulsando CTRL+O y salimos pulsando CTRL+X

      $ make SHELL=/bin/bash clean
      $ make SHELL=/bin/bash

* 6. Instalamos el modulo ipw3945

      $ sudo make SHELL=/bin/bash install

* 7. Añadimos estas líneas en el archivo /etc/modprobe.d/ipw3945:

      $ sudo nano /etc/modprobe.d/ipw3945		(si no existe, se creará como nuevo)

      install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
      remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

Guardamos el archivo pulsando CTRL+O y saldremos con CTRL+X
(si ya existen buscaremos `uname -r` en ellas y lo eliminaremos para que queden como lo he puesto o dará error en la carga del modulo)

NOTA: Delante de los comandos ignore-install, quiet, kill, e ignore-remove, aunque el foro presente un guión, son dos guiones juntos lo que hay que poner, o no funcionará.

* 8. Descargarmos de la memoria el modulo del driver libre:

      $ sudo rmmod iwl3945

* 9. Añadimos el driver libre al final del archivo /etc/modprobe.d/blacklist para que no se cargue al inicio del sistema:

      $ sudo nano /etc/modprobe.d/blacklist

      blacklist iwl3945

* 10. Cargamos en memoria el driver que hemos compilado

      $ sudo modprobe ipw3945

Y voilà! ipw3945 on linux 2.6.24!

Despues de esto, ya debería estar funcionando correctamente (la interfaz de red se volverá a llamar eth1 en vez de wlan0)
Si no es asi, probad con sudo /etc/init.d/networking restart. Y si no, pues reiniciando el sistema ya tomará el modulo correctamente.

Con esto, pues ya tendremos, wifi funcionando con el driver privativo ipw en lugar del libre iwl y con el led que vuelve a funcionar como lo hacía en ubuntu gutsy...

NOTA: Si se instala una actualización del kernel, este módulo dejará de funcionar. En ese caso, habrá que repetir el último comando del paso 1 y los pasos 5,6, y 10.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Sigo con el problema

Gracias por los enlaces. Con el último he conseguido que funcione el led de la wifi aunque no consiga navegar con ella.

Algunas aclaraciones: Utilizo los dos SO en el Dell M1330, Vista y Kubuntu 8.04.1 64bits. Lo compré con Vista instalado, de modo que no puedo utilizar el ISO de Dell ya que supone que Ubuntu es el único SO y utiliza todo el disco.

En cuanto a los drivers, he utilizado los dos, iwl3945 y ipw3945 , con el mismo resultado. Puedo hacer ping, utilizar el apt-get y el thunderbird, pero no me deja navegar ni con Firefox ni con Konqueror. ¿Tal vez sea un problema utilizar el Kubuntu 64bits? No por Kubuntu, sino por 64 bits.

Gracias por la ayuda.

Francesc

PD: He probado con lynx y funciona!!! Firefox y Konqueror no!!!

wmaster0 y wlan0 problema solucionado

Hola,

Ya puedo navegar con firefox y konqueror. No era un problema del driver, o sí?
Al parecer hay un conflicto entre dos servicios: wmaster0 (lógico) y wlan0 (físico). Lo he solucionado con unas instrucciones en el archivo "interfaces" que fija la atención en wlan0.
En todo caso, para mí sigue siendo un misterio...

Gracias keopx.

Francesc

No conecta WEP

Hola a Todos,

Tengo un problema y me gustaria que me ayudaran si es posible, he seguido el tutorial y me ha salido bien todo per cuando quiero conectar con una redo WEP el network-manager me pedia la contraseña una y otra vez aunque fuera correcta asi que decidi cambaiarlo por el wicd pero ahora el wicd detecta las redes tambien pero no me conecta nisiqiera me pide contraseña se queda en obteniendo ip y nada mas hasta que dice no conectado lo curioso es que si configuro la red manualmente en la Administracion me puedo conectar a la misma la verda dno entiendo espero me puedan ayudar.

Gracias

---------------

He encontrado el problema =D al parecer hay que bloquear el IPV6 al inicio del sistema para que pueda obtener la ip.

sudo gedit /etc/modprobe.d/blacklist 
Añadir blacklist ipv6

Solucion drastica

@Panko:
Despues de muchas pruebas no logre conectarme nunca. A si que decidi de pasar a Linux Mint, cinco minutos despues de que termine la instalaciòn, estaba conectado con el wifi abierto (con iwl3945). Network Manager no fucionaba ni con el wep.
Quite NM y puse Wicd y funciona con wpa 1/2.
Lamentablemente tuve que dejar Ubuntu pero el Wifi me servia.
Bueno! yo al menos, resolvi de esta manera.

Saludos!

Network manager

Hola de nuevo, al parecer solucione el problema parcialmente xD resulta que puedo conectar atravez de la ocnfiguracion manual con cualquier red pero no puedo conectarme con wicd a ninguna mas que a la que esta configurada manualmente en (Administracion>Red) espero que alguno me pueda ayudar gracias.

Al Fin Lo Logre...pero tengo un ultimo problema

Bueno, al fin pude lograr con exito el tuto. Me queda un ultimo problema...vivo en un edificio, y cerca hay muchas redes de wi-fi en el edificio nos proveen del wi-fi en forma gratuita, el tema es que, cuando inicio ubuntu, me detecta solo una red, "chatsrl" que es la que se encuentra del otro lado de la calle, pero la del edifico no me la detecta "City Hotel" es el nombre del red,y es la que mas intensidad tiene, pero no la detecta y la verdad nose que hacer...
Todavia sigo verde en esto de linux, si alguien sabria que puedo hacer, o si me falta hacer algo, desde ya, agradesco mucho su ayuda.

Salutes!

funciona perooo...

funciona bien, peeero, tengo que repetir el paro 10 cada vez que reinicio el ordenador asi que supongo que tendre que poner el comando 10 para que se cargue al inicio, pero ¿como? se de la existencia del un archivo en el que se pueden agregar esas cosas pero... no recuerdo cual... alguien que me refresque la memoria?

EDIT:

hice un script tal que asi:

sudo gedit wirelessloader
#!/bin/sh

# Este script soluciona mi problemilla

modprobe ipw3945

echo "Cargando Wireless"

echo "Terminado"

exit 0

Le di permisos de ejecución en propiedades y lo movi a /etc/init.d:

sudo mv wirelessloader /etc/init.d/

Le creas enlaces simbólicos en los directorios de arranque:

sudo ln -s /etc/init.d/mi_script /etc/rc0.d/S98wirelessloader

sudo ln -s /etc/init.d/mi_script /etc/rc1.d/S98wirelessloader

sudo ln -s /etc/init.d/mi_script /etc/rc2.d/S98wirelessloader

sudo ln -s /etc/init.d/mi_script /etc/rc6.d/S98wirelessloader

Un saludo

Imagen de Aram

Guenas: Me he cambiado el

Guenas:

Me he cambiado el portatil a un Toshiba Satellite a200-29j que lleva esta targeta de red inalambrica. He seguido paso por paso las indicaciones y cuando hago el modprobe.... nada de nada, que no se activa la maldita red wireless (Estoy atado a un p.... cable de red). he probado a reiniciar el equipo y nada de nada....

BUAAAA!!!! ¿Alguna idea o sugerencia? Tambien he probado lo de los backports y nada de nada!

Saludos y Gracias de antemano

 

Si lloras porqué se ha puesto el Sol, las lágrimas en los ojos no te dejarán ver la luz de las estrellas (R. Tagore)

mi blog: ¡En fase beta! http://pensarlibres.blogspot.com/

Problema con $ make SHELL=/bin/bash

Buenas, soy nuevo en linux, acabo de instalar Ubuntu 8.04, pero tengo problemas con la wireless, por eso es que llegue hasta esta página. Fui siguiendo los pasos de la instalación, pero cuando llego al paso 5, en:

$ make SHELL=/bin/bash

Aparece el siguiente mensaje de error:

WARNING: Your kernel contains ieee80211 symbol definitions and you
are not using the kernel's default ieee80211 subsystem. (Perhaps you
used the out-of-tree ieee80211 subsystem's 'make install' or have
provided a path to the ieee80211 subsystem via IEEE80211_INC.)

If you wish to use the out-of-tree ieee80211 subsystem then it is
recommended to use that projects' "make patch_kernel" facility
and rebuild your kernel to update the Module symbol version information.

Failure to do this may result in build warnings and unexpected
behavior when running modules which rely on the ieee80211 subsystem.

Aborting the build. You can force the build to continue by adding:

IEEE80211_IGNORE_DUPLICATE=y

to your make command line.

make: *** [check_inc] Error 1

Estuve buscando en google pero no encontré nada que solucione este problema.
Les agradecería muchisimo que me ayuden, ya que no tengo idea como seguir.

Saludos
Mocin

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.