Usando b43 para tarjetas inalámbricas BCM43xx en Linux
Hola a todos!
Otra vez Cortex, que llevaba un buen rato sin pasarse por aquí.
Para los que aún no se han enterado, el día de hoy se hizo estable la versión 2.6.32 del kernel Linux. Como siempre, incluyendo múltiples mejoras, varios añadidos y correcciones. Por mencionar algunas de las cosas nuevas, encontraremos soporte 3D para los chips gráficos Radeon más nuevos (algo que sé que muchos estaban esperando) así como soporte para KMS, Devtmpfs con lo cual se pretende tener un Linux independiente de Udev, mejoras en el sistema de archivos Btrfs, mejor manejo de memoria y mucho más.
Algo que todos los usuarios de tarjetas inalámbricas BCM43xx estabamos esperando, era el soporte de éste chipset por el driver b43. ¿Motivos? Muchos. Por ejemplo, no podíamos poner nuestra tarjeta en modo monitor y eso ya es mucho que decir.
En ésta nueva versión del kernel, ya hay soporte para éste tipo de chipsets y lo más recomendable es hacer la migración inmediata. No hay comparación alguna con el driver broadcom-sta, se nota un mejor funcionamiento, algo que los usuarios Windows podían disfrutar desde hace un buen rato ya.
Veamos como podemos disfrutar de éste driver.
Lo primero, es decir, que se necesita hacer uso de la versión 2.6.32 de Linux; ninguna versión anterior servirá. Si aún no te animas a compilar tus kernel personalizados (algo de lo que habíamos hablado I II III), la opción que te queda es esperar a que los desarrolladores de tu distribución incluyan el paquete precompilado con ésta versión. Si usas la ramas estables, probablemente pasará un buen tiempo antes de que ésto ocurra.
El proceso lo llevaré acabo desde mi Gentoo.
1. Instalamos gentoo-sources-2.6.32
ACCEPT_KEYWORDS=”~arch” emerge -av gentoo-sources
2. Configuramos el kernel normalmente y agregamos el soporte
Device Drivers -->
Network device support -->
Wireless LAN
[*] Wireless LAN (IEEE 802.11)
<*> Broadcom 43xx wireless support (mac80211 stack)
[ ] Broadcom 43xx PCMCIA device support
[*] Broadcom 43xx debugging
3. Compilamos, copiamos kernel a /boot y modificamos GRUB
mount /boot
cp arch/x86_64/bzImage /boot/gentoo-2.6.32
vim /boot/grub/grub.conf
4. Una vez instalado el kernel, procedemos a instalar b43-fwcutter y el firmware. La versión que incluye hoy, tu distribución, no te servirá. Descarguemos la versión en desarrollo
cd b43-tools/fwcutter
make
cd ..
5. Descarguemos e instalemos el firmware
wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2
tar xjf broadcom-wl-4.178.10.4.tar.bz2
cd broadcom-wl-4.178.10.4/linux
sudo ../../fwcutter/b43-fwcutter -w “$FIRMWARE_INSTALL_DIR” wl_apsta.o
6. Reiniciamos
Una vez hayamos terminado de reiniciar, como root comprobamos que la interfaz esté funcionando:
ifconfig wlan1 up
iwlist wlan1 scan
¡Eso es todo! ¡A disfrutar sanamente del modo monitor!
41 Comentarios | deja el tuyo





