Chipset Atheros: Reconhecendo e configurando placas wireless na mão

Nesse artigo passo minha experiência para aqueles que tentam reconhecer algumas placas com o chipset da Atheros e não encontram uma solução definitiva. Artigo desenvolvido através de tentativas em uma Abit Airpace chipset Atheros, placa que inclusive os mantenedores do madwifi falam que é de "provável incompatibilidade de hardware e erros no módulo".

[ Hits: 53.973 ]

Por: Otávio em 28/07/2008


Configurando a conexão



Bom, tudo está funcionando, basta configurar a conexão, certo? Não caso você use Ubuntu, pois nessa distro o NetworkManager, que deveria facilitar a conexão, fica causando a maior bagunça, pois toda a tabela de roteamento dele fica errada (para o nosso uso, pois ele funciona perfeitamente em rede cabeada), mesmo colocando configuração manual, tem-se problemas.

Eu SÓ consegui navegar desabilitando-o, pois caso eu tentasse configurar a conexão com ele, não conseguia pingar nem meu gateway, e desativando o suporte pelo menu do Gnome, eu conseguia pingar qualquer servidor, porém não conseguia navegar, mesmo setando corretamente os nameservers.

Então saí killando os NetworkManager* (são 2 daemons), tentei acessar um site e pronto, estava tudo certo ^^.

Caso você queira ou não desativá-lo, vamos seguir com a configuração. Primeiramente vamos configurar a interface ath%d com as configurações da sua rede.

Obs: %d é um decimal correspondente a interface, no meu caso ela é 1, quem atribui essa valor é o udev de acordo com o slot. Então ao configurar a sua, use aquele que apareceu em iwconfig!

Liste as redes disponíveis e escolha a que você quer, liste-a mesmo se já souber, caso não saiba qual channel ela usa.

$ iwlist scan

O resultado será todas as redes que se encontram ao alcance da sua antena, como em:

ath1  Scan completed : 
      Cell 01 - Address: 00:19:E0:A2:1D:72 
         ESSID:"" 
         Mode:Master 
         Frequency:2.437 GHz (Channel 6) 
         Quality=47/70  Signal level=-48 dBm  Noise level=-95 dBm 
         Encryption key:on 
         Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 
            12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s 
            48 Mb/s; 54 Mb/s 
         Extra:bcn_int=100 
         IE: WPA Version 1 
         Group Cipher : CCMP 
         Pairwise Ciphers (1) : CCMP 
         Authentication Suites (1) : PSK 
         Extra:ath_ie=dd0900037f0101001dff7f 

Através disso você poderá obter o essid e o channel dela para configuração e saber se ela precisa ou não de key ou wpa.

Vou ensinar a configurar sem encriptação e com WEP e WPA.

Mas primeiro devemos ir configurando o resto, deixemos a autenticação por último, caso necessária.

Primeiro vamos setar o nome da rede, isso é o essid, que se encontra no exemplo acima em:

  ESSID:""

Nesse caso a rede não faz o broadcast do essid, isso é, ela não o divulga, portanto você deverá saber antes de tudo. Caso a rede que queira conectar divulgue, ele aparecerá nesse campo.

De qualquer forma você deverá saber o essid para conectar, então seguimos:

# iwconfig ath%d essid "Nome da rede"

Agora temos que configurar o channel dela, isso é, o nível de freqüência que ela opera. Você encontrar no exemplo acima no campo:

Frequency:2.437 GHz (Channel 6)

Então vamos setar:

# iwconfig ath%d channel 6

Caso a sua rede use criptografia WEP (mude!! ^^) você ainda deverá explicitar isso. Se você usou uma chave em hexadecimal, isso é, cada dígito tem 4bits, a chave terá 10 dígitos, você deverá rodar:

# iwconfig ath%d key restricted [chave hex]

Agora, se você usou uma chave em ASCII, onde cada dígito tem 8 bits, a chave terá 5 dígitos, o comando será:

# iwconfig ath%d key restricted s:[chave em ASCII]

