viernes 19 de octubre de 2007

Este How-To pretende configurar cualquier tarjeta wireless con los drivers de Window$, voy a hacerlo para las Broadcom 43xx y para la Atheros AR5006EG...con algunas ligeras modificaciones funcionaría con cualquier tarjeta wireless. El procedimiento es muy similar en todas las distribuciones de Linux..en este caso me voy a centrar en Ubuntu / Debian / Arch

Primero que nada, si tenes una Broadcom 43xx hay que poner en la "lista negra" el módulo que viene con el Kernel (a partir de 2.6.18).

Antes de comenzar te recomiendo que lo intentes sobre una instalación limpia de ndiswrapper sin drivers previamente instalados ya que aveces aunq los remuevas quedan guardadas las configuraciones. Tampoco tomo en cuenta que hayas instalado sin éxito el driver de linux para tu tarjeta, si quiciste instalar desde los drivers, probablemente se intente levantar el módulo de estos y haga conflicto con el de ndiswrapper...asi que recomiendo seguir esto para una instalación LIMPIA.

Para remover un driver instalado previamente: $su
#ndiswrapper -r driver

Para ver que tarjeta tienes corre el comando: $lspci | grep Network o $lspci y buscar en la lista. Ojo porque a mi Ubuntu me detectaba la tarj wireless como una Dell 13900 o algo asi..y en verdad es una Broadcom 4311, Arch me devuelve lo siguiente:

[root@myhost local]# lspci | grep Network
06:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)
08:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 01)

Ethernet es la de cable.

Acá van los pasos, se detallan para las Broadcom y para la Atheros AR5006EG

1) (este paso es solo para Broadcom 43xx)
Ubuntu/Debian: $sudo nano /etc/modprobe.d/blacklist , agregar al final blacklist bcm43xx
ArchLinux:#nano /etc/rc.conf , agregar a MOD_BLACKLIST=(bcm43xx)

2) Instalar ndiswrapper (ndiswrapper-utils es opcional y no siempre esta en los repos)
Ubuntu/Debian: $sudo apt-get install ndiswrapper ndiswrapper-utils
ArchLinux: #pacman -S ndiswrapper ndiswrapper-utils

3) Solo para Ubuntu/Debian: $sudo apt-get install module-assistant build-essentials

4) Instalar los Headers del Kernel, para eso con $uname -r nos fijamos la version del kernel.
Ubuntu/Debian: $sudo apt-get install linux-headers-tu.version.del.kernel
$ln -s /usr/src/linux-tu.version.del.kernel /lib/modules/tu.version.del.kernel/build

ArchLinux:#pacman -S linux-headers-tu.version.del.kernel
#ln -s /usr/src/linux-tu.version.del.kernel /lib/modules/tu.version.del.kernel/build

Ejemplo:

[root@myhost martin]# uname -r
2.6.22-ARCH

osea que cambiaria: tu.version.del.kernel por 2.6.22-ARCH

5) Bajar los drivers:

Bcm43xx los podes bajar de aqui
Atheros AR5006EG los podes bajar de aqui

Lamento que uno este en .rar y otro en .zip ...no los subi yo :P ...con el programa unrar y unzip los descomprimen.

6) Vamos a crear una carpeta en /home/usuario/ con el nombre driverwifi y descomprimimos ahi los archivos, que queden entonces en /home/usuario/driverwifi/archivo.inf y el otro archivo.inf ...por ejemplo el de Atheros se que viene con otras "yerbas" windowseras..no son lo importante pero con que esté el .inf y el .sys ya sirve

ahora a instalar: a) podemos ir hasta el directorio /home/usuario/driverwifi y poner:
$su
#ndiswrapper -i net5211.inf para la Atheros y bcmwl5.inf para la bcm

b) $su
#ndiswrapper -i /home/usuario/driverwifi/net5211.inf o bcmwl5.inf

7) Ahora a controlar que el driver esté correctamente instalado:
Ubuntu/Debian: $sudo ndiswrapper -l
ArchLinux : #ndiswrapper -l

Ejemplo!

[root@myhost local]# ndiswrapper -l
bcmwl5 : driver installed
device (14E4:4311) present (alternate driver: bcm43xx)
bcmwl5.conf : invalid driver!

Anotar en cualquier lado el numero que esta entre ( ) luego de device: en MI caso el 14E4:4311

8) Ahora solo resta copiar las configuraciones y para eso usamos lo que anotaste

El nombre del driver es el nombre del .inf pero sin la extension... ej: net5211.inf entonces el driver se llama: net5211. En el caso para la Broadcom el driver se llama bcmwl5 asi que usando el nombre del driver y el numero de la configuracion que tocaron pueden sustituir.

En mi caso:

$su
#cp /etc/ndiswrapper/bcmwl5/14E4:4324.5.conf /etc/ndiswrapper/bcmwl5.conf

Nota: al número se le agrega .5.conf

9) Esto es SOLO para las Broadcom:
Ubuntu/Debian: $sudo nano /etc/ndiswrapper/bcmwl5.conf
ArchLinux: #nano /etc/ndiswrapper/bcmwl5.conf

Buscar la linea que dice AfterBurner | 1 y cambiar el 1 por un 0

Guardar los cambios

