Adaptei este passo-a-passo desse outro , que por sua vez adptou do passo-a-passo oferecido pela Broadcom na mesma página para download do driver, aqui.
Segundo o site, os pacotes oferecidos (e sobre o qual traterei) contêm “Broadcom’s IEEE 802.11a/b/g/n hybrid Linux® device driver” para ser usado em hardware baseado em “Broadcom’s BCM4311-, BCM4312-, BCM4321-, and BCM4322”.
Existem diferentes tarballs par arquiteturas 32 bit e 64 bit x86.
Pelo que que parece os caras estão realmente trabalhando nesse código. Desde o fim de outubro já disponibilizaram umas trêsversões diferentes, sendo que a última é de 31 de dezembro de 2008 e que já compila e roda sem problemas nos kernels 2.6.27 e 2.6.28.
Bom, depois que você baixou o driver (lembrando de conferir a sua arquitetura. digite uname -m
em um terminal e se aparecer qualquer coisa como x86_64
, baixe o 64bits; caso contrário, o 32 deve funcionar), decompacte-o em algum diretório. Cuidado aqui, pois ele não vai criar um diretório para colocar tudo dentro, mas sim decompactar no diretório corrente, caso você use tar xf hybrid-portsrc***.tar.gz
. < a href=”http://en.wikipedia.org/wiki/Tarbomb#Tarbombs”>Tarbomb?!.
Depois disso você vai precisar ter os headers do seu kernel instalado. Se você compilou seu próprio kernel, eles estarão lá. Se você usa o kernel da sua distribuição, você terá que baixar alguns pacotes como linux-headers-2.6.27 ou algo assim. Para saber a versão do kernel que você está usando no momento, use uname -r
.
De posse desses pacotes e da versão do seu kernel, tudo que você precisa é digitar, no diretório raiz dos fontes do driver:
make -C /lib/modules/`uname -r`/build M=`pwd`
Ainda existe um warning sobre a falta de MODULE_LICENSE()
, mas nada que impeça o funcionamento.
Se você digitar echo $?
e receber um 0, então o driver foi compilado com sucesso.
Esse módulo depende de pelo menos um outro, chamado ieee80211_crypt
. É interessante, além dele, carregar os módulos que dão suporte a métodos de encriptação, caso eles não tenham sido compilados built-in. Para tal, faça:
sudo modprobe ieee80211_crypt
sudo modprobe ieee80211_crypt_tkip
sudo modprobe ieee80211_crypt_ccmp
sudo insmod wl.ko
Certo, só que você não quer ter que fazer isso toda vez que inicia a máquina, não é mesmo? Então copie o novo driver para o diretório de módulos do kernel e atualize a relação de dependências:
cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
depmod -a
Por fim, edite o arquivo /etc/modules
adicionando as seguintes linhas:
ieee80211_crypt
ieee80211_crypt_tkip
ieee80211_crypt_ccmp
wl
Isso vai fazer com que os módulos sejam carregados na inicialização.
Prontinho, agora você tem sua wireless funcionando, “rodando” um código que você pode conhecer. =o)
Ah, quase ia esquecendo. Caso você esteja usando os drivers b43, b43legacy ou b43xx, certifique-se de removê-los antes de carregado o novo driver hybrid. Remover o ndiswrapper também pode ser uma boa pedida, caso você não dependa dele para mais nada.
rmmod bcm43xx; rmmod b43; rmmod b43legacy; rm ndiswrapper