Passei por um problema por muito tempo e que não tinha achado solução definitiva: conectar por
autenticação PPPoE através de uma
rede wireless.
Em muitas cidades de interior, devido as restrições tecnológicas, os provedores de internet utilizam redes wireless e autenticação pppoe. No Windows, com uns 3 ou 4 programas rodando simultaneamente, funciona beleza. No
Linux, apesar de simples, não é bem "clique aqui".
O processo de autenticação pppoe neste cenário acontece da seguinte forma: o micro define qual vai ser o provedor e depois vem a autenticação pppoe "por cima" desta conexão, recebendo o seu devido ip.
Então, mão a obra!
Obs.: Estou rodando o Ubuntu 9.10 limpo (acabei de formatar o pc) e uma placa de rede Ralink RT2500 PCI.
Vamos começar tentando utilizar o driver padrão do Linux para o seu dispositivo wifi. Feche o nm-applet antes de começar tudo! Como ele não tem o botão fechar, faça-o manualmente:
# ps ax | grep nm
2275 ? S 0:00 nm-applet --> Processo a ser fechado
2529 pts/0 S+ 0:00 grep nm
# kill -9 2275
Agora vamos informar ao micro qual vai ser o AP que ele vai buscar um concentrador PPPoE para autenticar:
# iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:0C:42:26:8B:C9
ESSID:"Agyo-SE-A03"
Protocol:IEEE 802.11b
Mode:Managed
Frequency:2.437 GHz (Channel 6)
Quality:0/100 Signal level:-99 dBm Noise level:-96 dBm
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
Extra:bcn_int=100
Extra:atim=0
No meu caso o ESSID do provedor é Agyo-SE-A03. Informando ao micro:
# iwconfig wlan0 essid Agyo-SE-A03
Agora é criar a autenticação pppoe. Os passos são simples e sugiro seguir a introdução do artigo do nox6000:
Após configurar a autenticação ele irá informar na última tela os comandos para conectar e desconectar, respectivamente:
- pon dsl-provider; e
- poff dsl-provider
Bem, até aqui, se tudo correu bem, faça um teste de ping e verifique se conectou:
# ping www.google.com.br
PING www.l.google.com (64.233.163.104) 56(84) bytes of data.
64 bytes from bs-in-f104.1e100.net (64.233.163.104): icmp_seq=1 ttl=49 time=42.0 ms
64 bytes from bs-in-f104.1e100.net (64.233.163.104): icmp_seq=2 ttl=49 time=87.7 ms
Se estiver conectado corretamente, o ping irá retornar uma resposta próxima da acima. Você pode parar por aqui!
Se não estiver conectado ainda, vamos ao próximo passo.
Verifique os erros no arquivo /var/log/syslog:
# cat /var/log/syslog
pppd[2289]: Timeout waiting for PADO packets
pppd[2289]: Timeout waiting for PADO packets
pppd[2289]: Unable to complete PPPoE Discovery
pppd[2289]: Unable to complete PPPoE Discovery
wpa_supplicant[877]: Association request to the driver failed
Se deu algum dos erros ou todos acima, o problema pode ser o driver que o Linux está usando. Então vamos utilizar outro. Antes de começar, vamos descarregar os que estão rodando na máquina.
# lsmod
Localize o módulo responsável pelo seu dispositivo e descarregue-o.
# modprobe -r rt2500pci
No meu caso o módulo chama-se
rt2500pci. Depois de descarregá-lo e certificar-se disso, continuemos.
Para instalar outro driver utilizei o aplicativo
ndiswrapper. Este aplicativo utiliza o driver da placa para o Windows no Linux. Se já utilizou o Windows alguma vez e instalou a placa, localize os arquivos de drivers: o rt2500.cat, rt2500.sys e rt2500.inf. Como estamos instalando a rede wireless, não temos internet ainda! Então vai precisar do ndiswrapper para instalá-los. Eu peguei os arquivos .deb no repositório do Debian por serem fáceis de instalar.
ndiswrapper-common_1.53-2_all
http://ftp.br.debian.org/debian/pool/main/n/ndiswrapper/ndiswrapper-common_1.53-2_all.deb
ndiswrapper-utils-1.9_1.53-2_i386
http://ftp.br.debian.org/debian/pool/main/n/ndiswrapper/ndiswrapper-utils-1.9_1.53-2_i386.deb
Para instalá-los pode-se clicar no arquivo e instalar pelo aplicativo "Instalador de Pacotes" ou usar a linha de comando:
# dpkg -i ndiswrapper-common_1.53-2_all.deb
# dpkg -i ndiswrapper-utils-1.9_1.53-2_i386.deb
Para instalar os drivers do Windows e utilizar os seus recursos no Linux, os comandos são:
# ndiswrapper -i rt2500.inf
installing rt2500 ...
Verificar se está instalado:
# ndiswrapper -l
rt2500 : driver installed
device (1814:0201) present (alternate driver: rt2500pci)
Agora voltamos às associações e configurações anteriores:
# iwconfig wlan0 essid Agyo-SE-A03
# pppoeconf wlan0
# pon dsl-provider
Faça o teste de conexão dando um "ping www.google.com.br". Aqui funcionou com estes passos. Ao reiniciar, os módulos antigos do kernel são carregados e os do ndiswrapper não. Então vamos corrigir este erro adicionando ao arquivo
/etc/modprobe.d/blacklist-ath_pci.conf a linha "blacklist rt2500pci" com o comando:
# echo "blacklist rt2500pci" >> /etc/modprobe.d/blacklist-ath_pci.conf
Agora é adicionar o ndiswrapper a inicialização:
# ndiswrapper -m
Pronto! Toda vez que o Ubuntu iniciar o carregamento do driver será automático e a autenticação pppoe também.
Em caso de dúvidas, postem!
Valeu!