10) Ahora a levantar el modulo
Ubuntu/Debian: $sudo depmod -a
$sudo modprobe ndiswrapper

ArchLinux: #depmod -a
#modprobe ndiswrapper

11) Punto final! ...hay que hacer que se cargue el módulo al inicio..sino hay que levantarlo a mano siempre y es molesto.

Ubuntu/Debian: $sudo nano /etc/modules

Agregar: ndiswrapper en la última linea

ArchLinux: #nano /etc/rc.conf en MODULES=( ... ndiswrapper) agregar ndiswrapper dentro

Ya podemos darle click al NetworkManager, en Ubuntu ya viene por defecto..en Arch no..pero en el Wiki explica claramente como hacerlo.

http://www.archlinux.com.ar/wiki/index.php/Networkmanager

Espero que les sirva, suerte!!! cualquier cosa que este mal me lo hacen saber en los comentarios :-)

9 comentarios:

juanmf dijo...

hola! muy bueno tu HowTo. segui casi al pie de la letra, dado que uso slackware y tube que instalar el ndiswrapper.
instale todo lo que dijiste pero esta es la salida del dmesg:

ndiswrapper version 1.47 loaded (smp=yes)
ndiswrapper: driver bcmwl5 (Broadcom,03/23/2006, 4.40.19.0) loaded
ndiswrapper (NdisWriteErrorLogEntry:192): log: C000138D, count: 1, return_address: f950fd7c
ndiswrapper (NdisWriteErrorLogEntry:195): code: 0x10e
ndiswrapper (mp_init:216): couldn't initialize device: C0000001
ndiswrapper (pnp_start_device:439): Windows driver couldn't initialize the device (C0000001)
ndiswrapper (mp_halt:258): device dba50480 is not initialized - not halting
ndiswrapper: device eth%d removed
ndiswrapper: probe of 0000:05:00.0 failed with error -22
usbcore: registered new interface driver ndiswrapper

y el ifconfig -a no la ve más.

juanmf dijo...

Me olvidaba! no tengo autoBurner en el config. lo mas parecido es afterburner
y la salida de mi lspci es:
05:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)
08:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02)

GRACIAS
primera vez que llego a un howto el día de su publicación

juanmf dijo...

por ultimo: te dejo mi mail por si no vale la pena publicar la respuesta a mis inquietudes. juanmf (at) gmail.com

elsagas dijo...

Hola Juan, muchas gracias por pasarte.. te comento que yo tengo la misma tarjeta que vos y me anda de 10 en todas las distros.

Te escribo por acá asi quizas a alguien también le sirva.

Lo de AutoBurn lo escribi mal yo, ahora lo corrijo, es AfterBurner.

El problema es aca:
probe of 0000:05:00.0 failed with error -22

Las configuraciones..pasame el output de ndiswrapper -l y fijate bien los pasos! ASEGURATE de agregar bcm43xx a la blacklist de módulos que se cargan al principio.

Saludos, estamos en contacto

juanmf dijo...

Hola :) aca te manod lo que me pedis:
bash-3.1# ndiswrapper -l
bcmwl5 : driver installed
device (14E4:4311) present (alternate driver: bcm43xx)
bcmwl5.conf : invalid driver!

lei por ahy que
probe of 0000:05:00.0 failed with error -22

puede ser un error de conflicto de interrupciones. No se como indagar en eso.
voy a revisar los pasos.
Gracias.

elsagas dijo...

El driver esta correctamente instalado, el error viene por otro lado..mas bien por el lado del kernel o algun patch de la gente slackware.

Prueba hacer esto en un liveCD de otra distro y vas a ver que anda a los 4 vientos.

No conozco Slackware, nunca lo utilizé..pero seguro mas de uno debe usarlo y las tarjetas Broadcom son muy populares, buscate por internet..

mis disculpas..

juanmf dijo...

mil gracias! no creas que me desaparecí porque no pudiste ayudar más, tu tutorial esta muy bueno, yo andube muy ocupado para volver a intentar. hace falta más gente buena onda como vos! SUERTE. Slack tiene sus contratiempos, pero me gusta :p

Rodolfo dijo...

Hola a todos,

Yo segui el tutorial al pie de la letra, pero no conseguía que me funcionara el driver de Windows. El error que me daba era el mismo que a juanmf:
ndiswrapper (mp_init:216): couldn't initialize device: C0000001

Tengo una laptop marca ASUS X51RL AP019A con chipset Atheros AR5006EG.

Encontré que Atheros tiene dos versiones de dichos drivers para Windows. En este tutorial se utiliza la versión 5.3, pero hay otra que es la 6.0 y es la que a mi me funcionó.

Copio el enlace a la página de Atheros:
http://www.atheros.cz/download.php?atheros=AR5006EG&system=1

El nombre del driver con la nueva versión es net5416 (en lugar del net5211)

Cambiando eso se ha solucionado el problema.

Espero que esto pueda ayudar a más gente.

Anónimo dijo...

buy viagra now cialis v s viagra buying viagra online herbal viagra reviews viagra soft tabs viagra women viagra facts viagra 6 free samples buy viagra in england mexican viagra cheap viagra tablets bought viagra fuerteventura new viagra viagra price comparison