sexta-feira, 29 de agosto de 2008

Solução: Problemas com o b43 (módulo da BroadCom BCM43XX)?

Olá Pessoal,
espero que seja útil...
tomei como base um post do fórum em inglês
(http://ubuntuforums.org/showthread.php?t=766560&highlight=ndiswrapper+b43)

qual é o problema?
Tenho um hpdv2210us! Quando intalei o Ubuntu 8.04, há 1 mês, me impressionou a qualidade do sistema. Principalmente o fato de ele ter me perguntado se eu queria instalar os módulos proprietários e, depois de uma resposta afirmativa, ele instalou os módulos para a minha Nvidia Go1650 e para a minha BroadCom BCM4311... Chocado
tudo beleza... mas em alguns cômodos da minha casa, onde a rede wireless É detectada no windows (apesar do sinal fraco) o Ubuntu não a reconhecia... Hein?
pesquisei muito sobre o problema... e achei aqui:
http://wireless.kernel.org/en/users/Drivers/b43
é que o Interference mitigation (atenuação de interferência) não está ativado ainda no modulo de engenharia reversa... Indeciso
então a área de cobertura do roteador “diminui” com relação ao driver proprietário...
Com isso, achei o post do fórum em inglês para trocar o b43 pelo ndiswrapper e adpatei para o meu caso (UBUNTU 8.04 e BroadCom BCM 4311) Piscada

Passo 1
Clique em Sistema > Administração > Drivers de Hardware
e desabilite o driver da BroadCom!

Pelo Synaptic instale o ndiswrapper

em um terminal, dê os comandos:

mkdir ~/bcm43xx; cd ~/bcm43xx

Passo 2
dê os comandos:

sudo apt-get install cabextract
wget ftp://ftp.hp.com/pub/softpaq/sp34001-34500/sp34152.exe
cabextract sp34152.exe

isso vai baixar do site da hp o driver do windows XP deste dispositivo e extraí-lo.

Passo 3
em um terminal, dê os comandos:
modprobe -r b43

isso vai descarregar o módulo da BroadCom instalado pelo UBUNTU...

Passo 4
em um terminal, dê os comandos:
sudo ndiswrapper -i bcmwl5.inf
ndiswrapper -l
sudo depmod -a
sudo modprobe ndiswrapper
sudo cp /etc/network/interfaces /etc/network/interfaces.orig
echo -e 'auto lo\niface lo inet loopback\n' | sudo tee /etc/network/interfaces
sudo ndiswrapper -m
echo 'ndiswrapper' | sudo tee -a /etc/modules
echo 'ENABLED=0' | sudo tee -a /etc/default/wpasupplicant

isso vai “compilar” o modulo e configurá-lo!

Passo 5
dê o comando:

sudo aptitude remove b43-fwcutter

para des-instalar o fwcutter...


Passo 6

sudo gedit /etc/init.d/wirelessfix.sh

para abrir um arquivo e coloque o seguinte conteúdo dentro:

#!/bin/bash
modprobe -r b44
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r ndiswrapper
modprobe ndiswrapper
modprobe b44

salve e saia

Passo 7
dê o seguinte comando
Esteja certo de que o arquivo anterior tenha sido criado corretamente!

cd /etc/init.d/ && sudo chmod 755 wirelessfix.sh

Passo 8
dê o comando:

sudo update-rc.d wirelessfix.sh defaults
echo 'blacklist b43' | sudo tee -a /etc/modprobe.d/blacklist

para finalizar, reinicie o computador!
E aproveite... Legal

Assim que o driver de engenharia reversa estiver funcionando com o Interference mitigation eu migrarei de volta... :-)

Nenhum comentário: