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!
30 Comentarios | deja el tuyo



El driver funciona perfectamente para inyectar paquetes
Lo puedes comprobar ejecutando en una shell: ifconfig wlan0 up; airmon-ng start wlan0; airmon-ng -9 m0n
Obviamente debes tener instalado el paquete aircrack-ng para hacer las pruebas.
Saludos!
Correción:
No es m0n, sino mon0
Hola¡
Excelente info¡
Saludos
saludos
esta buena la info pero ya hice todos los pasos que me decias pero no logre hacer funcionar la tarjeta y no me marco ningun error tienes alguna idea de que es lo que paso?
gracias por compartir
Hola Daniel,
Por favor verifica que realizaste los pasos al pie de la letra.
¿Qué distribución estás usando? ¿Qué versión del kernel? ¿Lo configuraste tu mismo? Si es así, ¿Podrías subir el archivo de configuración?
Espero tus respuestas,
Saludos!
tengo fedora 12 y use el kernel 2.6.32.8 y el archivo de configuracion no se a cual te refieras pero si te sirve de algo es el primer kernel que compilo asi que tal vez fue algo de eso
otra cosa cuando escribo modprobe b43 la tarjeta empieza a funcionar tienes alguna idea?
Por favor escribe ésto en la shell:
zcat /proc/config.gz > ~/config-kernel
Y sube el archivo config-kernel que se encuentra en tu home. Además asegurate de que instalaste bien el firmware, siguiendo los pasos explicados.
Estoy casi seguro de que ese es el problema.
ya escribi lo que me dijiste pero me dice que el archivo /proc/config.gz no existe pero cuando escribo modprobe b43 la inalambrica empieza a funcionar sera que compile mal el kernel??
Saludos y gracias por ayudarme
Hola Daniel.
1. Si no existe el archivo /proc/config.gz es que no compilaste el kernel con la opción: IKCONFIG_PROC
2. Si la tarjeta funciona cuando escribes modprobe b43, entonces es que tienes todo bien! Lo único que te falta es decirle al sistema operativo que cargue ese módulo automáticamente al iniciar. Esto lo haces de maneras distintas según la distribución que tenga. Algunas veces basta con editar el archibo /etc/modprobe.conf… otras veces es necesario añadir un archivo llamado kernel2.6 dentro del directorio /etc/modules.autoload.d/ que contiene el nombre y parámetros del módulo a cargar.
En conclusión… busca en Google (para tu distribución en específico) cómo hacer para autocargar módulos en el kernel.
Un saludo!
muchas gracias cortex despues de estar buscando un buen rato y no encontrar nada decidi poner en el archivo rc.local modprobe b43 ya que no encontre el archivo que se supone que es para mi distribucion creo que no ay ningun problema con hacerlo de esa manera bueno eso espero parece que ya funciona ya pude ponerla en modo monitor gracias y saludos!!!!!
ups!!! perdon tambien gracias a ti cristian
saludos