você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Instalando o driver madwifi para a placa AR5007EG

Colaboração: Bruno Buys

Data de Publicação: 04 de junho de 2008

A placa Atheros AR5007EG vem equipando diversos notebooks atuais, notadamente o Asus EEE PC. O problema para usuários de GNU/Linux é que essa placa apresenta

uma série de dificuldades para instalação de drivers, restando ao usuário se contentar com a solução sub-ótima do ndiswrapper ou mesmo não usar a placa.

O primeiro obstáculo para a instalação do driver madwifi é identificar a placa que equipa o computador. As AR5007EG não foram incluídas na base de dados do lspci, e são incorretamente identificadas como AR5006EG. Isso tende a se resolver com o tempo, mas por enquanto temos contornar o lspci. As AR5006EG são suportadas pela versão atual oficial do madwifi (0.9.4), segundo relatos de usuários em [1].

Repare nessa saída do lspci. Essa é a placa do meu notebook, sendo identificada como AR5006EG incorretamente.

03:00.0 Ethernet controller: Atheros Communications, Inc. AR5006EG 802.11 b/g Wireless PCI Express Adapter (rev 01)

Se a sua placa também é identificada como AR5006EG mas não funciona com o release oficial do madwifi, ela deve apresentar um erro semelhante a esse ao inserir o driver:

wlan: 0.8.4.2 (svn r2834)
ath_pci: 0.9.4.5 (svn r2834)
ACPI: PCI Interrupt 0000:06:00.0[A] -> GSI 17 (level, low) -> IRQ 16
MadWifi: unable to attach hardware: 'Hardware revision not supported' (HAL status 13)
ACPI: PCI interrupt for device 0000:06:00.0 disabled

O driver a ser instalado nesse caso tem que ser remendado com o patch em [2], ou então baixado já remendado, no link em [3]. A segunda opção é melhor: menos trabalhosa e o driver é mais recente.

Depois de baixado e descompactado, entre na pasta criada e faça os tradicionais make, make install. Depois de instalado, para inseri-lo sem reiniciar, faça "modprobe ath_pci". Você verá algo assim no dmesg:

[43.108188] ath_hal: 0.10.2.2-ATHEROS (AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133, RF2425)
[43.126612] wlan: trunk
[43.200805] ath_pci: trunk
[43.200909] PCI: Enabling device 0000:03:00.0 (0000 -> 0002)
[43.200975] ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 17
[43.701395] MadWifi: ath_attach: Switching rfkill capability off
[43.804548] ath_rate_sample: 1.2 (trunk)
[43.805283] MadWifi: ath_attach: Switching per-packet transmit power control off
[43.806210] wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
[43.806467] wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
[43.807269] wifi0: H/W encryption support: WEP AES AES_CCM TKIP
[43.807575] wifi0: ath_announce: Use hw queue 1 for WME_AC_BE traffic
[43.807641] wifi0: ath_announce: Use hw queue 0 for WME_AC_BK traffic
[43.807708] wifi0: ath_announce: Use hw queue 2 for WME_AC_VI traffic
[43.807776] wifi0: ath_announce: Use hw queue 3 for WME_AC_VO traffic
[43.807843] wifi0: ath_announce: Use hw queue 8 for CAB traffic
[43.807909] wifi0: ath_announce: Use hw queue 9 for beacons
[44.010025] ath_pci: wifi0: Atheros 5424/2424: mem=0x8c100000, irq=17
[45.695036] udev: renamed network interface ath0 to wlan0

Se você conseguiu ver essas linhas, a placa está funcionando com o madwifi. É só correr para os abraços!

Com o driver correto funcionando, você agora tem a ferramenta ath_info para mostrar dados da placa. Na verdade, o melhor seria poder identificar a placa ANTES do trabalho todo, mas mesmo assim, fica aí a dica:

Use o lspci para identificar o endereço de memória da placa:

lspci -v

