domingo, 19 de abril de 2009

Instalando wireless Broadcom BCM4312 no Debian 5 Lenny


Atenção: Siga o novo artigo atualizado aqui:
http://campachi.blogspot.com/2011/04/instalar-broadcom-wireless-no-debian-6.html


Voltei para compartilhar minha saga: Instalar o "driver" da placa wireless Broadcom (BCM4312) no meu novíssimo Debian GNU/Linux 5.0 update 1 de 64 bits (2.6.26-2-amd64) rodando no meu HP Pavilion. Achei várias fontes na internet, mas a maioria é para 32 bits, o que dificultou um pouco, chega de delongas e vamos a prática!

Ah! Esse tutorial serve tanto para quem acabou de instalar o Debian como para quem já tem algum tempo. Não precisa ter acesso a internet se você tem o CD/DVD do Debian na sua source list do APT. Exeto, para baixar o driver oficial.

> Identificar a versão da placa wireless (todos os comandos como root):
# lspci -nn

Network controller [...]: Broadcom Corporation BCM4312 802.11b/g [...]

> O site diz que o driver é compatível com: BCM4311-, BCM4312-, BCM4321-, and BCM4322-based hardware. Nosso caso. ;-)

> Baixe o pacote com o driver oficial do web-site, note a diferença na arquitetura [32/64]:
http://www.broadcom.com/support/802.11/linux_sta.php

> No meu caso (2.6.26-2-amd64) usei o 64-bit driver.
> Se seu caso for (2.6.26-2-i386) use o 32-bit driver.

> Se você acabou de instalar o Debian e o pacote está numa partição Windows NTFS, antes de montar, instale o suporte ao NTFS:
# aptitude install ntfs-3g

> Se seu Debian é novo, instale os headers e compiladores necessários para criação do módulo do kernel:
# aptitude install linux-headers-$(uname -r)

# aptitude install build-essential kbuild

> Na sua Pasta pessoal (~), crie e coloque o pacote aqui (hybrid_wl):
# mkdir ~/hybrid_wl

# cd ~/hybrid_wl

> Atenção: Todos os comandos, a seguir, são feitos no novo diretório acima citado.

> Descompacte o pacote com:
# tar -xvf hybrid-portsrc-x86_*-v5.60.48.36.tar.gz

> Agora você tem 3 novos itens: src, lib e um arquivo chamado Makefile.

> Faça uma limpeza (se entrar e sair sem erros, está ok):
# make -C /lib/modules/$(uname -r)/build M=$(pwd) clean

> Agora, vamos criar o módulo do kernel:
# make -C /lib/modules/$(uname -r)/build M=$(pwd)

> O resultado são vários arquivos novos, o mais importante é ter o wl.ko.

> O manual recomenda remover outros módulos, se seu Debian é novo, pode pular esses comandos:

# rmmod wl
# rmmod bcm43xx
# rmmod b43
# rmmod b43legacy

> Habilite o módulo 802.11 TKIP crypto:
# modprobe ieee80211_crypt_tkip

> Instale o novo módulo ao kernel:
# insmod wl.ko

> Vamos deixar a coisa redonda e automática, faça:
# cp wl.ko /lib/modules/$(uname -r)/kernel/net/wireless/

# depmod -a

> Verifique se está tudo ok com:
# iwconfig eth1 up

# iwlist eth1 scan

> Lá no ícone ao lado da data/hora, de um clique com o botão esquerdo e selecione a rede disponível, se não aparece nada, reboot na máquina.

> Para outros dispositivos Broadcom, recomendo ler aqui:
http://linuxwireless.org/en/users/Drivers/b43

http://wiki.debian.org/bcm43xx

Bom proveito. :-)

27 comentários:

Allen disse...

muito bom esse post, fiz aqui na no modelo bcm4322 so que ele reconhece a interface wireless como eth1 dai quando uso o aircrack pro meu trabalho de segurança ele da erro e diz que é interface ethernet, você sabe de alguma dica para resolver esse problema?

Renato Campachi disse...

Oi Allen, instalei o aircrack-ng depois do seu comentário. No meu caso deu erro pq não esta deixando minha placa ficar em modo monitor usando iwconfig eth1 mode monitor, então, qndo eu uso o airodump-ng da erro pq não está em modo monitor. Numa rápida pesquisa pela net a única forma que vi de deixar em modo monitor foi com iwconfig e com o driver madwifi, como não tenho essa placa... Recebi uma dica de que precisa de um firmware especifico para trabalhar com o aircrack, ainda vou pesquisar mais sobre isso... Sinto muito em não poder ajudar .... :)

dargains disse...

Renato, excelente o post. Muito diferente do que estamos acostumados a ver com ajudas em linux, que na verdade atrapalha mais que ajuda.
No entanto, travei quase no final com um erro. Pesquisei a respeito mas não encontrei nada de relevante.

