4
2009
Instalando Broadcom BCM4312 com driver nativo para Linux.
![]()
Quando escrevi o post Instalando wireless no Mandriva (http://www.tvieira.net/instalando-wireless-no-mandriva/) disse que havia um driver nativo para linux no site da Broadcom e que não estava conseguindo instalar, por causa que estava dando conflito com algumas versões do kernel. Mas me enganei, o que eu estava fazendo era instalando de modo errado, e depois de tanto fuçar, consegui encontrar a maneira correta de instalar e fazer funcionar essa placa com o driver nativo do linux. Lembrando que instalei no Debian, mas acredito que essa dica possa servir para outras distribuições também.
Então vamos ver como podemos fazer para instalar:
01 – Vamos baixar o driver do placa no site da Broadcom: http://www.broadcom.com/support/802.11/linux_sta.php.
02 – Temos que ter instalado todos os módulos para compilar driver (headers) do kernel que estamos utilizando, para isso faça:
# aptitude update
# aptitude install linux-kbuild-`uname -r` libncurses5-dev
# aptitude install build-essential module-assistant linux-headers-`uname -r` linux-source-`uname -r | cut -f1 -d-`
03 – Ok, com os pacotes acima instalados estamos pronto para compilar o driver. Descompacte o download do driver que fizemos no site da Broadcom em algum diretório de sua preferência, depois abra o terminal, e entre no diretório que você descompactou o driver, e disse o seguinte código:
# make -C /lib/modules/`uname -r`/build M=`pwd`
04 – Descarregue e carregue os módulos da placa wireless, com os seguintes comandos:
# rmmod bcm43xx
# rmmod b43
# rmmod b43legacy
# modprobe ieee80211_crypt_tkip
# insmod wl.ko
05 – Feito isso, vamos copiar para o diretório de módulos do kernel, os módulos que acabamos de carregar:
# cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
# depmod -a
Pronto! Somente isso para fazer a sua placa wireless BCM4312 funcionar.
Essa dica fiz no kernel 2.6.22, 2.6.24 e 2.6.28 e em todos esses kernel funcionou perfeitamente.
Espero que possam aproveitar essa dica e desfrutar da sua placa wireless funcionando com o driver nativo para linux.
Abraços
Posts Possivelmente Relacionados
41 Comentários + Comentário
Faça um comentário
Parceiros
- C# Brasil Blog com muitas dicas interessantes sobre C#, ASP.NET, WinForm, WebForm, AJAX e muito mais.
- Epidemic GNU/Linux Website da distribuição linux baseada no Debian testing.
- sidux Brasil Website da comunidade brasileira do sidux, distribuição baseada no Debian unstable (sid).
- SUD.tvieira.net Blog com conteúdo sobre A Igreja de Jesus Cristo dos Santos dos Últimos Dias.
Anúncio
Lista de Links
- Br-Linux Blog sobre o que rola no mundo do software livre.
- Dicas-L Site com várias dicas sobre linux.
- Distrowatch Site com informações de várias distribuições linux e com o rank de distribuições mais conhecido no mundo linux.
- Notícias Linux Site com notícias sobre o mundo linux.
- Viva o Linux Site com muitas informações como dicas e tutoriais sobre linux.

Publicado por





Funciounou comigo, muito melhor que o b43-fwcutter, hehehe. Agora minha conexão não fica caindo sempre como acontecia. Parabéns pelo artigo. =D
Muito obrigado! e fico feliz por ter ajudado.
Realmente, nada melhor do que o driver nativo do linux né!….rsrsrs
cara eu fiz td…
mais na hr do
insmod wl.ko
ele nao axa esse modulo
e nos rmmod ele nao axa nenhum pra remover tbm…
Rafael, obrigado pela visita e o comentário!
Quando ao rmmod não achar nenhum módulo para descarregar, não tem problema, melhor ainda!
Quanto ao insmod wl.ko não achar o módulo, você fez o modprobe ieee80211_crypt_tkip antes? Apareceu algum erro?
Esse comando tem que ser feito dentro da pasta que você descompactou o driver da placa wireless.
Qualquer coisa posta aqui denovo que vamos tentar te ajudar.
Abraços
Olá
tenho um notebook HP Pavilion com esta placa wireless,e esta me custando muito fazer subir ,rsrs
Eu uso Slackware 12.2 , segui a risca seu tutorial e aparentemente correu tudo bem,mas toda vez que tento subir ela eu não consigo.
ifconfig wnal0 up
SIOCSIFFLAGS: No such file or directory
Quando eu dou iwconfig eu vejo ela como wlan0,mas não consigo faze-la subir,alguma dica ?
abraços
Digitei comando errado no post acima.
Na verdade é “ifconfig wlan0 up”
Alguma idéia do que pode estar acontecendo ?
Ola José Henrique, obrigado pela visita e comentário!
Quando se dá o comando modprobe ieee80211_crypt_tkip ja deveria estar carregado o módulo e depois com o comando insmod wl.ko ja deveria estar funcionando a placa wireless. Você fez a cópia para o diretório do kernel?
# cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
# depmod -a
Deu algum erro?
No meu caso a minha placa não esta em wlan0 e sim no eth1. Não é o seu caso também? Essa porta wlan0 é usava quando é instalada driver pelo ndiswrapper.
tem fazer o ifconfig eth1 up
Qualquer coisa posta aqui de novo por favor!
Abraços
Alguem sabe como resolver esse problema? Quando estou tentando compilar da esse erro.
make: Entrando no diretório `/usr/src/linux-headers-2.6.26-1-amd64′
scripts/Makefile.build:46: *** CFLAGS was changed in “/usr/src/linux-headers-2.6.26-1-amd64//Makefile”. Fix it to use EXTRA_CFLAGS. Pare.
make: ** [_module_] Erro 2
make: Saindo do diretório `/usr/src/linux-headers-2.6.26-1-amd64′
Desde já agradeço!
Ola Marcelo!
Teste instalar seguir esse tutorial http://wiki.forumdebian.com.br/index.php/Compilando_Drivers antes de compilar drivers.
Se ja seguiu, você ja tentou fazer a instalação e algum outro modo? Se fez tente dar o comando make clean e depois se mesmo assim continuar baixe novamente o driver no site da Broadcom.
Caso não resolva comente aqui de novo que tentaremos ajudar.
Abraços
Tiago, consegui compilar o Driver valewww. Mas agora apecer outro probleminha. Quando executo o comando: insmod wl.ko
Ele aparece a seguinte messagem: insmod: can’t read ‘wl.ko’: No such file or directory
Conseguentimente quando tento copiar aparece a seguinte messagem:
cp: impossível fazer stat em `wl.ko’: Arquivo ou diretório não encontrado
Obs.: Rodei antes o comando # modprobe ieee80211_crypt_tkip antes e estou no diretorio onde descompactei o drive.
Desculpe Tiago, realmente estava fazendo no local errado. Agora o erro que está ocorrendo é o seguinte:
Quando executo o comando insmod wl.ko aparece a messagem:
insmod: error inserting ‘wl.ko’: -1 Invalid module format
Ola Marcelo!
Quando você deu o comando modprobe ieee80211_crypt_tkip não ocorreu nenhum erro? E na compilação do driver? foi tudo tranquilo?
Porque esse módulo é feito na compilação do driver, deve ter ocorrido algum erro. Isso ocorreu?
Abraços
Quando compilo aparece a messagem abaixo:
make: Entrando no diretório `/usr/src/linux-source-2.6.26′
LD /home/marcelo/wireless/built-in.o
CC [M] /home/marcelo/wireless/src/wl/sys/wl_linux.o
CC [M] /home/marcelo/wireless/src/wl/sys/wl_iw.o
CC [M] /home/marcelo/wireless/src/shared/linux_osl.o
LD [M] /home/marcelo/wireless/wl.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/marcelo/wireless/wl.mod.o
LD [M] /home/marcelo/wireless/wl.ko
make: Saindo do diretório `/usr/src/linux-source-2.6.26′
Depois rodo o comando modprobe ieee80211_crypt_tkip e funciona sem nenhum erro.
Mas quando rodo o comando insmod wl.ko aparece o seguinte erro:
insmod: error inserting ‘wl.ko’: -1 Invalid module format
Desde já agradeço a atenção
Ola Marcelo!
Vamos denovo!…rsrsrsrs
Entre no diretório que você descompactou o driver, e faça:
make -C /lib/modules/’uname -r’/build M=`pwd` clean
make -C /lib/modules/’uname -r’/build M=`pwd`
rmmod bcm43xx
rmmod b43
rmmod b43legacy
modprobe ieee80211_crypt_tkip
insmod /home/marcelo/wireless/wl.ko
Vamos ver se funciona agora, fique atento quando compilar o driver para qual diretório esta indo o arquivo wl.ko e coloque o diretorio que ele esta quando for executar a função insmod.
Abraços
Rapaz sei mais não o q faço rsrsrsrs. quando compilo está indo para o diretorio /home/marcelo/wireless
rodei o comando: insmod /home/marcelo/wireless/wl.ko e aparece o erro abaixo
insmod: error inserting ‘/home/marcelo/wireless/wl.ko’: -1 Invalid module format
E ai tem alguma idéia?
Ola Marcelo!
Vamos tentar mais uma coisa!….rsrsrsrs
Faz o seguinte, copia o wl.ko primeiro para os módules do kernel para depois dar o insmod wl.ko:
# cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
Depois tentei o insmod wl.ko.
Abraços
Tiago.. rsrsrs rapaz o negocio ta ruim… o mesmo erro.
. Tem alguma outra idéia? Será q pode ser a versão do kernel 2.6.26?
Cara acredito que não seja o kernel, pois eu ja instalei o driver no Debian com a mesma versão do kernel e não ocorreu nenhum erro!
Eu vou pesquisar sobre o que pode ser o erro e te aviso! Porque as alternativas do meu conhecimento limitado ja foram!
Abraços
Existe uma ferramente nos repositórios do debian para a extração e utilização do firmware da referida placa da broadcom.. o nome do pacote é b430fwcutter.. somando a instalação de tal pacote com o utilitário wifi-radar o problema acaba por ser resolvido.. mas de qualquer forma, muito bons o site e a dica.. valeus!
Cara, muito obrigado mesmo!
Comprei um notebook Dell Inspiron 1525 que vem com essa placa wireless e não conseguia fazer funcionar no Debian nem com b43-fwcutter. Seguindo tuas dicas, funcionou perfeito!
Vale comentar que a dica funciona com kernel 2.6.26!
Ola Bryan!
Tenho o mesmo notebook! Comigo funcionou em todos os kernel que eu testei!
Abraços e obrigado pela visita e comentário!
Ola,
muito bom seu artigo, e vejo que tem outros similares, porem estou com problemas na compilacao, sei que meu problema eh muito simples, porem nao estou consigo ver o “problema” (provavelmente alguma desatencao).
Primeiramente, meu laptop eh um Lenovo S10, instalei um Debian squeeze zeradinho e estou configurando tudo agora, entao talvez seja falta de algum pacote, porem ja instalei, headers, source, module-assistant.
Kernel: 2.6.26-2-686
Na hora em que descompacto o tar.gz do driver, o Makefile parece que nao tem “targets”, sabe me dizer o que estou errando??:
localhost:/usr/src/hybrid_wl# ls -l
total 608
-rwxr-xr-x 1 root src 605561 2009-05-07 11:09 hybrid-portsrc-x86_32-v5_10_91_9.tar.gz
drwxr-sr-x 2 54224 users 4096 2009-04-20 23:55 lib
-rw-r–r– 1 54224 users 1655 2009-04-22 17:49 Makefile
drwxr-sr-x 5 54224 users 4096 2009-04-20 23:54 src
localhost:/usr/src/hybrid_wl# make -C /lib/modules/2.6.26-2-686/build/ M=`pwd` clean
make: Entering directory `/lib/modules/2.6.26-2-686/build’
make: *** No rule to make target `clean’. Stop.
make: Leaving directory `/lib/modules/2.6.26-2-686/build’
Li o README do pacote e diz que o Makefile seria algo como “After untar’ing you should have a src and lib sub directory plus a Linux
2.6 “kbuild” external makefile (Makefile)”
localhost:/usr/src/hybrid_wl# cat Makefile | grep -v ^$|grep -v ^#
obj-m += wl.o
wl-objs :=
wl-objs += src/wl/sys/wl_linux.o
wl-objs += src/wl/sys/wl_iw.o
wl-objs += src/shared/linux_osl.o
EXTRA_CFLAGS :=
EXTRA_CFLAGS += -I$(src)/src/include
EXTRA_CFLAGS += -I$(src)/src/wl/sys
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
seria isso mesmo?
Obrigado.
RESOLVIDO!
hehe, ateh que foi rapido, tentei de tudo e quando mudei a pasta build pra apontar pros headers resolveu (duhh).
Valeu novamente. =)
Lucas.
Ola Lucas! tudo bem?
Que bom que resolveu, era isso mesmo!
Quanto aos artigos similares, deve ter muitos, porque é a maneira de instalar, e essa maneira esta no readme do driver, como você pode ter até visto!
Obrigado pela visita e comentários
Abraços
Tiago, consegui instalar o problema estava no kernel 2.6.26. Atualizei para o 2.6.28 e funcionou normalmente. Vlw pelas digas!!!
Ola Marcelo!
Que bom que conseguiu! Mas estranho… eu ja instalei no kernel 2.6.26, mas ainda bem que deu certo!
Abraços
Tiago,
Quando executo o comando make -C /lib/modules/`uname -r`/build M=`pwd` ele retorna as seguintes linhas:
make: Entrando no diretório `/usr/src/linux-headers-2.6.26-2-686′
LD /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/built-in.o
CC [M] /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.o
CC [M] /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_iw.o
CC [M] /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/src/shared/linux_osl.o
LD [M] /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/wl.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/wl.o
see include/linux/module.h for more information
CC /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/wl.mod.o
LD [M] /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/wl.ko
make: Saindo do diretório `/usr/src/linux-headers-2.6.26-2-686′
depois da tudo certo, porém a luz do wireless não acende e quando executo o comando iwconfig não me mostra a interface wlan0. Sabe me dizer o q está acontecendo? Não consigo instalar o wireless de jeito nenhum…
Ola Juliano, obrigado pelo comentário!
Quando você digita o insmod wl.ko retorna algum erro? Pois é com esse comando que a luz funciona no mesmo instante que você aperta o enter quando termina de digitar esse comando.
Pela saída que você postou, parece que esta tudo ok, pois podemos ver que o arquivo wl.ko foi criado na pasta /home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9/wl.ko.
Verifique se o comando insmod wl.ko esta funcionando corretamente então!
Abraços
Tiago,
Está aparecendo a seguinte mensagem:
“insmod: error inserting ‘wl.ko’: -1 File exists”
porem o arquivo wl.ok está lá:
juliano:/home/juliano/Wireless/hybrid-portsrc-x86_32-v5_10_91_9# ls
built-in.o lib Makefile modules.order Module.symvers src wl.ko wl.mod.c wl.mod.o wl.o
Não sei mais o q fazer…
O pessoal comentou em atualizar o Kernel para o 2.6.28. como eu faço isso pra resolver o problema?
vlw
Ola Juliano!
Bom quanto a atualização do kernel, você pode seguir os passos descritos nesse link: http://www.tvieira.net/compilando-e-instalando-kernel-facil/
Tomara que resolva o problema, pois eu instalei o driver no meu debian e ainda esta com o kernel 2.6.26. Se der certo poste aqui.
Abraços
Cara essa dica salvou minha vida rs, já estava perdendo as esperanças, obrigado!
Ola Ronnie,
Fico feliz por ter te ajudado!
Abraços
Gostaria de saber como achar driver pro modem 3g aiko E75 pro ubuntu 9.4 , aguardo retorno, desde já grato.
Ola Malcolm,
Eu estava pesquisando sobre seu modem 3g e não achei nada, acredito que o pessoal do forum ubuntu irá te ajudar melhor.
http://ubuntuforum-br.org
Abraços
Aqui funcionou redondo. (Dell Inspiron 1525)
Ola Paulo,
O meu é o mesmo notebook e sempre deu certo. Os computadores da Dell tem uma ótima compatibilidade com o linux.
Abraços
Dai kra blz. Então, fiz todos os passos, a compilação, removi os módulos antigos, verifiquei que no /udev/rules.d/70-persistent-net-rules o MAC da placa wireless apareceu como interface eth1.
Consegui subi ela, a luz da placa acendeu. No entanto, nao consegue encontrar nenhuma rede. é como se só estivesse ligada, mas sem funcionar.
Detalhe, estou do lado de meu router wireless que uso normalmente com o windows.
Minha distro é 2.6.26-2-amd64 #1 SMP Thu Aug 19 00:37:36 UTC 2010 x86_64 GNU/Linux
Alguma idéia do que pode estar acontecendo? Vlw.
Você esta usando o Debian stable? Pois o seu kernel é bem antigo!
Caso não posso atualizar o kernel, tente essa dica da wiki oficinal do Debian:
http://wiki.debian.org/bcm43xx#bcm43xx-etch
Abraços
Então, segui o tutorial pra atualiza o Kernel, demoro muito tempo instalando os .deb. Mas nada, não atualizo a versão no uname.
tah blz, segui a wiki do debian, procedimentos sem erros novamente.
é muito estranho, segue resultado do iwconfig
—————————————————————————————————————————–
eth2 IEEE 802.11bg ESSID:”" Nickname:”"
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:24 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Managementmode:All packets received
Link Quality=5/5 Signal level=0 dBm Noise level=0 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
————————————————————————————————————————-
Mas nada, ja instalei diferentes ferramentas para procurar as redes wifi, mas simplismente, não acha nada.
Baixei o lenny 64 stable netinst. Não imagino o que pode estar acontecendo…
Ola Odair,
Pelos dados que você me passou a placa não esta funcionando mesmo, esta instalada mas não esta funcionando. Tente o seguinde código e veja se acontece alguma coisa:
# ifconfig eth2 upAbraços