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: 44.573 ]

Por: Otávio em 28/07/2008


Introdução

Após ter buscado bastante, pedido ajuda e tentado durante um bom tempo configurar a minha placa de rede wireless da Abit (chipset Atheros Communications Inc. AR242x), finalmente consegui configurar e colocar para funcionar uma placa que inclusive os mantedores do madwifi falavam que era "bastante provável de incompatibilidade de hardware e erros no módulo".

Comecemos do início, os módulos da madwifi usam HAL ("Hardware Abstraction Layer"), que é em uma definição mais "simples", uma espécie de API a nível de hardware. Trata-se de um código binário e proprietário para a comunicação do módulo e o hardware. Portanto o módulo não "conversa" diretamente com o hardware.

Desta forma o módulo da madwifi para chips da Atheros acaba sendo feito sem um completo entendimento do HAL, portanto, isso leva a... mutretaa!!

Erros inesperados ou incompreensíveis a nível de desenvolvimento são comuns, basta dar uma olhada nos tickets do mantedor . Apesar de que isso irá mudar, em um futuro próximo, pois os módulos para Atheros usarão uma HAL aberto, o OpenHal. Mais pode ser lido em:
Já que nosso HAL é proprietário...

Vamos logo ao How to! ^^

    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

Clonagem de Hardware Hotline em Software Livre

Instalação da impressora Canon Image Runner 1023n no Ubuntu

Configurando e utilizando um gravador de CDs IDE

Instalando o modem Huawey E1556 no GNU/Linux

Configurando impressora HP692C no Slackware

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