Académique Documents
Professionnel Documents
Culture Documents
As placas Wireless são um novo motivo de dor de cabeça no Linux. Elas podem ser
consideradas as legítimas sucessoras dos softmodems. A grande maioria das placas
funciona no Linux de uma forma ou de outra, mas muitas usam drivers ou
firmwares binários, que assim como no caso dos softmodems, precisam ser
instalados manualmente.
As placas wireless mais indicadas para uso no Linux são as com chipsets Prism,
Lucent Wavelan (usado por exemplo nas placas Oricono) e Atmel. Estas possuem
drivers de código aberto, estáveis e que suportam todos os recursos das placas.
Estes drivers fazem parte do pacote linux-wlan-ng (http://www.linux-wlan.org/) e
passaram a vir pré-instalados a partir do Kernel 2.6.
Para usar qualquer placa Wireless no Linux você deve ter instalado o pacote
wireless-tools, que contém os comandos necessários para configurar a placa,
como o iwconfig.
O Ndiswrapper é uma espécie de Wine para drivers de placas de rede wireless. Ele
funciona como uma camada de abstração entre driver e o sistema operacional,
permitindo que placas originalmente não suportadas no Linux funcionem usando os
drivers do Windows.
http://ndiswrapper.sourceforge.net/wiki/index.php/List
Os drivers para Windows são arquivos executáveis, que servem entre intérpretes
entre a placa e o sistema operacional. Eles contém o firmware da placa e outras
funções necessárias para fazê-la funcionar. Cada placa é diferente, por isso os
drivers de uma não funcionam na outra mas, todos os drivers conversam com o
sistema operacional usando uma linguagem específica de comandos. Ou seja, do
ponto de vista do sistema operacional todos os drivers são parecidos.
A página do projeto é a:
http://ndiswrapper.sourceforge.net
Instalando
http://sourceforge.net/projects/ndiswrapper/
Descompacte o arquivo e acesse a pasta que será criada. Para compilar e instalar,
basta rodar o comando:
# make install
(como root)
Se por acaso você estiver usando uma distribuição que já vem com o Ndiswrapper
instalado, você deve primeiro remover o pacote antes de instalar uma versão mais
atual. Caso a localização do módulo ou do executável no pacote da distribuição seja
diferente, pode acontecer de continuar sendo usado o driver antigo, mesmo depois
do novo instalado.
Configurando
# ndiswrapper -i /mnt/hda6/Driver/WinXP/GPLUS.inf
Rode agora o comando "ndiswrapper -i" para verificar se o driver foi mesmo
ativado. Você verá uma lista como:
# modprobe ndiswrapper
Se tudo estiver ok, o led da placa irá acender, indicando que ela está ativa. Agora
falta apenas configurar os parâmetros da rede Wireless que veremos adiante.
Se a placa não for ativada, você ainda pode tentar uma versão diferente do driver.
Neste você precisa primeiro descarregar o primeiro driver. Rode o ndiswrapper -l
para ver o nome do driver e em seguida descarregue-o com o comando
"ndiswrapper -e".
No meu caso por exemplo o driver se chama "gplus" então o comando fica:
# ndiswrapper -e gplus
Para que a configuração seja salva e o Ndiswrapper seja carregado durante o boot,
você deve rodar o comando:
# ndiswrapper -m
ACX100 e ACX111
Uma coisa importante a notar é que não existe uma nomenclatura rígida entre os
modelos das placas e os chipsets usados. Por exemplo, as placas Dlink DWL-650
inicialmente vinham com chipsets PRISM (que possuem um excelente driver nativo
no Kernel 2.6), depois passaram a vir com o chipset Atheros (que funciona usando
o Driver MadWiFi ou o Ndiswrapper) e, finalmente, passaram a vir com o chipset
ACX100. Depois sugiram as placas DWL650+, que usam o chipset ACX111. Ou
seja, dentro de um mesmo modelo foram fabricadas placas com 4 chipsets
diferentes!
Estas placas também funcionam usando o Ndiswrapper, mas usando o driver nativo
a utilização do processador é mais baixa e existem menos relatos de problemas de
estabilidade. Recomendo que você experimente primeiro o driver nativo e deixe o
Ndiswrapper como segunda alternativa.
http://acx100.sourceforge.net/
http://rhlx01.fht-esslingen.de/~andi/acx100/
Para instalar, descompacte o arquivo tar.gz, acesse a pasta que será criada e rode
os tradicionais:
# make
# make install
Para que a placa funcione, além do módulo é necessário ter o arquivo com o
firmware da placa. O firmware é o software com as funções que controlam a placa.
Sem o firmware a placa é um pedaço inútil de metal e silício.
Para baixar o firmware da placa, rode o script "fetch_firmware" que está dentro
da pasta scripts/ na pasta onde foi descompactado o arquivo com o driver:
# ./fetch_firmware
Ele perguntará:
Use a opção "C", assim ele já baixa de uma vez os arquivos para os dois chipsets.
Isto é feito baixando o driver do Windows e extraindo os arquivos que compõe o
firmware para a pasta firmware/, novamente dentro da pasta do driver. Você deve
copiá-los para pasta /usr/share/acx/, que é a localização padrão, onde o módulo
procurará por eles ao ser carregado. Crie a pasta caso necessário:
# mkdir /usr/share/acx/
# cp -a /home/kurumin/tmp/acx100-
0.2.0pre8_plus_fixes_37/firmware/* /usr/share/acx/
Feito isso, você já pode experimentar carregar o módulo para ativar a placa. Antes
de carregar qualquer módulo de placa Wireless, você deve carregar o módulo
"wlan", que contém os componentes genéricos:
# modprobe wlan
# modprobe acx_pci
A partir daí o led da placa acenderá indicando que a placa está funcionando e está
faltando apenas configurar a rede (que veremos como fazer mais adiante).
Eventualmente, você pode encontrar outras placas ACX111 que não funcionam com
o firmware padrão. Neste caso experimente a receita de pegar o arquivo .BIN
dentro da pasta de drivers para Windows XP, copiar para a pasta /usr/share/acx e
renomear.
Caso você tenha copiado os arquivos do firmware para outra pasta, pode
especificar isso na hora de carregar o driver, com o parâmetro:
MadWiFi
Assim como no caso das placas com chipset ACX, muitos dos modelos com o chip
Atheros possuem variantes com outros chipsets. Por exemplo, a D-Link DWL-G520
usa o chip Atheros, enquanto a DWL-G520+ usa o chip ACX100.
A melhor forma de checar se você tem em mãos uma placa com o chip Atheros é
rodar o lspci. Você verá uma linha como:
# make
# make install
# modprobe wlan
# modprobe ath_hal
# modprobe ath_pci
Ao carregar os módulos, o led da placa já irá acender, indicando que ela está ativa.
Para que eles sejam carregados automaticamente durante o boot, adicione as
linhas "wlan", "ath_hal" e "ath_pci" no final do arquivo /etc/modules.
Este outro link ensina a compilar pacotes .deb com os drivers, procedimento ideal
para quem usa distribuições derivadas do Debian, como o Kurumin. Lembre-se que
os pacotes gerados conterão os módulos compilados para o Kernel usado na sua
instalação, e não funcionarão em instalações com versões diferentes do Kernel.
http://www.marlow.dk/site.php/tech/madwifi
ADMteck ADM8211
Este é mais um chipset Wireless de baixo custo, encontrado tanto em placas PC-
Card quanto PCI, incluindo alguns modelos da 3Com e D-link e algumas placas PCI
baratas, sem pedigree.
É fácil reconhecer estas placas pelo chipset, que trás decalcado o modelo. Rodando
o comando lspci você verá algo como:
http://aluminum.sourmilk.net/adm8211/
# make install
# modprobe wlan
# modprobe adm8211
Realtek 8180
A Realtek chegou a disponibilizar um driver for Linux, mas ele funciona apenas em
distribuições com Kernel 2.4.18 ou 2.4.20:
http://www.realtek.com.tw/downloads/downloads1-3.aspx?Keyword=rtl8180l
Mas, atualmente, a forma mais prática de ativar estas placas é usar o Ndiswrapper.
Orinoco-USB
Este driver é destinado às placas USB com o chipset Prism, como as Compaq
WL215 e W200 encontradas principalmente em notebooks Compaq Evo. Estas
placas possuem um driver nativo, assim como as placas com chipset Prism em
versão PC-Card, mas ele ainda precisa ser instalado manualmente. A página do
projeto é:
http://orinoco-usb.alioth.debian.org
Na página estão disponíveis pacotes para o Debian e o Red Hat, mas lembre-se que
os pacotes só funcionam nas versões do Kernel para que foram compilados. Eles só
serão úteis se você estiver usando um Kernel padrão das distribuições.
A forma mais rápida de obter o código fonte do driver para instala-lo manualmente
é via CVS. É mais fácil do que parece. Em primeiro lugar você precisará instalar o
pacote "cvs" encontrado na distribuição em uso, com um "apt-get install cvs" ou
"urpmi cvs" por exemplo. Com o CVS instalado, rode os comandos:
# export CVS_RSH="ssh"
# cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/orinoco co
orinoco
Isso criará uma pasta "orinoco" no diretório atual. Acesse-a e rode os comandos:
# make
# make install
Para que o driver funcione, você precisará tanto dos módulos instalados pelo
"make; make install" quando do firmware da placa. Eu instalei os módulos através
do código fonte baixado através do CVS, mas o script que baixaria o firmware não
funcionou.
Este pacote não compilou, mas dentro da pasta existe um diretório chamado
"firmware" com um script (diferente) para baixar o firmware da placa. Para
executá-lo, rode o comando "make".
Isto será suficiente para que o hotplug passe a detectar e ativar a placa no boot.
Caso seja necessário ativa-la manualmente, rode o comando: modprobe
orinoco_usb
IPW2100 e IPW2200
Você pode verificar o modelo correto usando o lspci e em seguida baixar o driver
no:
http://ipw2100.sourceforge.net/
ou
http://ipw2200.sourceforge.net/
# make
# make install
# mkdir -p /usr/lib/hotplug/firmware/
# cp -a ipw2200-fw-2.0.tgz /usr/lib/hotplug/firmware/
# cd /usr/lib/hotplug/firmware/
# tar -zxvf ipw2200-fw-2.0.tgz
A partir daí a placa deve ser ativada automaticamente durante o boot. Caso você
queira ativar e desativar o suporte manualmente, use os comandos:
Linux-wlan-ng
O pacote linux-wlan-ng inclui suporte a várias variações do chipset Prism, incluindo
o Prism2. Este pacote normalmente vem incluído nas distribuições, por ser
completamente open-source.
ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/
A instalação é similar aos outros drivers que vimos até aqui. Descompacte o
arquivo e rode o comando:
# make config
# make all
# make install
Numa rede wireless, o dispositivo central é chamado de Access Point. Ele é ligado
no hub da rede, ou diretamente no modem ADSL ou cabo e se encarrega de
distribuir o sinal para os clientes.
- ESSID
Lembre-se sempre de verificar qual é o dispositivo usado pela sua placa de rede
Wireless, ele varia de acordo com o driver usado. Você pode ver isso rapidamente
rodando o comando ifconfig.
- Canal
Caso você tenha configurado o ponto de acesso para utilizar um canal específico,
configure a placa para utilizá-lo com o comando:
A lista dos canais disponíveis varia de acordo com a configuração de país no ponto
de acesso. Em teria podem ser usados 17 canais, de 0 a 16. Porém apenas 14
deles, de 1 a 14 são licenciados pelo FCC e a lista diminui mais um pouco de acordo
com o País escolhido. Nos EUA é permitido o uso dos canais 1 a 11, na Europa de 1
a 13 e no Japão de 1 a 14. Enquanto escrevo ainda não existe legislação sobre isso
no Brasil, mas é provável que seja seguido o padrão dos EUA.
Usar canais diferentes é uma forma de minimizar interferências caso você esteja
colocando vários pontos de acesso dentro da mesma área, ou perceba que existem
pontos de acesso de vizinhos muito próximos do seu.
Existe uma diferença de freqüência de apenas 5 MHz entre cada canal, porém o
sinal das placas 802.11b ocupa uma faixa de 30 MHz. Por isso, para que realmente
não exista interferência entre dos pontos de acesso próximos, é preciso usar canais
distantes, como por exemplo 1, 6 e 11 ou 1, 7 e 14.
- Encriptação WEP
Caso você tenha ativado a encriptação via Wep no ponto de acesso, configure a
chave usada. Se a chave for em hexa (onde temos 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E, F e cada dígito equivale a 4 bits), a chave terá 10 dígitos
(1234567890 no exemplo) e o comando será:
Veja que ao usar uma chave em ASCII você precisa adicionar o "s:" antes da
chave. Se você tiver configurado o ponto de acesso para usar uma chave de 128
bits (a segurança contra acessos não autorizados é muito maior) então a chave terá
26 dígitos em hexa ou 13 em ACSII.
- Ativando a rede
# ifconfig wlan0 up
O último passo é configurar os endereços da rede, como você faria numa placa
convencional. No Kurumin por exemplo você pode usar o netcardconfig.
# dhcpcd wlan0
# pump -i wlan0
# cat /etc/resolv.conf
nameserver 200.199.252.68
nameserver 200.248.155.11
nameserver 200.199.201.23
/etc/sysconfig/network-scripts/ifcfg-wlan0
Todos os arquivos dentro da pasta /etc/sysconfig/network-scripts/ são lidos durante
o boot. Você verá um arquivo separado para cada placa de rede instalada no
sistema. O arquivo ifcfg-eth0 configura a placa eth0 e assim por diante.
Crie o arquivo de acordo com o nome com que sua placa é reconhecida pelo
sistema. Se a sua placa é reconhecida como "ath0" por exemplo, o arquivo será o
ifcfg-ath0.
DEVICE=wlan0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Wireless
MODE=Managed
ESSID="casa"
CHANNEL=10
IPADDR=
DOMAIN=
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
USERCTL=no
PEERDNS=no
IPV6INIT=no
RATE=Auto
HWADDR=
Ou:
DEVICE=wlan0
ONBOOT=yes
TYPE=Wireless
MODE=Managed
ESSID="casa"
CHANNEL=10
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
USERCTL=no
PEERDNS=no
IPV6INIT=no
RATE=Auto
HWADDR=
Você pode também criar um script com os comandos para fazer a configuração
manual e executá-lo manualmente quando quiser usar a rede Wireless, como por
exemplo o caso de quem tem um notebook que fica a maior parte do tempo
plugado na rede de 100 megabits da empresa, mas que em casa usa uma rede
Wireless.
#!/bin/sh
iwconfig wlan0 essid casa
iwconfig wlan0 channel 10
iwconfig wlan0 key restricted 1234567890
ifconfig wlan0 up
ifconfig wlan0 192.168.0.2 netmask 255.255.255.0
route del default
route add default wlan0
route add default gw 192.168.0.1
Caso você use ao mesmo tempo uma placa de rede cabeada e uma placa Wireless
e o acesso pela placa wireless esteja intermitente, com a configuração caindo
poucos minutos depois de configurada a rede, experimente começar a desativar a
placa cabeada ao configurar a rede Wireless.
Você pode adicionar o comando no seu script de configuração da rede, para que ele
seja executado sempre antes dos comandos que configuram a placa Wireless.