root@dargains-laptop:/home/dargains/hybrid_wl# insmod 'wl.ko'
insmod: error inserting 'wl.ko': -1 File exists

Já viu algum erro parecido?
um abraco

Unknown disse...

opa, td joia?! eu instalei o debian lenny no meu acer aspire a dois dias e acabei vindo parar aqui por conta desse problema com wireless. só que além desse eu notei mais um probleminha com debian no meu laptop, a bateria do laptop está durando somente metade do tempo q costumava durar com ubuntu. adora ele fica só por 1h com bateria. sem contar que ontem quando sequei a bateria, ele demorou 4h pra conseguir dar carga total enquanto eu estava usando o laptop... vc sabe dizer se precisa instalar alguma coisa pra acertar isso?!

Renato Campachi disse...

@adriano

O que eu posso dizer é que no momento da instalação vc deve adicionar os pacotes para "laptop". Além disso, recomendo a leitura:

http://www.gdhpress.com.br/blog/gerenciamento-de-energia/

http://lesswatts.org/

Renato Campachi disse...

@Dargains

Não sei com certeza, mas acho que já está carregado ou vc não está como root.

Faça o seguinte (seja root):

Verifique se o módulo já estava carregado:
# lsmod | grep "b43\|ssb\|wl"

Se sim, remova o que encontrar:
# rmmod b43
# rmmod ssb
# rmmod wl

Coloque na lista-negra (não carregar durante boot):
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf

E refaça o tutorial.

Recomendo ler o README.TXT do site do fabricante:

http://www.broadcom.com/docs/linux_sta/README.txt

Anônimo disse...

Alô Renato,

Obrigado por ajudar o "seleto" grupo que possui placas Broadcom :)

Seguindo o teu tutorial, sendo que estou usando os drivers 32, ao chegar em: iwconfig eth1 up ele retorna $iwconfig: unknown command "up", tento seguir o resto mas não rola, tem alguma idéia ?

Obs.: Antes usava o Ubuntu e ela rodava na wlan0, tentei e nada também.. tentei upar com o ifconfig também.

Renato Campachi disse...

@cael

Vc Está como root/sudo?

Tente: # ifconfig eth1 up

Essa parte funcionou depois do reboot:"Lá no ícone ao lado da data/hora, de um clique com o botão esquerdo e selecione a rede disponível, se não aparece nada, reboot na máquina."?

Teve algum erro nas outras partes do tutorial ou tudo passou sem erros?

Felipe Rhalk disse...

tive um erro parecido com o Dargains
root@dargains-laptop:/home/dargains/hybrid_wl# insmod 'wl.ko'
insmod: error inserting 'wl.ko': -1 File exists

ao reiniciar o pc, o ubuntu nao entrou mais, nem no recovery mode, vou ter q formatar eu axo

Renato Campachi disse...

Bem, acho que uma boa idéia seria instalar o Ubuntu 10.04 pra ver qual o comportamento dele com as placas wireless da Broadcom. Se alguém fizer, favor postar comentário. Obrigado.

Ricardo Tavares disse...

Olá Renato,
Meu notebook é um hp pavilion 6220br com placa wireless broadcom bcm4311 rodando o ubuntu 10.04 LTS. A placa está funciona perfeitamente, mas no entanto não consigo realizar os procedimentos descritos neste tópico. Poderia me enviar um tutorial detalhadamente?

Unknown disse...

Renato,

sou novo no linux. Não estou conseguindo fazer esse tutorial. Acredito que estou esbarrando em alguns parâmetros do comando # make -C /lib/modules/$(uname -r)/build M=$(pwd):

a) o que eu coloco no 'campo' :$(uname -r)
b) o que eu coloco no 'campo' :M=$(pwd)

estou executando como root, mas acho que to fazendo algo errado ao trocar esses parametros da linha de comando.Nao sei se coloco o usuario do computador.... me dá uma ajuda?

Renato Campachi disse...

@ Ricardo Tavares

Caramba, vou fazer o seguinte, vou instalar o Ubuntu 10.04 no meu HP pra ver se o tutorial precisa ser atualizado ou alterado, aguarde novidades.

Renato Campachi disse...

@ Bruno

O comando está completo, não precisa substituir nada. :-)

Dessa forma o comando pega o resultado desses outros comandos evitando vc precisar digitar ou evitar erros.

Faça assim, digite no console:
uname -r
pwd

Esses resultados serão inseridos dentro do seu comando principal. Entendeu?

Renato Campachi disse...

Pessoal, quem está usando o Ubuntu 10.04 não precisa compilar esse módulo de wireless, basta usar a função para localizar novos dispositivos.

Sistemas > Administração > Drivers de hardware.

Selecione o Driver sem fio Broadcom STA e pronto.

Arthur Moreira disse...