Obs:
  1. Se seu ponto de acesso for configurado para uma chave de 128bits, então a chave em hexadecimal terá 26 dígitos e a em ASCII terá 13.
  2. Caso você queira se conectar em uma rede sem encriptação, basta NÃO colocar nenhum comando key ou configurar um aplicativo para WPA.

Pronto, toda a configuração do iwconfig foi feita, basta upar a rede, arrumar os router e autenticar a wap caso use.

Então vamos lá, primeiro vamos upar a rede, com o ifconfig:

ifconfig ath%d [seu ip na rede] netmask 255.255.255.0 up

Como em:

# ifconfig ath1 192.168.1.102 netmask 255.255.255.0 up

Pronto, o ifconfig trata de se comunicar com a placa de rede e fazer a parte feia ^^.

Agora vamos arrumar o route do kernel, se você resolveu arriscar e não matou os NetworkManager*, essa parte vai ser chata, pois esses daemons colocam muitas rotas erradas e estranhas na tabela de roteamento, caso você os tenha killado, não terá nada lá. Basta rodar:

# route

E ver o que volta, se tiver defaults, então você deverá deletá-los antes de setá-los, caso esteja vazio você só precisará setá-los.

Deletando:

# route del default

Setando:

# route add default ath%d

Assim você seta que a rota padrão virá e sairá de ath%d.

# route add default gw [ip do gateway]

Apenas setando qual será o gateway da conexão, um exemplo equivalente com as configurações upadas no exemplo do ifconfig seria:

# route add default gw 192.168.1.1

Pronto, a sua tabela de roteamento deve estar pronta. Um exemplo de como ela ficaria, seria:

# route
Destino       Roteador    MáscaraGen.    Opções Métrica Ref   Uso Iface
192.168.1.0   *           255.255.255.0   U     0       0     0   ath1
link-local    *           255.255.0.0     U     1000    0     0   ath1
default       192.168.1.1 0.0.0.0         UG    100     0     0   ath1

Basta agora colocar os DNS certos no /etc/resolv.conf e você poderá estar navegando utilizando sua rede wireless, óó ^^.

Como eu já disse, o NetworkManager* faz umas bagunças se você for configurar sem usar ele, então o resolv.conf deverá conter um DNS da rede local, só que fora da faixa de ip. No meu caso aonde a faixa é 192.168.1.255 endereços, o resolv.conf continha um dns estranho, algo como 192.0.4.1.

Enfim, não funcionava, portando você deverá mudar esses valores para os DNS que são dados pelo seu provedor, então arrume um jeito de conseguí-los :P .

Após conseguí-los você só precisa colocá-los em /etc/resolv.conf, como em:

nameserver 200.225.197.34
nameserver 200.225.197.37

Uuuh, está quase tudo pronto, caso você use o protocolo WPA, pois você ainda precisará fazer algumas configurações de arquivo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Mãos a obra
   3. Baixando e instalando o módulo madwifi
   4. Configurando a conexão
   5. Autenticação WPA
   6. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Fazendo sua webcam com chipset sn9c10x funcionar no Linux

Instalando placa wireless no OpenSUSE 11.0 (método genérico para qualquer placa)

Instalando Token da OAB no Linux Mint 17.3 (Rose)

Configurando o HP CD-Writer 9100 series

Linux, 100% compatível!

  
Comentários
[1] Comentário enviado por badiale em 28/07/2008 - 18:34h

Olá,

Eu li seu artigo até o fim, e tentei executá-lo, mas quando eu dei iwlist scan, o meu fedora não conseguiu encontrar nenhuma rede, embora, quando uso windows, ele encontre cerca de três redes wirelles aqui.... minha palca é a A5006EX, se puder me ajudar, agradeço....

OBS: Ótimo artigo, bem simples de entender. :)

[2] Comentário enviado por octopos em 28/07/2008 - 18:45h

Olá badiale, o módulo carregou sem problemas?
Tenta colocar aqui o dmesg | tail depois de carregado e iwlist e só depois iwlist scan. Eu tinha comprado uma outra placa (TP-Link TL wn651g) tambem da Atheros para usar, pois eu não tinha conseguido configurar essa da Abit. Por ironia , eu configurei as duas na mesma hora, porem a da TP-Link listava muuiito mais redes que a Abit, entretando a da Abit pega o sinal do meu roteador com 30% a mais.
Enfim, acredito que isso possa ser problemas com o módulo usando HAL.

