Dapper

1. Usando a Broadcom no Ubuntu Dapper

Existem duas maneiras de você usar sua broadcom. Uma é usando o ndiswrapper (que funciona apenas para a arquitetura x86), e a outra é usando os drivers nativos do kernel.

1.1. Usando o Novo Driver Broadcom

O kernel do Dapper tem suporte para os dispositivos Broadcom. Você deve conseguir fazer seu dispositivo funcionar no Dapper seguindo os passos abaixo.

1.1.1. Pré-requisitos

Você deve fazer um broadcast do essid a partir do seu roteador. Não é essencial, e a placa vai conectar se o broadcast estiver desligado e você colocar o essid manualmente, mas assim fica mais fácil para testar.

Não use o ifup e ifdown até que seja configurado o arquivo /etc/network/interfaces. (veja abaixo instruções de como fazê-lo, ou aqui).

Você deve remover o ndiswrapper se o usava antes, instruções para removê-lo podem ser vistas aqui.

Deve também remover o wifi-radar se tiver, já que ele gera conflitos com o driver.

1.1.2. Obtendo o Firmware

Não é preciso compilar o driver já que um módulo pré-compilado está disponível. No entanto, precisamos obter o firmware para a placa de um driver do Windows, Mac OS X ou de Access Point.

1.1.2.1. Pacote de Firmwares

A maneira mais fácil de conseguir o firmware é instalando de um pacote debian. Para ficar sempre atualizado, adicione este repositório na sua lista:

deb http://ubuntu.cafuego.net dapper-cafuego bcm43xx

e adicione a chave GnuPG no apt executando pelo terminal:

wget http://ubuntu.cafuego.net/969F3F57.gpg -O- | sudo apt-key add -

Aí é só atualizar a lista de pacotes e instalar o pacote de nome bcm43xx-firmware.

1.1.2.2. Extraindo Manualmente

Se o modo anterior não funcionou para você por um motivo ou outro, você pode conseguir o firmware e extrai-lo manualmente. Para isso siga os passos abaixo:

Depois de habilitar o repositório Universe (veja AdicionandoRepositorios), instale o pacote chamado bcm43xx-fwcutter.

sudo apt-get install bcm43xx-fwcutter

Links para diversos drivers vem junto com este pacote. Para vê-los, digite:

zless /usr/share/doc/bcm43xx-fwcutter/README.gz

e selecione um para baixar, ou use os que acompanham seu dispositivo.

Talvez você tenha que extrair os arquivos .sys e .inf antes do próximo passo: se você baixou um .exe, tente descompactá-lo com o unzip. Se não funcionar, tente com o cabextract (instale o pacote cabextract primeiro). O arquivo de interesse é o .sys. Se você baixou um arquivo .o, ele é o arquivo de interesse.

Execute:

sudo bcm43xx-fwcutter -w /lib/firmware <arquivo do firmware>

Ou você pode rodar o seguinte script:

sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh

1.1.3. Configurando a placa Wireless

Inicialize o driver:

sudo modprobe bcm43xx

O dispositivo deverá ser acionado como eth1 ou eth2. Descubra qual executando:

iwconfig

Ele deve mostrar o nome do dispositivo como ethX. Verifique se você consegue escanear por redes executando:

sudo iwlist ethX scan

MUITO IMPORTANTE: ALGUMAS PESSOAS NECESSITAM DO COMANDO A SEGUIR PARA PODER CONECTAR  sudo iwconfig ethX rate 11M 

Você pode adicionar isso em seu arquivo /etc/network/interfaces para se conectar ao iniciar o computador, dessa forma:

iface eth1 inet dhcp
     pre-up iwconfig eth1 rate 11M

Alternativamente, é só adicionar "rate 11M" ao /etc/network/interfaces, como nesse exemplo para uma rede WEP 802.11b:

iface eth1 inet dhcp
wireless-rate 11M
wireless-essid My network
wireless-key 1234-5678-9abc-def0-1234-5678-9a

Talvez seja necessário adicionar a seguinte linha para associar sua placa automaticamente:

pre-up ifconfig eth1 up

Se quando você digita iwconfig eth1 o resultado é

eth1      IEEE 802.11b/g  ESSID:"troublemaker"  Nickname:"Broadcom 4318"
          Mode:Managed  Frequency=2.437 GHz  Access Point: '''Invalid'''
          Bit Rate=11 Mb/s   Tx-Power=18 dBm
          RTS thr:off   Fragment thr:off

execute:

sudo iwconfig eth1 ap any

para resolver. Talvez seja bom adicionar isso ao seu arquivo /etc/network/interfaces (soa como uma boa hora para criar um script e roda-lo com o preup?) Esse aqui é um exemplo de um script de startup usado pelo documentador:

sudo ifconfig $myInterface up &>/dev/null
sudo iwconfig $myInterface essid $myEssid &>/dev/null
sudo iwconfig $myInterface rate 11M # &>/dev/null

