Como comenté en la entrada Problema con Wireless en Acer Aspire, al instalar Ubuntu 8.04 (de 32 ó 64 bits) en un notebook con tarjeta inalámbrica Intel PRO Wireless 3945abg, si utilizamos el mismo para conectarnos a Internet por un access point, o para cosas relativamente sencillas, no surgen problemas mayores. El único problema que encontré en este caso es que en Palola, un notebook Acer Aspire 5920, no enciende el led del botón de activación de la tarjeta wireless: funciona (se activa/desactiva al presionarlo), pero no enciende el led de activación.
Ahora bien. Si queremos “juguetear” con la tarjeta wireless, es decir, usar programas de detección de redes inalámbricas, configurarla en distintos modos (Managed, Ad-hoc, Monitor), y otras cosas que se me ocurren cuando ando aburrido, los problemas se complican hasta llegar a un punto en el que el notebook no responde y debemos apagarlo de botón.
Revolviendo en Internet encontré la causa y solución: con Ubuntu 8.04 se instala automáticamente el driver libre iwl3945. El mismo no funciona aún del todo bien para la Intel PRO Wireless 3945abg. Para solucionarlo vamos a compilar e instalar el driver privativo ipw3945.
Se aplicó el procedimiento que describo sin problemas en los siguientes modelos:
- Acer Aspire 5920 (mi caso)
- Sony Vaio VGN-NR385E (gracias a Vicho que dejó su comentario)
A continuación el procedimiento en “El Diario de Palola”:
1.- Crear el directorio donde vamos a trabajar
$ mkdir ipw3945
$ cd ipw3945
2.- Descargar el microcódigo ipw3945 y copiar al directorio de firmwares de Ubuntu
$ 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
3.- Descargar el demonio ipw3945 y copiar a /sbin
$ wget http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz (si el sistema operativo es de 32 bits, sustituir x86_64 por x86)
$ tar -xvzf ipw3945d-1.7.22.tgz
$ sudo cp ipw3945d-1.7.22/x86_64/ipw3945d /sbin/ipw3945d
4.- Descargar los fuentes ipw3945 y extraer
$ wget http://surfnet.dl.sourceforge.net/sourceforge/ipw3945/ipw3945-1.2.2.tgz
$ tar -xvzf ipw3945-1.2.2.tgz
5.- Descargar y aplicar el parche necesario para poder compilar en kernel 2.6.24
$ 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
Nota: si no reconoce el comando patch, instalarlo con la siguiente sentencia:
$ app-get install patch
6.- Editar el archive Makefile para que la tarjeta soporte el modo Monitor
$ vi Makefile
Descomentar la línea #CONFIG_IPW3945_MONITOR=y borrándole el numeral (#)
7.- Compilar
$ make SHELL=/bin/bash clean
$ make SHELL=/bin/bash
8.- Instalar
$ sudo make SHELL=/bin/bash install
9.- Editar el archivo /etc/modprobe.d/ipw3945 (si no existe, crearlo).
$ vi /etc/modprobe.d/ipw3945
Agregar las siguientes líneas:
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945
10.- Descargar de memoria el módulo del driver libre
$ sudo rmmod iwl3945
11.- Editar el archivo /etc/modprobe.d/blacklist para que no cargue más el driver libre iwl3945 al iniciar el sistema
$ vi /etc/modprobe.d/blacklist
Agregar la línea siguiente al final del archivo:
blacklist iwl3945
12.- Cargar en memoria el driver privativo recién compilado
$ sudo modprobe ipw3945
Si llegaste hasta acá sin problemas, vas a ver la luz prendida y tintineando del botón de activación de la wireless!!! Se quedará prendida fija cuando estemos asociados a una red inalámbrica.
Notas:
- El procedimiento es aplicable a otras distribuciones Linux con kernel 2.6.24 y superiores, de 32 y 64 bits.
- Si se actualiza el kernel de Linux, le pasará por arriba a los cambios que hicimos. En este caso debemos repetir el último comando del paso 2 y los pasos 6, 7, 8 y 12.
- “Jugueteé” un poco con la wireless y no saltó ningún problema, además de corregirse el encendido del led del botón de activación.
- Sigue dando error al setear la wireless en modo Master para hacer de Palola un access point. Tengo pendiente revolver más para ver si esto se puede corregir o definitivamente el hardware wireless no lo permite. No me voy a rendir tan fácil!!!