Mas de qualquer forma, poste aqui, pois caso eu não possa ajudar, haverá outros.

Obrigado, eu fiz o artigo passo-a-passo para facilitar muito para todos, sofri bastante para configurar essa placa, porque não ajudar o máximo outros, né? :P


[3] Comentário enviado por PROSIT em 28/07/2008 - 20:22h

Ola para mim esse procedimento nao funcionou, segue dmesg | tail

gabriel-laptop:/usr/src/modules/madwifi-0.9.4# dmesg | tail
Bluetooth: Core ver 2.11
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.9
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.8
eth0: no IPv6 routers present
gabriel-laptop:/usr/src/modules/madwifi-0.9.4#

Quando dou o comando lspci a placa é localizada só que não carrega nos arquivos de configurção das interfaces.....
Alguma ideia do que pode ser?????

Grato


[4] Comentário enviado por octopos em 28/07/2008 - 21:24h

Olá gpinotti, do tail do dmesg não aparece o processo de carregamento do módulo (modprobe ath_pci) , tente fazer o seguindo, após instalar SEM erros:

# modprobe ath_pci ; sleep 4 ; dmesg | tail

^^

[5] Comentário enviado por badiale em 28/07/2008 - 21:29h

octopos, eis o a saída do dmesg | tail é esta:

ath_pci: driver unloaded
wlan: driver unloaded
ath_hal: driver unloaded
ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
wlan: 0.9.4
ath_pci: 0.9.4
ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 16
PCI: Setting latency timer of device 0000:01:00.0 to 64
wifi%d: unable to attach hardware: 'Hardware didn't respond as expected' (HAL status 3)
ACPI: PCI interrupt for device 0000:01:00.0 disabled

E é bem engraçado, porque na primeira tentativa parecia ter funcionado, daí eu reiniciei o pc para ver se era esse o problema, daí ficou assim... com wifi%d: unable to attach hardware: 'Hardware didn't respond as expected' (HAL status 3)....

Vlw pela ajuda!

[6] Comentário enviado por octopos em 28/07/2008 - 22:24h

Então badiale , esse erro é um saco... você compilou o drive dentro das pasta certas?
Em algumas placas, os matedores relacionaram o bot ao windows como uma forma de ativar a placa.
Pois aparentemente, o udev não consegue dar um 'power up' nela. Minha Air Pace algumas vezes não funcionava nem no windows, eu bootava a maquina ela nem era listava como dispositivo existente.

Tente ver se alguns reebots não resolvem o problema, ou botar no win e ver oque acontece quando vai pro Linux.

De nadaa!

[7] Comentário enviado por elderjmp em 29/07/2008 - 02:19h

funciona para arquitetura de 64 bits?

[8] Comentário enviado por maran em 29/07/2008 - 06:54h

Atheros libera seu driver ath9k para Linux:

A fabricante de chipsets Wi-Fi Atheros anuncia que liberou o driver ath9k para Linux, compatível com todos os dispositivos IEEE 802.11n. Interessante ver que cada vez mais as companhias se preocupam em liberar drivers para linux, e por isso são escolhidas pelos usuários que conhecem tal iniciativa. O suporte a esta placa provavelmente será integrado em futuros kernels. Foi publicado com licença livre ISC. Confira mais em:

http://wireless.kernel.org/en/users/Drivers/ath9k

[9] Comentário enviado por octopos em 29/07/2008 - 15:47h

elderjmp sim, pois não se trata de um pacote e sim dos fontes que serão compilados na sua máquina, então sim. =]

maran , obrigado pelo complemento, eu havia mencionado sobre o athk5 que será mais amplo já que usará um HAL aberto. Apesar de o ath9k não ser completamente estável pode ser uma solução para alguns e também inclui uma recompilação de kernel. Vamos ver se as coisas ficam mais fácil em nível de hardware SEM prejudicar o desempenho.

[10] Comentário enviado por Juninho (Rh.com) em 29/07/2008 - 20:05h

Ei rapaz,