03:00.0 Ethernet controller: Atheros Communications, Inc. AR5006EG 802.11 b/g Wireless PCI Express Adapter (rev 01)
Subsystem: AMBIT Microsystem Corp. Device 0428
Flags: bus master, fast devsel, latency 0, IRQ 17
Memory at 8c100000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [90] MSI-X: Enable- Mask- TabSize=1
Capabilities: [100] Advanced Error Reporting <?>
Capabilities: [140] Virtual Channel <?>
Kernel driver in use: ath_pci
Kernel modules: ath_pci, ath5k

O que interessa é:

Memory at 8c100000

Então, como root, faça:

ath_info 0x8c100000

E a saída será algo assim:

Warning: Invalid EEPROM Magic number!
-==Device Information==-
MAC Version:  2425  (0xe0)
MAC Revision: 2425  (0xe2)
PHY Revision: 5110  (0x00)
-==EEPROM Information==-
EEPROM Version:     5.3
EEPROM Size:        4K
Regulatory Domain:  0x65
-==== Capabilities ====-
|  802.11a Support: no   |
|  802.11b Support: no   |
|  802.11g Support: yes  |
|  RFKill  Support: yes  |
|  32KHz   Crystal: no   |
========================
GPIO registers: CR 00000000 DO 00000000 DI 0000000b

Obs: "2425" é um outro nome da AR5007EG.

Ainda não há suporte para essa placa para outras arquiteturas além de i386. Boa parte da encrenca tem origem regulatória: para seguir as regulamentações do FCC (a Anatel americana), a Atheros não pode publicar as especificações das placas de rede sem fio. O FCC determina que fabricantes de equipamentos que transmitem ondas de rádio não podem dar aos seus usuários meios de alterar o modo como os equipamentos funcionam, principalmente as frequências de ondas em que transmitem. Isso impede que eles liberem drivers livres ou especificações.

Uma das partes do driver, da qual o madwifi depende, é uma camada de abstração HAL encarregada da comunicação de baixo nível com a placa. Essa camada é binária e não há código-fonte para ela.

Repare que o erro lá em cima é do HAL, pois é ele que não consegue se comunicar com a placa (Hardware revision not supported (HAL status 13)). A parte mais importante do patch é o HAL, cuja revisão dá suporte à essa placa específica.

O patch que surgiu inicialmente, em fins do ano passado, teve que ser verificado quanto à origem, pois o próprio projeto madwifi tinha dúvidas de se haveria quebra de direitos autorais. Ainda hoje em dia o patch não foi incorporado ao tronco principal do driver, e com o HAL binário, não há como portar para as outras arquiteturas :(.

Para quem se preocupa com a liberdade do software, há um problema, claro. O driver não é 100% software livre. Só espero que seja mais livre do que usar o ndiswrapper com drivers win. Com o madwifi instalado e funcionando você pode ainda usar programas que dependam de acesso de baixo nível à placa, como o kismet (que não funciona com o ndiswrapper).

Isso tudo foi feito com Debian sid e funcionou nas versões 2.6.22 e 2.6.25 do Linux. Não use o module-assistant para instalar o driver, porque a versão que ele instala não serve para essa placa.

Você pode ver também a história toda em [4].

Referências

  1. http://madwifi.org/wiki/Compatibility/Atheros#AtherosAR5006EG
  2. http://madwifi.org/attachment/ticket/1679/madwifi-ng-0933.ar2425.20071130.i386.patch
  3. http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz
  4. http://madwifi.org/ticket/1679

Curso moodle para professores.

Colaboração: Gilvan Marques

Se você já tabalha na área de educação e quer conhecer uma ótima ferramenta para gerenciamento de cursos online, temos *20 vagas* gratuitas que serão preenchidas com a solicitação no email <gmarques (a) educnet info>, com o assunto CURSO MOODLE GRATUITO. A relação será divulgada no blog do curso ( www.educnet.info/cursomoodle) .

Curso voltado para professores e designers instrucionais que desejam conhecer melhor essa ferramenta para desenvolvimento de cursos online e prática de tutoria.

O objetivo do curso é mostrar ao professor as funcionalidades do moodle de forma que ele possa usar tais funcionalidade para a formatação de um curso a distância ou para o suporte ao ensino presencial.

O curso inicia no dia 09 de junho e tem a duração de 1 mês.



Veja a relação completa dos artigos de Bruno Buys