hermano una pregunta muy bueno tu post necesito ayuda urgente, tengo una lenovo sl500, he seguido los pass hasta el 7 pero como guardo los cambios despues de descomentar que debo de hacer luego que descomento..coloco los otros comandos despues?
por fa ayuda me tengo ya mucho tiempo tratando de instalar y sin resultados..gracias!!
la lonovo es una thinkpad sl500 con ubuntu 9.04 los primeros paso andan bien pero n el 7 des comento pero no se como guardar esos cambios..
anthony, si descomentaste con el editor “vi”, guardás los cambios y salís con Escape y luego “:wq”
En tu Ubuntu, en línea de comandos:
“man vi”
Suerte!
HERMANO NO ME FUNCIONA NADA DE ESO , CUANDO MODIFICO EL ARCHIVO EN EL TERMINA NI SIQUIERA ME DEJA COLOCAR NINGÚN COMANDO ADICIONAL YA QUE SOLO QUEDA COMO UN COMENTARIO, DE VERDAD QUE ESTO ME TIENE MAL, BRO SOY DE VENEZUELA NO SABES DE ALGIEN QUE LO PUEDA HACER FÍSICAMENTE DESDE ACA, COMO ME PODRÍAS AYUDAR HAY ALGÚN MANERA ESCRITORIO REMOTO O ALGO ASI??
anthony, te recomiendo que leas un poco cómo editar un archivo de texto en Linux. Realmente esto es mucho más fácil que compilar el driver en el que te metiste.
Además te va a servir más que si alguien te lo soluciona remotamente.
Suerte!
hermanito me voy por la solución remota explícame que debo de hacer me podrías ayudar…estoy de verdad muy cansado he dedicado sin mentira días tratando de instalarlo con diferentes tutoriales sin resultado alguno…
Me he perdido en vi (editar) con Ubuntu 9.04 no logro que me reconozca Intel wifi 3945 ABG en Fujitsu AMILO 2735 ¡que rroyo! no entiendo nada, porfii echenme un cabo, aunque sea un sargento.
Salu2.
Manub, si no te resulta el vi, podés editar el archivo en cualquier editor de texto gráfico, como el que viene por defecto en tu Ubuntu.
Yo creo que ya lo reconose lo que pasa que no me conecta despues de lanzar este comando:$ dmesg | grep -i iwl3945
[ 11.663809] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks
[ 11.663813] iwl3945: Copyright(c) 2003-2009 Intel Corporation
[ 11.663949] iwl3945 0000:08:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 11.663964] iwl3945 0000:08:00.0: setting latency timer to 64
[ 11.719173] iwl3945 0000:08:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[ 11.719176] iwl3945 0000:08:00.0: Detected Intel Wireless WiFi Link 3945ABG
[ 11.719305] iwl3945 0000:08:00.0: irq 2298 for MSI/MSI-X
[ 13.785052] iwl3945 0000:08:00.0: Radio Frequency Kill Switch is On:
[ 19.100686] iwl3945 0000:08:00.0: firmware: requesting lbm-iwlwifi-3945-2.ucode
[ 19.190752] iwl3945 0000:08:00.0: loaded firmware version 15.28.2.8
[ 19.190902] iwl3945 0000:08:00.0: Radio disabled by HW RF Kill switch
[ 21.592612] iwl3945 0000:08:00.0: Radio disabled by HW RF Kill switch
Hola Milton, este manual esta genial, lo estoy haciendo paso a poaso y todo va bien hasta el paso 7, al compilar me da el siguiente error
xxxx@xxxx-laptop:~/ipw3945/ipw3945-1.2.2$ make SHELL=/bin/bash clean
rm -f *.{mod.c,mod,o,ko,rej,orig} .*.{stamp,flags,cmd} .lst *.lst *~
rm -rf /home/stefy83/ipw3945/ipw3945-1.2.2/tmp /home/stefy83/ipw3945/ipw3945-1.2.2/.tmp_versions Module.symvers Modules.symvers
for file in *.{c,h}; do \
sed -i -e “s:\ *$::g” -e “s:\t*$::g” $file; \
done
xxxx@xxxx-laptop:~/ipw3945/ipw3945-1.2.2$ make SHELL=/bin/bash
Using ieee80211 subsystem version API v1 from:
Base: /lib/modules/2.6.28-14-generic/build/
Path: /lib/modules/2.6.28-14-generic/build/include/
EXTRA_CFLAGS = -DIPW3945_COMPAT=1 -g -Wa,-adhlms=check_inc.lst
mkdir -p /home/stefy83/ipw3945/ipw3945-1.2.2/tmp/.tmp_versions
make -C /lib/modules/2.6.28-14-generic/build M=/home/stefy83/ipw3945/ipw3945-1.2.2 MODVERDIR=/home/stefy83/ipw3945/ipw3945-1.2.2/tmp/.tmp_versions modules
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.28-14-generic’
CC [M] /home/stefy83/ipw3945/ipw3945-1.2.2/ipw3945.o
/home/stefy83/ipw3945/ipw3945-1.2.2/ipw3945.c: En la función ‘ipw_start_association’:
/home/stefy83/ipw3945/ipw3945-1.2.2/ipw3945.c:4457: error: declaración implícita de la función ‘ieee80211_tx_frame’
{standard input}: Assembler messages:
{standard input}:9: Warning: can’t open .lst: Permission denied
GAS LISTING page 1
1 .file “ipw3945.c”
9 .Ltext0:
GAS LISTING page 2
DEFINED SYMBOLS
*ABS*:0000000000000000 ipw3945.c
NO UNDEFINED SYMBOLS
make[2]: *** [/home/stefy83/ipw3945/ipw3945-1.2.2/ipw3945.o] Error 1
make[1]: *** [_module_/home/stefy83/ipw3945/ipw3945-1.2.2] Error 2
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.28-14-generic’
make: *** [modules] Error 2
xxxx@xxxx-laptop:~/ipw3945/ipw3945-1.2.2$
he descomentado la linea #CONFIG_IPW3945_MONITOR=y en el paso anterior, que puede estar pasando??? muchas gracias por vuestra ayuda