(Melhorias para a documentação nessa parte de configuração são bem vindas. Se você tem uma broadcom e sabe de uma maneira mais simles/melhor/efetiva, por favor adicione/corrija aqui).

1.2. NetworkManager

A partir do kernel 2.6.15-20, o driver parece funcionar bem com o NetworkManager e o nm-applet. Ao tentar isto, certifique-se de que o wpasupplicant esteja desabilitado em /etc/default/wpasupplicant e de que todas as linhas se referindo à placa wireless estejam comentadas/desabilitadas em /etc/network/interfaces.

1.3. Segurança

O WPA funciona, mas o wpasupplicant pode travar sua máquina quando a interface é desabilitada com o comando ifdown.

Exemplo de opções para o /etc/default/wpasupplicant

OPTIONS="-i eth0 -D wext -c /etc/wpa_supplicant.conf"

1.4. Resolvendo Problemas

1.4.1. Usava o Ndiswrapper ? OU Quebradeira ao tentar usar a Rede

Tente:

sudo rmmod bcm43xx
sudo rmmod ndiswrapper
sudo modprobe bcm43xx

E rode um dos scripts dados abaixo.

Se sua placa começar a funcionar então você precisa remover o ndiswrapper seguindo os passos mostrados em Removendo o Ndiswrapper na seção sobre o Breezy acima.

1.4.2. Parâmetros de Boot para o Kernel

Alguns laptops HP precisam de alterações nos parâmetros de boot do kernel. Tente adicionar:

noapic

aos seu parâmetros de boot, ou mesmo:

noapic noacpi

se o primeiro não for suficiente.

1.4.3. Scripts para Conseguir se Conectar

Dois scripts pra conseguir conexão. Ambos precisam da senha de superusuário (execute-os assim: ./[nome-do-script])

1.4.3.1. Script para Conexão em modo Managed

interface=eth1 # fill in whatever your interface is here it should typically be eth1
# Turning off other network devices"
sudo ifconfig eth0 down # assumes you have a wired NIC remove if you don't have one
sudo modprobe bcm43xx
# setting wireless device parameters
sudo ifconfig $interface up # This step is very very important!
sudo iwconfig $interface essid your_essid_here
sudo iwconfig $interface mode managed
# sudo iwconfig $interface mode auto # another suggested mode
sudo iwconfig $interface key off # see man iwconfig for wireless encrpytion
echo "Setting up dhcp"
sudo dhclient $interface

1.4.3.2. Script de Conexão para Iniciantes

Precisa ser chamado com sudo pra funcionar ex: (sudo ./[nome-do-script])

Bom script para iniciantes. Execute o script sem argumentos e o script tentará auto-conectar com a interface e essid mais prováveis.

if [ "$1" == --help ]
then
  echo "Lista de ESSID's"
  # Lists the availble ESSIDs
       iwlist  scan | grep ESSID
  echo "Interface provável: "
  # Grabs the name of the interface that succefully scanned
  iwlist scan | grep completed | sed "s/Scan\scompleted\s://g"
  echo "+++++++++++++++++++++++++++++++++++++++++++++++  "
  echo "Uso: getit [interface] [essid]  "
  echo "Seleciona uma das interfaces e essid's acima"
  echo "usa a interface que tinha os essids"
  echo "+++++++++++++++++++++++++++++++++++++++++++++++  "
  exit
fi
if [ -z $2 ] ; then
        myEssid=any
else
        myEssid=$2
fi

if [ -z $1 ] ; then
        myInterface="eth1"   # typically eth1 but may be something else
else
        myInterface=$1
fi

echo "Desconectando a rede"
sudo ifconfig $myInterface down &>/dev/null
echo "Reconectando a rede"
sudo ifconfig $myInterface up &>/dev/null
echo "Mudando para $myEssid"
sudo iwconfig $myInterface essid $myEssid &>/dev/null
echo "Mudando rate para 11M"       # this isn't always necessary but helps for Broadcom 4318 cards

sudo iwconfig $myInterface rate 11M &>/dev/null     # if your having issue getting connected to a network
echo "buscando IP"
sudo dhclient $myInterface

O link para o fórum (inglês) onde isso foi discutido é http://ubuntuforums.org/showthread.php?t=114922


1.4.4. Revertendo para Ndiswrapper

Se o driver não funciona você pode tentar o ndiswrapper como mostrado no guia para o Breezy. Você também precisa adicionar o driver bcm43xx ao arquivo /etc/modprobe.d/blacklist para que ele não seja carregado automaticamente na inicialização do sistema. O modo mais rápido de fazer isso é com este comando:

echo "blacklist bcm43xx" | sudo tee -a /etc/modprobe.d/blacklist

1.5. Bugs

Usando uma placa Linksys PCI, ocasionalmente leva o pc a travar se alguém tenta usar a conexão wireless (sendo que o pc esteja compartilhando a conexão para outros clientes wireless).

Documentacao/DriversWifi/bcm43xx/Dapper (last edited 2011-09-19 23:22:24 by localhost)