viernes, 16 de marzo de 2007

Wireless, broadcom 1390

La tarjeta wireless de esta maquina es una "broadcom" , y todos sabemos que eso significa fuertes dolores de cabeza.
De hecho, he comprobado que en la seccion de "contacto" de broadcom, ya tienen asignado un subject por defecto que se llama "linux driver" asi que a disparar mails tocan...
En cualquier caso, tambien con la wireless triunfó el bien sobre el mal ....

Un poco de lspci, in google's honor:

lspci
01:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)

lspci -v
01:00.0 Network controller: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card (rev 01)
Subsystem: Hewlett-Packard Company Unknown device 1363
Flags: bus master, fast devsel, latency 0, IRQ 225
Memory at c3000000 (32-bit, non-prefetchable) [size=16K]
Capabilities:

lspci -nn | grep 01:00.0
01:00.0 Network controller [0280]: Broadcom Corporation Dell Wireless 1390 WLAN Mini-PCI Card [14e4:4311] (rev 01)

Desde el principio, sabía que lo que me esperaba era "la candela", y de hecho así fue...
Tras mucho googlear, he llegado a las siguientes conclusiones:
  1. Hay dos enfoques para Esto: usar el ndiswrapper, que básicamente consiste en "hacerle" creer a la tarjeta que está viviendo en un entorno windows, y usar los drivers de windows "dentro" de ahí. El otro enfoque es usar el módulo bcm43xx que unos valientes belgas han sacado adelante a pesar de la poca cooperación (más bien ninguna), de los "broadcom guys"
  2. Despues de mucho googlear, parece ser que el driver del "broadcom 1390" es el 4311, y ese solo estara bien soportado en el kernel 2.6.20, asi que hay que lanzarse a por el ndiswrapper.
Bueno, lo siguiente seria instalar y usar el ndiswrapper. Para eso , hay que usar un pcoo de aqui y otro poco de alli

En resumen, lo primero es instalar el ndiswrapper, ...

utilidad para cargar modulos y compilarlos ...
# apt-get install module-assistant

ahora, con esto, el solito se encarga de todo. bajar el codigo fuente, compilarlo, crear un paqueta binario e instalarlo.

# module-assistant auto-install ndiswrapper
y ahora, vamos a por el driver de windows. La gracia es que ahora cargamos dentro del "ndiswrapper", el bcmwl5.inf de windows, y "hope for the best":
  1. Primero hay que encontrar el driver del la tarjeta wireless para windowsXP, asumiendo que el ndiswrapper este preparado para XP y no para vista. Como yo tuve que comprar el HP con Vista, no pude usar mi driver (bcmwl6.inf) , y tuve que usar este driver de la broadcom 1390 para XP, del sitio web de los chicos de packard. Si no está ya, el archivo lo tienes tambien aqui: archivo inf para broadcom 1390 en XP
  2. Una vez que hayas descargado el driver, (si te has descargado el *.EXE), tienes que extraer el archivo bcmwl5.inf del exe, y para eso necesitas el paquete "cabextract" (si te has bajado el *.inf directamente, no lo necesitas)
# sudo apt-get install cabextract
# sudo cabextract sp34152.exe (o como se llame, este paso puede no ser necesario)
sudo ndiswrapper -e bcmwl5
sudo ndiswrapper -i /home/kevin/compaq-bcm4311/bcmwl5.inf
sudo ndiswrapper -l
sudo ndiswrapper -m
sudo modprobe ndiswrapper
y mi dmesg:
Mar 19 00:52:31 mclure kernel: ndiswrapper version 1.28 loaded (preempt=no,smp=yes)
Mar 19 00:52:31 mclure kernel: usbcore: registered new driver ndiswrapper
Mar 19 00:54:07 mclure kernel: usbcore: deregistering driver ndiswrapper
Mar 19 00:54:49 mclure kernel: ndiswrapper version 1.28 loaded (preempt=no,smp=yes)
Mar 19 00:54:49 mclure kernel: ndiswrapper (link_pe_images:577): fixing KI_USER_SHARED_DATA address in the driver
Mar 19 00:54:49 mclure kernel: ndiswrapper: driver bcmwl5 (Broadcom,10/12/2006, 4.100.15.5) loaded
Mar 19 00:54:49 mclure kernel: ACPI: PCI Interrupt Link [LK2E] enabled at IRQ 19
Mar 19 00:54:49 mclure kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LK2E] -> GSI 19 (level, high) -> IRQ 225
Mar 19 00:54:49 mclure kernel: PCI: Setting latency timer of device 0000:01:00.0 to 64
Mar 19 00:54:49 mclure kernel: ndiswrapper: using IRQ 225
Mar 19 00:54:50 mclure kernel: wlan0: vendor: ''
Mar 19 00:54:50 mclure kernel: wlan0: ethernet device 00:1a:73:23:0d:79 using NDIS driver bcmwl5, 14E4:4311.5.conf
Mar 19 00:54:50 mclure kernel: wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
Mar 19 00:54:50 mclure kernel: usbcore: registered new driver ndiswrapper
Una vez hecho esto, los pasos clasicos para levantar una tarjeta, que en mi caso se llama "wlan0"

$ sudo iwconfig wlan0 essid "TuNombreEssid"
$ sudo iwconfig wlan0 mode Ad-Hoc
$ sudo dhclient wlan0
Obviamente, sera de mil modos distintos segun el "flavour". Mucha suerte

No hay comentarios: