lunes, 6 de diciembre de 2010

instalacion y config del modulo b43 en Debian y Ubuntu para una Broadcom 14e4:4315

Pues si, este POST me ha tomado mucho tiempo, por las siguienes razones:
1. pocos recursos en la web al respecto
2. el tremendo rollo de los hardware con modulos privativos con el open-source
3. la enorme gama de formas de instalacion de wireless broadcom con gnu/linux
4. el modulo de los repos - wl- realmente sirve para muy poco - if you know what I' talking about ;-)

pero bueno, finalmente aca esta el howto:
1. no hay una unica forma de hacer esto para todas las wireless broadcom!!!! asi que no pierdan el tiempo siguiendo howtos genericos

2. Desplegar la version de tu chipset:
$ lspci -vvnn | grep 14e4
02:00.0 0280: 14e4:4315 (rev 01)

3. desplegar info detallada de todas las NIC's de mi box:
# lshw -C network
*-network
description: Network controller
product: BCM4312 802.11b/g
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:02:00.0
version: 01
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=wl0 latency=0 module=wl
*-network
description: Ethernet interface
product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:08:00.0
logical name: eth0
version: 02
serial: 00:21:cc:39:4f:33
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical
configuration: broadcast=yes driver=r8169 driverversion=2.3LK-NAPI latency=0 module=r8169 multicast=yes
*-network:0 DISABLED
description: Ethernet interface
physical id: 1
logical name: vboxnet0
serial: 0a:00:27:00:00:00
capabilities: ethernet physical
configuration: broadcast=yes multicast=yes
*-network:1
description: Wireless interface
physical id: 2
logical name: wlan0
serial: 00:24:2c:74:37:7a
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=wl driverversion=2.6.34.7-htamayo firmware=N/A ip=xxx.xxx.xxx.xxx multicast=yes wireless=IEEE 802.11bg

como podes ver, lo que nos interesa es el dispositivo wlan0, que usa el driver wl, igual en tu sistema puede llamarse ethx.

4. Ponemos en blacklist el driver wl:
# echo "blacklist wl" >> /etc/modprobe.d/blacklist.conf

5. Actualiza el kernel, por lo menos a la version 2.6.34.xx, como tendras que compilarlo vos mismo este POST puede servirte.

6. instalar b43:
#apt-get install b43-fwcutter

7. configurar algunas opciones para rendimiento:
#touch /etc/modprobe.d/b43.conf echo >> "options b43 pio=1 qos=0" | tee -a /etc/modprobe.d/b43.conf


8. levantemos el modulo:
# rmmod b43
# modprobe b43 pio=1 qos=0

A estas alturas, ya tu tarjeta ya wireless ya debe estar habilitada, por lo menos en Debian Lenny asi fue.

9. troubleshooting solo para Ubuntu 10-04
verifiquemos si tu tarjeta esta habilitada:
$ sudo iwconfig wlan0 up
SIOCSIFFLAGS: Unknown error 132

para corregir esto haces:
$ sudo rfkill unblock all

listo, ahora ya ningun proceso esta bloqueando tu wireless, asi que proba conectarte a un access point y a utilizar todo el poder del b43

happy coding!!!