O rt73 é um chipset de baixo custo, fabricando pela Ralink, que está sendo utilizado em um número cada vez maior de adaptadores wireless USB, de diversos fabricantes.
As placas wireless USB estão se tornando cada vez mais populares, substituindo principalmente as placas PCMCIA destinadas a notebooks. O principal motivo é que elas são baratas e fáceis de instalar, já que basta plugar na porta USB e você pode utilizar a mesma placa wireless tanto no desktop quanto no notebook.
Existem tanto placas com antena interna, como este modelo da D-Link, quanto com antenas externas destacáveis, como no modelo abaixo:
As placas com antena interna geralmente sofrem com uma recepção ruim, pois as antenas são, na verdade, simples trilhas na placa de circuito, que oferecem pouco ganho:
As com antena externa são melhores, já que antena oferece um maior ganho e você pode alterar a posição da antena para obter a melhor recepção, mas é preciso tomar cuidado ou comprar, pois existem muitos casos de placas com antenas falsas, onde a antena externa é apenas um enfeite de plástico, que não é sequer conectado à placa. É o mesmo que acontece com muitos adaptadores Bluetooth.
As placas USB com chipset Ralink são perfeitamente suportadas no Linux, mas a maioria das distribuições ainda não inclui o driver atualizado e por isso a placa não é detectada automaticamente ou seja ativada utilizando o driver antigo, o que faz com que você não consiga se conectar à rede, com o sistema exibindo um erro diverso, como neste screenshot do Ubuntu:
Vamos lá então 🙂
A primeira peculiaridade, é que placas USB não aparecem no comando “lspci“, que comumente usamos para verificar os periféricos instalados. O motivo é muito simples: o comando lspci mostra os periféricos conectados ao barramento PCI, AGP e PCI Express. Placas USB não entram na lista.
Você pode ver se a placa está instalada e foi vista pelo sistema usando o comando “lsusb”, como em:
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 003: ID 08ec:1000 M-Systems Flash Disk Pioneers
Bus 001 Device 002: ID 148f:2573 Ralink Technology, Corp.
Bus 001 Device 001: ID 0000:0000
Se quiser mais detalhes, você pode usar o comando “lsusb -v“, que vai mostrar um volume absurdo de detalhes, incluindo algo como:
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x148f Ralink Technology, Corp.
idProduct 0x2573
bcdDevice 0.01
iManufacturer 1 Ralink
iProduct 2 802.11 bg WLAN
iSerial 0
bNumConfigurations 1
Vamos então ao que interessa. O primeiro passo é baixar o driver “rt73”, disponível no:
http://rt2x00.serialmonkey.com/
O link direto para baixar a versão mais recente do driver é:
http://rt2x00.serialmonkey.com/rt73-cvs-daily.tar.gz
O pacote contém o código fonte do driver e por isso você precisa ter instalados os headers do Kernel e os compiladores básicos. No Ubuntu/Kubuntu, por exemplo, você precisa instalar o pacote “build-essential” e o pacote “linux-headers” referente à versão do Kernel instalada, como em:
# apt-get install linux-headers-`uname -r`
Para instalar, descompacte o driver, acesse a pasta “Module” dentro da plasta que será criada e rode os comandos “make” e “make install” (nesse driver você não precisa do “./configure”), como em:
# cd rt73-cvs-2007101015/Module/
# make
# make install
Antes de carregar o novo módulo, vamos fazer uma checagem geral, descarregando outros módulos que podem causar conflitos com ele. Estes são na verdade drivers antigos, incompatíveis com o rt73, que são carregados incorretamente no lugar dele em muitas distribuições:
# modprobe -r rt2570
# modprobe -r rt2500usb
Em seguida, abra o arquivo “/etc/modprobe.d/blacklist” e adicione as linhas abaixo para garantir que eles não voltarão a ser carregados depois de reiniciar o micro:
blacklist rt2570
blacklist rt2500usb
Agora sim, você pode carregar o novo módulo sem medo 🙂
Se quiser confirmar se a placa foi mesmo ativada, você pode usar o comando “cat /proc/net/dev”, que mostra as interfaces de rede disponíveis no sistema. Ele deve mostrar uma linha referente à interface “wlan0”
Aproveite e adicione a linha “rt73” no final do arquivo “/etc/modules” para garantir que o módulo passe a ser carregado automaticamente durante o boot:
Falta agora configurar a placa wireless. Os drivers para placas Ralink não são compatíveis com o wpa_supplicant (usado para conectar a redes com encriptação via WPA), por isso muitos das ferramentas de configuração de rede não são compatíveis com eles. Vamos então aos comandos que você pode usar para configurar a placa manualmente, caso necessário:
ifconfig wlan0 up
iwconfig wlan0 ap REDE
iwpriv wlan0 set AuthMode=WPAPSK
iwpriv wlan0 set WPAPSK=SENHA
iwpriv wlan0 set EncrypType=TKIP
iwconfig wlan0
O “REDE” é o ESSID da rede, enquanto o “SENHA” é a passphrase. Em versões antigas do drivers, a placa era detectada pelo sistema como “rausb0”, mas nas versões atuais ela é vista como “wlan0”, assim como as placas configuradas através do ndiswrapper.
Depois de rodar os comandos, você pode verificar se a placa se conectou ao ponto de acesso usando o comando “iwconfig“.
Depois disso, falta só configurar os endereços da rede da forma normal. Se quiser terminar o trbalho via terminal, os comandos são:
route del default
route add default gw 192.168.1.1 dev wlan0
echo ‘nameserver 208.67.222.222’ >> /etc/resolv.conf
Como de praxe, lebre-se de substituir os endereços pelos usados na sua rede 🙂
A principal vantagem de conhecer os comandos manuais para configurar a rede é que você pode transformá-los em um script, de forma que a rede seja configurada automaticamente durante o boot, ou quando rodar o script manualmente.
Aqui vai um script de conexão que você pode adaptar às suas necessidades. Para usá-lo, você precisa apenas especificar a configuração da rede nas variáveis iniciais.
#!/bin/sh
rede=”REDE”
passphrase=”PASSPHRASE”
ip=”192.168.1.21″
gateway=”192.168.1.1″
dns=”208.67.222.222″
iwconfig wlan0 mode managed
ifconfig wlan0 up
iwconfig wlan0 ap $rede
iwpriv wlan0 set AuthMode=WPAPSK
iwpriv wlan0 set WPAPSK=$passphrase
iwpriv wlan0 set EncrypType=TKIP
iwconfig wlan0
ifconfig wlan0 $ip netmask 255.255.255.0 up
route del default
route add default gw $gateway dev wlan0
echo “nameserver $dns” > /etc/resolv.conf
Um problema que encontrei ao testar o driver é que a associação com o ponto de acesso falha em boa parte das tentativas, de forma que acaba sendo necessário repetir os comandos de associação duas ou até mesmo três vezes. Se você encontrar o mesmo problema, pode adicionar essa função que escrevi ao script. Ele testa a conexão e executa os comandos até que a placa consiga se associar ao AP:
check=`cat /tmp/check`
while [ “$check” = “ping: unknown host google.com” ]; do
iwconfig wlan0 mode managed
ifconfig wlan0 up
iwconfig wlan0 ap $rede
iwpriv wlan0 set AuthMode=WPAPSK
iwpriv wlan0 set WPAPSK=$passphrase
iwpriv wlan0 set EncrypType=TKIP
iwconfig wlan0
sleep 3
ping -c 1 -w 2 google.com 2>/tmp/check
check=`cat /tmp/check`
done
Deixe seu comentário