oi. nao sei se ainda acompanha esse post, mas vou perguntar assim mesmo.

tenho uma placa broadcom bcm4353

que tambem funciona com esse driver sta da propria broadcom.

mas o complicado é ela entrar em modo monitor ou promiscuo.
sabe algum driver que tenha conseguido colocar a broadcom em modo monitor
#iwconfig eth1 mode monitor

obrigado

Renato Campachi disse...

@ Arthur,

No dia 9 de maio de 2009 deixei um comentário aqui, descrevendo o mesmo problema que vc. Também não consegui colocar em mode monitor.

Não consegui resolver esse problema, pois, não dediquei tempo o suficiente.

Lamento não poder ajudar, se alguém souber como, favor deixar a URL... vlw!

Unknown disse...

Amigo, segui o procedimetno até a descompactação do arquivo e deu errado. apareceu a mensagem
debian:/home/hybrid-ports# tar xvf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
tar: hybrid-portsrc-x86_32-v5.60.48.36.tar.gz: Não é possível open: Arquivo ou diretório não encontrado
tar: Erro não é recuperável: saindo agora
debian:/home/hybrid-ports#

Os números 60.48.36 são os que aparecem aqui.
Pode me ajudar ?
Muito obrigado e um forte abraço.
garibaraujo@yahoo.com.br

Unknown disse...

Olá amigo,
alterei o comando para abrir o arquivo para tar -vzxf e também deu erro. A resposta foi
"
debian:/home/hybrid-ports# tar -vzxf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz
tar: hybrid-portsrc-x86_32-v5.60.48.36.tar.gz: Não é possível open: Arquivo ou diretório não encontrado
tar: Erro não é recuperável: saindo agora
tar: Child returned status 2
tar: Saída por erro atrasada pelos erros anteriores
debian:/home/hybrid-ports#
"

O que fiz de errado ? Pode me ajudar ?
Muito obrigado.

Renato Campachi disse...

@ Garibaldo,

Olá, executei o comando e funcionou aqui.
Faça o seguinte, como seu usuário normal (não-root)(copiar+colar):

mkdir ~/hybrid_wl

cd ~/hybrid_wl

wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5.60.48.36.tar.gz

tar -xvf hybrid-portsrc-x86_32-v5.60.48.36.tar.gz

ls -l

Juliana disse...

Segui o procedimento até o comando tar -xvf hybrid-portsrc-x86_*-v5.60.48.36.tar.gz

O sistema respondeu o seguinte: tar: hybrid-portsrc-x86_*-v5.60.48.36.tar.gz: Não é possível open: Arquivo ou diretório não encontrado
tar: Error is not recoverable: exiting now
root@debian:~/hybrid_wl#

O que fiz de errado?
Desde já, muito obrigado pela ajuda.
Forte abraço.

Renato Campachi disse...

@Pedro Henrique:

Pedro, Depois do download do arquivo, do website indicado, vc pode extrair o conteúdo do arquivo com o botão direito do mouse e clicar "extrair tudo".

Ou então, o comando atualizado para fazer na linha de comando é:

tar -xvf hybrid-portsrc_x86_32-v5_100_82_38.tar.gz

Uma dica para auto-completar o comando, basta digitar:

tar -xvf hybrid
e aperte o botão TAB do teclado.

Funcionou agora? Qualquer dúvida pode perguntar.

:-)

info disse...

Olá amigo gostaria de saber se vc já testou isso no ubuntu 11.04? eu instalei ele no meu note mas qndo vou iniciar o monitoramento usando esse comando:
# airodump-ng --channel 6 --bssid 00:1A:3F:60:75:C3 -w ninja mon0

sempre aparece isso:

CH 6 ][ Elapsed: 4 s ][ 2011-08-23 17:09 ][ fixed channel mon1: -1

como se o monitoramento estivesse fixado nesse canal!!!

se vc puder me ajudar agradeço flw

Renato Campachi disse...

Atualização para quem queria ativar o modo "Monitor", instale a versão 5.100.82.112 e faça o procedimento:

HOW TO USE MONITOR MODE
-----------------------
To enable monitor mode:
$ echo 1 > /proc/brcm_monitor0

Enabling monitor mode will create a 'prism0' network interface. Wireshark and
other netwokk tools can use this new prism0 interface.

To disable monitor mode:
$ echo 0 > /proc/brcm_monitor0

garibaraujo disse...

Algum risco para o sistema se eu atualizar o kernel para o 2.6.32-5?
Parece que assim consigo instalar a broadcom 4312.

garibaraujo disse...

Algum risco para o sistema se eu atualizar o kernel para o 2.6.32-5 ?
Parece que assim consigo instalar a broadcom 4312.

Renato Campachi disse...

@garibaraujo

Creio que não. Tente migrar para o Debian 6, o suporte a placas broadcom foi melhorado na última atualização.