voce contribuiu e muito pra mim, eu não estava conseguindo instalar no meu Debian, e seguindo seu tutotrial deu certinho, tive que fazer pequenos ajustes como por exemplo desabilitar o networking manager, mas deu tudo certinho.

Valeu

[11] Comentário enviado por octopos em 02/08/2008 - 01:47h

Eehe, de nada!
Então Juninho, esse networking manager é o NetworkManager(*) que falava para killar, pois ele atrapalhava as coisas ^^

Fico feliz em saber que estou ajudando.

Abraços

[12] Comentário enviado por danipero em 06/08/2008 - 14:52h

Boa tarde, segui todos seus passos para instalação dos pacotes para rede wireless no meu note, porem não consegui fazer a placa "pegar" rede. Ela aparece na barra de ferramentas, eu configuro toda ela com nome da rede, senha mas ela fica em 0% de sinal. Meu note é um HP 6707us com placa Atheros AR5005. No "ruindows" está funcionando sem problemas. O detalhe é que no nosso setor temos 4 notes do mesmo modelo e todos estamos nessa situação. Não sei se de repente no meio disso tudo não rodei alguma coisa que possa não ter "levantado" a placa de rede.

Você pode me ajudar.

Obrigado,

Daniel.

[13] Comentário enviado por octopos em 08/08/2008 - 01:20h

Olá Daniel, você pode colar o iwconfig aqui?
Reparou se em alguma parte do processo o retorno do debug (dmesg ) continha erros?

Obrigado

[14] Comentário enviado por danipero em 08/08/2008 - 13:27h

Olá Octopos, estou postando abaixo o que você solicitou. Primeiro o IWCONFIG e depois o DMESG. Fico no aguardo e obrigado pela atenção.

lo no wireless extensions.

eth0 no wireless extensions.

wmaster0 no wireless extensions.

wlan0 IEEE 802.11bg ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

br0 no wireless extensions.

**********************************************************************

root@daniel-laptop:/home/daniel# dmesg | tail
[ 3051.044242] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 3053.052524] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 3053.068824] eth0: no link during initialization.
[ 3053.070301] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 3359.360987] eth0: link up.
[ 3359.362218] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 3364.168522] eth0: link down.
[ 3365.531786] eth0: link up.
[ 3367.532130] eth0: no IPv6 routers present
[ 3396.891378] eth0: no IPv6 routers present
root@daniel-laptop:/home/daniel#

*************************************************************************


[15] Comentário enviado por octopos em 02/09/2008 - 22:10h

Desculpe-me pela demora Daniel.

Aparentemente sua placa se tornou funcional, já que pelo menos a interface wireless está "em cima".
Você disse sobre barrinha e etc, então presumo que você deixou o NetworkManager carregado, estou certo?
Ou você usou um aplicativo apenas gráfico que busca os valores no iwlist wlan0 scan ?
Porque todas as máquinas que eu recompilava os módulos como módulo do kernel, e mantia o NetworkManager ativo, eu não conseguia sinal.

Eu volto a dizer, usar tudo "automático e brincar de windows" =], passei por umas dessas de novo, recompilei o kernel e adivinha se o ubuntu tinha o alsaconf no alsa-utils, ahahah..... baixei o fonte do alsa, e recompilei como módulo para kernel, igual o módulo para Atheros ^^.

Obrigado e desculpa a demora.




[16] Comentário enviado por RhuanLima em 16/09/2008 - 17:18h

rhuan-notebook:/usr/src/modules/madwifi-0.9.4# make
/bin/sh: line 0: cd: /lib/modules/2.6.18-6-686/build: Arquivo ou diretório não encontrado
Makefile.inc:66: *** /lib/modules/2.6.18-6-686/build is missing, please set KERNELPATH. Pare.


que eu faço???

[17] Comentário enviado por octopos em 17/09/2008 - 14:24h

Olá Rhuan, você baixou os fontes, headers do kernel?
Você precisa baixa-los, use o synaptic ou o próprio apt-get para achar-los corretamente.

No synaptic apenas busque por "2.6.18-6-686" , no apt-get use:
# apt-get install *2.6.18-6-686

Qualquer coisa poste aqui.

Abraços
=]


