Instalando driver Broadcom 802.11 Linux STA a partir dos fontes no linux

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

5 comentários sobre “Instalando driver Broadcom 802.11 Linux STA a partir dos fontes no linux

  1. No Debian Lenny com kernel 2.6.26 não funcionou, tive que continuar com o problemático driver b43x.
    O problema pode ser do Kernel? Já que vocÊ citou que funciona perfeitamente no 2.6.27 e 2.6.28?

  2. Olá tudo bem?
    Fiz do jeito que vc mostrou e deu certo, quando digitei insmod wl.ko a luz do wirelles do meu not ficou azul e a placa foi reconhecida, mas como nao sei como editar o arquivo /etc/modules, porque nao encontrei o mesmo, resolvi reiniciar o not, dai quando voltei, digitei os comandos no terminal:
    sudo modprobe ieee80211_crypt
    sudo modprobe ieee80211_crypt_tkip
    sudo modprobe ieee80211_crypt_ccmp

    quando digito sudo insmod wl.ko aparece esse erro: insmod: can’t read ‘wl.ko’: No such file or directory

    Bom se puder me ajudar, pq da primeira vez funcionou, mas agora aparece esse erro, só falta isso no meu not(um HP Pavilion dv4, Broadcom Corporation BCM4312 802.11b/g, rodando o opensuse 11.2) que nao reconheceu… Desde já muito obrigado.

  3. Oi, consegui fazer funcionar aqui, o que a gente perde por não pesquisar né? Encontrei o 1-clickInstall Broadcom Hybrid STA no site do opensuse, mandei instalar, o processo fica bem parecido com o do windows (next>next), funcionou blza… Vou postar essa dica para outros usuarios de opensuse que usam broadcom 4311,4312.. Olha seu tutorial está de parabéns, tomara que ajude usuários de outras distribuições linux…

Deixe um comentário