Bom pessoal, eu andava meio insatisfeito com minha placa wireless, sempre que eu ia me conectar a uma rede segura (WAP2) eu tinha problemas, as vezes demorava muito para conectar, outras vezes era preciso tentar por várias vezes, enfim, isso não era normal e estava me deixando puto chateado, afinal de contas eu estava utilizando um driver feito para Windows, e isso basta, para que as coisas não funcionem bem :) . Eu tinha configurado essa placa utilizando o meu post Configurando Wireless BCM4312 no Debian - Ndiswrapper

Esta solução foi testada em meu Notebook Dell Inspiron 1525 rodando Debian Lenny (Agora em versão estável, vale a pena conferir), porém, acredito que possa ser usada em qualquer distro,  já que iremos compilar  e ativar o módulo que será utilizado pelo kernel.

Outros placa suportadas são:

* BCM4310
* BCM4311
* BCM4312
* BCM4321
* BCM4322

Primeiro abra nosso amigo Terminal :D e se logue como root.

Caso você tenha usado os passos do post passado ou utilizava o ndiswrapper execute a linha abaixo.

*** ATENÇÃO AMANTES DO CTRL+C CTRL+V, ESTE POST CONTÉM COMANDOS COM  (" ASPAS ) QUE SÃO CARACTERES DIFERENTES DAS ( ASPAS) DO LINUX. REDIGITE OS COMANDOS. ***

# apt-get remove ndiswrapper-common ndiswrapper-utils-1.9

Certifique-se que você tem instalado o module-assistant

# apt-get install module-assistant

Rode o module-assistant prepare para que o sistema instale tudo que necessário para a compilação, build-essential, linux-headers, etc.

# module-assistant prepare

Pronto, agora estamos com tudo preparado para compilar novos módulos para o kernel e vamos ao que interessa.

# cd /usr/src
Entra no diretórios onde estão localizados alguns fontes

# mkdir hybrid_wl
Criando a pasta que vai receber o arquivo com o fonte

# cd hybrid_wl
Entrando no diretório

# wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
Fazendo download do fonte

# tar -xzf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
Descompactando o fonte

# make -C /lib/modules/`uname -r`/build M=`pwd` clean
Executando limpeza antes da compilação definitiva

# make -C /lib/modules/`uname -r`/build M=`pwd`
Compilando o módulo

# rmmod bcm43xx b43 b43legacy ssb wl ndiswrapper
Apagando possíveis módulos instalados anteriormente

# modprobe ieee80211_crypt_tkip
# modprobe ieee80211
Carregando módulos necessários

# mkdir /lib/modules/`uname -r`/misc/
Criando diretório

# cp wl.ko /lib/modules/`uname -r`/misc/
Copiando módulo para o diretório

# insmod /lib/modules/`uname -r`/misc/wl.ko
Instalando o módulo

# depmod -a
Atualizando a lista de dependências do kernel

Como garantia vamos colocar os módulos antigos que não serão utilizados na backlist
# echo "blacklist bcm43xx" >> /etc/modprobe.d/blacklist
# echo "blacklist b43" >> /etc/modprobe.d/blacklist
# echo "blacklist b43legacy" >> /etc/modprobe.d/blacklist
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist

Agora vamos adicional o modulo wl que acamos de compilar para que seja carregado automaticamente
# echo "ieee80211_crypt_tkip"
>> /etc/modules
# echo "ieee80211" >> /etc/modules
# echo "wl" >> /etc/modules

Pronto reinicie o notebook e tenha sua wireless funcionando perfeitamente.
# init 6

Post baseado em http://www.opensourcespot.org/content/view/1031/103/.

Abraços e até o próximo post.