[18] Comentário enviado por removido em 24/10/2008 - 00:14h

problemas quando dou esse comando

wpa_supplicant -D madwifi -i ath%d -c /etc/wpa_supplicant.conf

ele diz que não da suporte ao driver madwifi...

Estranho! Por que, alguém saberia dizer?

[19] Comentário enviado por octopos em 24/10/2008 - 19:21h

Olá Wagner, você poderia colar a mensagem de erro?

Pois que eu saiba, desdo principio madwifi é suportado. Inclusive no help lista quais as placas que suporta.
Tenha certeza que athD é a interface certa, listando-a em:
$ ifconfig athD

* Sendo D a numeração da interface que o udev atribui no bot.

Ou mesmo vendo as que suportam wifi em:
$ iwlist


Em breve descreverei um método mais fácil para aqueles que esse deu problema ^^, a atheros lançou o Open HAL!!

\o/

;]

Abraços


[20] Comentário enviado por removido em 29/10/2008 - 20:25h

Então, o unico erro é a mensagem dizendo que o wpa_supplicant não da suporte ao driver madwif...
mais nada.

Vou tentar instalar novamente , estou fazendo um dual boot pois preciso instalar o oracle no Windows e no linux para estudar.

já retorno

[21] Comentário enviado por bbgshow em 02/04/2009 - 10:00h

otavio, por favor se puder me responder eu agradeço, e que coloquei ubuntu 8.04 para meu chefe e ja segui todos os seus passos, eu instalei o madwifi-tools pelo apt-get, ai fui subir o modulo e ver se deu algum erro, e nao deu erro algum, td certo, so que é como se o programa n reconhece a placa entende, eu ja desativei o networkmanager, ai a rede perde funcionalidade, ei me ajuda ai, o chefe ja ta ficando brabo, alguem poderia me dar uma força por favor? meu msn é: bbgshow@hotmail.com

[22] Comentário enviado por octopos em 04/04/2009 - 21:27h

Já lhe respondi por e-mail Daniel, assim que chegarmos em uma solução, eu coloco ela aqui.

=]

[23] Comentário enviado por dudumiquim em 17/04/2009 - 00:54h

Octopus, segui o seu processo a risca mas quando fui compilar o madwifi, apareceu essa mensagem subliminar ae!
[...]
CC [M] /usr/src/madwifi-0.9.4/net80211/ieee80211_output.o
CC [M] /usr/src/madwifi-0.9.4/net80211/ieee80211_power.o
/usr/src/madwifi-0.9.4/net80211/ieee80211_power.c: In function 'ieee80211_pwrsave':
/usr/src/madwifi-0.9.4/net80211/ieee80211_power.c:240: error: implicit declaration of function '__skb_append'
make[3]: *** [/usr/src/madwifi-0.9.4/net80211/ieee80211_power.o] Error 1
make[2]: *** [/usr/src/madwifi-0.9.4/net80211] Error 2
make[1]: *** [_module_/usr/src/madwifi-0.9.4] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-7-generic'
make: ** [modules] Erro 2


Tentei compilar dentro de /usr/src/modules e dentro de /usr/src mas nos 2 deu esse erro ae. O que pode ser?

Estou usando o Ubuntu 8.10, kernel 2.6.27-7

vlw!
PlayStation.: Nunca acontece como o artigo descreve! hehehe

[24] Comentário enviado por octopos em 18/04/2009 - 17:27h

Huum, a maior parte de problemas na compilação é referente ao make não está direcionando aos headers certos, links errados, versões erradas.... :\

Mas levando em conta que você usa o kernel >2.6.21, já tem o novo módulo, 100% open, usando o OpenHAL, dessa forma, você pode habilitar o módulo correto referente á sua placa.

Pelo " $ lspci | grep Atheros " você pode ver qual é chipset é a sua placa, para habilitar o módulo ath5k OU ath9k.

A lista dos chipsets suportados por cada módulo, e outras informações, você pode lê em:
http://linuxwireless.org/en/users/Drivers/ath5k
http://linuxwireless.org/en/users/Drivers/ath9k


Qualquer coisa, poste ^^

Abraços ;]



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts