Tag Archives: Ndiswrapper

Melhorando a qualidade do wireless da placa Broadcom BCM4312 no Ubuntu 8.04

Após ter problemas na conexão wireless com a placa BCM4312 e o driver b43 utilizado inicialmente por padrão no Ubuntu 8.04, resolvi seguir algumas dicas do pessoal no forum do Ubuntu.

O principal problema encontrado foi a velocidade reduzida e o consequentemente o scanner de redes que não identificava redes com sinal mais fraco.

Encontrei a pagina explicando como instalar e configurar o ndiswrapper com placas BCM43XX na documentação sobre Wireless do Ubuntu.

Os passos que segui para instalar configurar corretamente o wirelles da placa BCM4312 foram:

1 – Instalar o Ndiswrapper e bloquear o driver nativo

echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist
sudo apt-get install ndiswrapper-utils-1.9
mkdir ~/bcm43xx; cd ~/bcm43xx

2 – Baixar e extrair o driver para Windows

sudo apt-get install cabextract
wget ftp://ftp.compaq.com/pub/softpaq/sp33001-33500/sp33008.exe
cabextract sp33008.exe

3 – Configurar o NDISWrapper

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

4 -Corrigir o bug de carregar os modulos do Ubuntu

echo -e '#Hardy ssb/ndiswrapper workaround, added' `date` '\ninstall ndiswrapper modprobe -r b43 b44 b43legacy ssb; modprobe --ignore-install ndiswrapper $CMDLINE_OPTS; modprobe ssb; modprobe b44;' | sudo tee -a /etc/modprobe.d/ndiswrapper

Após feito estes passos, basta reiniciar e configurar a rede normalmente pelo nm-applet do NetworkManager.

Share Button

Atualizações precipitadas

Sábado passado, sem nada para fazer, resolvi configurar a rede wireless do meu notebook. Ela já estava funcionando com um driver padrão, mas não alcançava a velocidade total e de vez em quando simplesmente parava de funcionar.

Só que, para configurar ela direito a única opção que eu achei na hora foi recompilar o Kernel do Linux, pois o ndiswrapper ainda teimava que o módulo bcm43xx ainda estava lá, mesmo depois dele ser removido, excluído, exorcizado, etc…..

Comecei a me precipitar quando pensei comigo – “Se eu vou ter que recompilar o Kernel, porque não atualizar para a versão estável mais nova?”. Até aqui, nada fora do normal, é meu computador pessoal mesmo, não é nenhum sistema 24/7 de controle de alguma usina nuclear.

Então procurei por algum pacote já montado para o Slackware 11 (opção mais sensata). Não encontrando nada, apelei para o source oficial. Baixei a versão estável mais nova disponível (2.6.20.1) e depois de fazer o download do tar.bz2 de 41.4 MB descompactei o monstrinho no /usr/src e comecei a brincadeira.

Durante a configuração eu procurei otimizar o novo Kernel atendendo aos seguintes quesitos:

1º – compilar mais rápido, tirando opções que eu nunca irei utilizar, como um módulo para uma torradeira de café scsi, e outros módulos similares;

2º – deixar o boot mais rápido, marcando as opções que eu sabia que meu notebook utilizava como Y, ou seja, engordando o Kernel.

Depois de mais ou menos uns 30 minutos “passeando” pelas páginas no menuconfig, sempre verificando o lspci e lembrando de outras configurações que eu já havia feito, chegou a hora de compilar o monstrinho.

Deixei a maquina trabalhando e fui tomar café. Depois de um bom tempo o novo Kernel estava compilado e sem nenhuma mensagem de erro. Bastava eu instalar o novo vmlinuz no lugar certo e reiniciar a máquina. E assim eu o fiz.

Máquina reiniciada, tudo funcionando (verifiquei tudo, principalmente o acpi), chegou a hora de instalar o ndiswrapper com o driver (do Windows XP) da placa wireless.

Quando tentei compilar o ndiswrapper ocorreu um erro. Uma macro do Kernel que supostamente receberia 3 parâmetros agora recebe somente 2. E agora ?! Fui pesquisar… não demorou muito achei o problema. Algum desenvolvedor (maluco) que trabalhou nas últimas versões mudou a macro INIT_WORK, e o patch vai sair em breve.

Não pensei duas vezes, peguei o cd 2 do Slackware 11, reinstalei os pacotes do Kernel 2.6 estável que tem no cd, utilizei o arquivo de configuração atual para não perder tanto tempo reconfigurando tudo de novo e mandei compilar tudo outra vez.

Ai fui pensar no que eu tinha deixado passar. Não tinha lido os changelogs das últimas versões do Kernel. E se eu tivesse lido!? Não ia adiantar nada, pois como eu saberia que o ndiswrapper utilizava a macro que foi alterada.

Share Button