Placas com chipset Ralink

Toda regra tem sua exceção e no caso do wpa_supplicant não é diferente. As placas Ralink rt2400, rt2500, rt2570, rt61 e rt73 não funcionam bem em conjunto com o wpa_supplicant, pois o driver implementa o suporte a WPA nativamente. Por um lado isso é bom, mas por outro é ruim já que a configuração é diferente e muitas das ferramentas de configuração não sabem como lidar com elas.

Como os chipsets Ralink estão entre os mais baratos, as placas wireless baseadas neles são bastante comuns. Além dos notebooks e das placas PCI baseadas nos chipsets rt2570 e no rt61, ultimamente temos visto uma proliferação estrondosa das placas USB baseadas no Ralink rt73.

Embora as placas Ralink sejam bem suportadas no Linux, incluindo os modelos USB, os drivers são atualizados freqüentemente, acompanhando o lançamento de novos chipsets e placas. Com isso, muitas distribuições acabam não incluindo os drivers atualizados, o que faz com que a placa não seja detectada automaticamente ou seja ativada utilizando o driver antigo. Com isso, você acaba não conseguindo se conectar à rede, com o sistema exibindo um erro diverso, como neste screenshot do Ubuntu 7.10:

index_html_3bd27b14

Vamos então à solução :). Os drivers para as placas com chipset Ralink estão disponíveis no:
http://rt2x00.serialmonkey.com/

O link direto para a página de downloads é:
http://rt2x00.serialmonkey.com/wiki/index.php/Downloads

Existem nada menos do que 5 drivers diferentes, um para cada modelo de chipset suportado, incluindo o rt2400, rt2500, rt2570, rt61 e o rt73, de forma que você precisa identificar o chipset usado e baixar o driver correspondente. Existe ainda o driver rt2x00, destinado a suportar simultaneamente todas as placas. Ele deve substituir os 5 drivers separados no futuro, mas enquanto escrevo (início de 2008) ele ainda está em estágio de desenvolvimento.

Se a sua placa é PCI ou PC-Card, ela é provavelmente baseada no rt2400, rt2500 ou no rt61. As placas USB podem ser baseadas no rt2570 ou no rt73 (o mais comum), enquanto as placas onboard podem utilizar qualquer um dos cinco.

O primeiro passo é identificar a sua placa, usando o comando lspci. A placa aparece perto do final da lista, como em:

00:12.0 Network controller: RaLink RT2500 802.11g Cardbus/mini-PCI (rev 01)

O comando lspci lista apenas as placas ligadas ao barramento PCI ou PCI Express. No caso das placas USB, você pode listar a placa através do comando “lsusb“, como em:

# lsusb

Bus 002 Device 001: ID 0000:0000
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 bem maior de informações sobre os dispositivos instalados. De qualquer forma, pelo “2573 Ralink Technology” podemos ver que se trata de uma placa com chipset rt73.

O pacote com o driver contém código fonte, por isso é necessário que você tenha instalados os headers do Kernel e os compiladores básicos, como vimos anteriormente. Para instalar, descompacte o driver, acesse a pasta “Module” dentro da pasta que será criada e rode os comandos “make” e “make install”, como em:

# tar -zxvf rt73-cvs-daily.tar.gz
# 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, usados em muitas distribuições:

# modprobe -r rt73usb
# 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 rt73usb
blacklist rt2570
blacklist rt2500usb

Agora sim você pode carregar o novo módulo sem medo. O módulo tem o mesmo nome do pacote (rt2400, rt2500, rt2570, rt61 ou rt73) e pode ser carregado usando o modprobe (como root), como em:

# modprobe rt73

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”:

index_html_m65fe3fc9

Aproveite e adicione o módulo no final do arquivo “/etc/modules” para garantir que ele passe a ser carregado automaticamente durante o boot:

# echo rt73 >> /etc/modules

Falta agora configurar a placa wireless. Como comentei, os drivers para placas Ralink não são compatíveis com o wpa_supplicant, por isso muitas 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:

iwconfig wlan0 mode managed
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 SSID da rede, enquanto o “SENHA” é a passphrase. Em versões antigas do driver, 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.

O TKIP é o padrão de encriptação usado no WPA. Caso o ponto de acesso tenha sido configurado para utilizar o WPA2, substitua a linha “iwpriv wlan0 set EncrypType=TKIP” por “iwpriv wlan0 set EncrypType=AES“.

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 trabalho via terminal, use o comando abaixo para configurar a placa via DHCP:

# dhclient wlan0

… ou use os comandos abaixo para definir os endereços manualmente:

ifconfig wlan0 192.168.1.21 netmask 255.255.255.0 up
route del default
route add default gw 192.168.1.1 dev wlan0
echo ‘nameserver 208.67.222.222’ >> /etc/resolv.conf

Aqui vai um script de conexão para placas Ralink que você pode adaptar às suas necessidades. Para usá-lo, você precisa apenas especificar a configuração da rede nas variáveis iniciais. Ele pode ser executado através de um dos scripts de inicialização, ou simplesmente executado manualmente quando você quiser se conectar à rede:

#!/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
fconfig wlan0 $ip netmask 255.255.255.0 up
route del default
route add default gw $gateway dev wlan0
echo “nameserver $dns” > /etc/resolv.conf

Caso você use mais de uma rede, a melhor solução é criar vários scripts dentro do seu diretório home, cada um contendo os comandos para uma rede diferente e ir executando-os conforme a necessidade.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X