Brutal parcero…. justo estaba compilando esta nueva versión del kernel cuando me di cuenta que el twitterfeed había publicado esta nueva entrada…
Muy bueno todo… gracias!
Un abrazo!
RT: @casidiablo: Usando b43 para tarjetas inalámbricas BCM4312 en Linux http://bit.ly/6X46Ld
Me alegro por fin, sobre todo por poder poner la tarjeta en modo monitor….
no ser malitos
jaja
Saludos
Bueno, yo compilé el 2.6.32 e incluí el módulo b43, pero no reconoció correctamente mi BCM4312
Esperaré un poco más a ver cómo van las cosas con este módulo, mientras me quedo en 2.6.30-5 y el módulo que provee el fabricante
¿Qué distribución estás usando?
Además, ¿instalaste correctamente el firmware? En el 90% ese es el motivo por el que no se levanta la interfaz.
Estoy usando Debian testing. La instalación del firmware la hice con el paquete b43-fwcutter
Claro, lo que pensaba. Si lees bien el post, verás que hay una parte en la que dije:
“4. Una vez instalado el kernel, procedemos a instalar b43-fwcutter y el firmware. La versión que incluye hoy, tu distribución, no te servirá.”
Tienes que seguir los pasos al pie de la letra (adaptando para tu distribución) si quieres instalar bien el firmware.
Estoy casi seguro que ni siquiera en la rama inestable (SID), está esa versión de b43-fwcutter.
Suerte con eso!
Borré el firmware anterior y probé con el firmware que colocas (siguiendo tus paso al pie de la letra) y realmente no funciona. Al momento de escanear las redes con “wlist wlan0 scan” me dice:
wlan0 Interface doesn’t support scanning: Device or resource busy
Y en ocasiones me dice:
wlan0 Interface doesn’t support scanning: Resource temporarily unavailable
Incluso hay veces que que queda colgada la máquina (seguramente el driver vuelve loco al kernel)
Primero que todo gracias por la existencia de este espacio! Linux no es ubuntu pero mucha gente ahora no se da cuenta de eso jejeje…
Tengo Gentoo, he realizado los pasos de esta guía y todo salió bien; al parecer ahora mi módem bcm4311 ahora soporta el modo monitor. Gracias!
Pero antes de poder disfrutar de las consecuencias de eso jejeje tengo un problema: al iniciar el computador, el modem no arranca (permanece con la lucecita color naranja) hasta que ejecuto ‘ifconfig wlan0 up’ y ahí si arranca. Además de esto, en Networkmanager no aparece listado ningún dispositivo wifi… No tengo idea de qué es lo que está pasando con todo esto…
Hola Acidrums4,
Lo primero que te recomiendo es que reemplaces NetworkManager por Wicd. Éste último es mucho mejor y aparte te permite más configuraciones y para cada red en específico. En Gentoo sería lo mismo:
emerge -C networkmanager
emerge -av wicd
rc-update del net.* (reemplaza el * por las interfaces que hayan)
gpasswd -a usuario users
rc-update add wicd
Y queda listo. Probablemente esa sea la solución mas apropiada.
Mira y nos cuentas.
He probado instalando wicd siguiendo los pasos que has mencionado; aunque funciona perfectamente el gran inconveniente que tuve fué que no hay soporte para conexiones ppp: en mi casa dispongo de un modem usb 3G para conectarme a internet, mientras que el modem wifi lo uso para conectarme en otros sitios… Por lo que he visto, wicd no tiene soporte para las conexiones ppp.
Por cierto, reinstalé networkmanager y al hacer “sudo modprobe b43″ el modem wifi ya se activó y networkmanager ya reconoció las redes inalámbricas disponibles. Al parecer tocaba recompilar por tercera vez networkmanager
Solo un par de cosas c0rtex, antes tambien se podia tener las broadcom en modo monitor, pero era bastante tedioso porque tocaba aparte de parchar el kernel para el uso normal de la inalambrica, parcharlo para soporte en modo monitor, ahora veo que con le kernel 2.6.32 se evita eso, lo segundo es que con iwlist scan no se comprueba que la inalambrica esta en modo monitor, hay solo sabemos que nuestra wireless funciona !! xDD, para probar el modo monitor seria inyectar paquetes o usar kismet por ejemplo para el scaneo de nodos y usuarios..
Gneo, antes sí se podían poner las Broadcom en modo monitor, pero la BCM4312 NO SE PODÍA, únicamente hasta la versión 2.6.32, se vino a hacer posible ésta opción.
En cuanto a lo de iwlist scan, en ningún momento se dijo que con ese se ponía la interfaz en modo monitor, observa que dije: “como root comprobamos que la interfaz esté funcionando”
Para ponerla en modo monitor se podría hacer uso de la suite Aircrack-ng con el comando: airmon-ng start [interfaz] ó incluso usando el paquete estandar, wireless-tools.
Para más información, revisa éste link: http://www.aircrack-ng.org/doku.php?id=getting_started
Suerte!
jajaja, C0rtex tan pelión jeje, bueno yo como tengo una BCM4311 desde hace ya un tiempo la podia tener en modo monitor pero me tocaba hacer muchos parches y era tedioso cada vez que se compilaba un nuevo kernel, y lo de iwlist scan lo dije porque lo vi en uno de los comentarios….
jajjaa c0rtex pelion…
Me va tocar banearlos a los dos