A questão dos drivers

Um dos principais fatores que você deve levar em conta na hora de escolher uma placa wireless é se o modelo escolhido é bem suportado no Linux. Caso a placa tenha um driver disponível, a configuração será simples, mas sem o driver você fica trancado do lado de fora do carro. Lembre-se: o driver é a chave e você nunca deve comprar um carro sem a chave :). No caso do Windows, a situação é muito mais tranqüila, já que os fabricantes incluem os drivers no CD que acompanha a placa, embora, em muitos casos, estejam disponíveis apenas drivers para Windows XP, o que deixa de fora quem ainda usa o Windows 98 ou ME.

Vamos, então, a um resumo dos drivers Linux, que você pode usar como ponto de partida na hora de resolver problemas de detecção da placa wireless. Você vai encontrar uma descrição mais detalhada dos drivers para placas wireless for Linux disponíveis, juntamente com informações sobre placas suportadas e instruções de instalação de cada um no meu livro Linux, ferramentas técnicas.

1– Você pode verificar o chipset utilizado na sua placa usando o comando “lspci” (em algumas distribuições ele está disponível apenas para o root). Os fabricantes muitas vezes utilizam chipsets diferentes em variações do mesmo modelo, por isso é sempre mais seguro se orientar pela saída do comando lspci do que pelo modelo da placa.

O lspci lista todos os periféricos plug-and-play instalados no micro. Entre eles, você verá uma linha sobre a placa wireless, como em:

02:00.0 Network controller: Texas Instruments ACX 111 54Mbps Wireless Interface
(veja que neste exemplo temos uma placa ACX 111) ou:

Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
(que indica que a placa é uma Intel IPW2200)


2
– A maior parte das placas possui drivers for Linux, mas muitos destes drivers são de código fechado ou precisam do firmware da placa (um componente proprietário, que faz parte dos drivers for Windows), por isso muitas distribuições não os incluem. No Mandriva, por exemplo, os drivers de código fechado são incluídos apenas na versão power pack, que não está disponível para download público.

Nesses casos é preciso instalar o driver manualmente, baixando o código fonte e compilando. Para isso você precisa ter instalados os compiladores (a opção “Development” (desenvolvimento) geralmente disponível durante a instalação) e também os pacotes “kernel-source” (o código fonte do Kernel) e “kernel-headers (os headers do Kernel, um conjunto de símbolos utilizados na compilação do driver). Sem esses componentes corretamente instalados, você não conseguirá compilar nenhum driver.

Para as placas ACX100 e ACX111, use o driver disponível no http://rhlx01.fht-esslingen.de/~andi/acx100/.

Para instalar, você deve usar o procedimento padrão para arquivos .tar.gz com código fonte, ou seja, baixar o arquivo, descompactá-lo e executar (dentro da pasta criada) os comandos:

$ make
(este usando seu login de usuário)
# make install
(este como root)

Este é um dos drivers que precisam do firmware da placa para funcionar. Depois de instalar o driver propriamente dito, execute o arquivo “scripts/fetch_firmware (ainda dentro da pasta onde o arquivo foi descompactado), use a opção “C” para baixar os firmwares para os dois chipsets de uma vez.

Ele baixa os arquivos necessários e os salva na pasta “firmware/”. Para instalar, acesse a pasta e copie todo o conteúdo para a pasta “/usr/share/acx/” (crie a pasta manualmente, caso necessário). A partir daí, a placa passa a ser detectada durante o boot.

Para as placas com chipset Atheros, use o driver disponível no: http://madwifi.otaku42.de/ ou http://madwifi.sourceforge.net/.

Para as placas ADMteck com chipset ADM8122, use o driver disponível no: http://aluminum.sourmilk.net/adm8211/.

As placas Intel, com chipset IPW2100 ou IPW2200 (usadas nos notebooks com tecnologia Centrino), possuem um driver nativo muito estável, desenvolvido pela própria Intel. O driver já vem pré-instalado em praticamente todas as distribuições atuais, mas muitas não incluem o firmware, que é proprietário.

Para baixá-lo manualmente, acesse o http://ipw2200.sourceforge.net/ (ou http://ipw2100.sourceforge.net/ , se você possui uma placa IPW2100 antiga) e baixe o arquivo compactado na seção “firmware”. Copie o arquivo para a pasta “/lib/firmware” e descompacte-o, como em:

# cp -a ipw2200-fw-2.4.tgz /lib/firmware/
# cd /lib/firmware/
# tar -zxvf ipw2200-fw-2.4.tgz

Uma pegadinha é que existem várias versões do firmware disponíveis no http://ipw2200.sourceforge.net/firmware.php, acompanhando as diferentes versões do driver. A versão 2.4 funciona em conjunto com o driver de versão 1.07 até 1.10 (usado no Kurumin 6.0, por exemplo), enquanto o firmware versão 3.0 funciona em conjunto com o 1.11 em diante. Ao instalar uma nova versão do driver, lembre-se também de checar e, se necessário, atualizar também o firmware. Você pode checar qual é a versão instalada usando o comando:

# modinfo ipw2200
(ou modinfo ipw2100)

Com os arquivos do firmware no local correto, o driver passa a funcionar corretamente. Você pode verificar as mensagens de inicialização usando o comando “dmesg | grep ipw“, como em:

# dmesg | grep ipw

ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8
ipw2200: Copyright(c) 2003-2005 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

Se, por outro lado, o comando exibir algo como:

ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.0.8
ipw2200: Copyright(c) 2003-2005 Intel Corporation
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Unable to load ucode: -62
ipw2200: Unable to load firmware: -62
ipw2200: failed to register network device
ipw2200: probe of 0000:01:05.0 failed with error -5

… rode os comandos abaixo para recarregar o driver:

# echo 100 > /sys/class/firmware/timeout
# modprobe -r ipw2200
# modprobe ipw2200

A partir daí a placa passará a funcionar normalmente. Você pode incluir os comandos no final do arquivo “/etc/init.d/bootmisc.sh” (se você usa uma distribuição derivada do Debian) ou “/etc/rc.d/rc.local” (se você usa o Fedora ou outra distribuição derivada do Red Hat), para que eles sejam executados automaticamente durante o boot.

O primeiro comando aumenta o tempo de espera do Kernel na hora de carregar o firmware. O default são 10 milessegundos, o que não é suficiente em algumas versões do driver. Aumentando o tempo de espera, o driver passa a carregar corretamente.

As placas com chipset Ralink também são muito bem suportadas. A Ralink é uma pequena fabricante taiwanesa, que fabrica placas de baixo custo. Além de divulgar as especificações das placas, eles apóiam o desenvolvimento dos drivers Linux e fornecem hardware e outros recursos aos desenvolvedores.

As distribuições atuais incluem os drivers para elas, mas, em casos de problemas, você pode baixa-los no: http://prdownloads.sourceforge.net/rt2400/.

Existe também um driver nativo para as placas baseadas no chipset Realtek rtl8180, que pode ser baixado no: http://rtl8180-sa2400.sourceforge.net/. Ele também é open-source e incluído por padrão nas distribuições atuais.


3
– Para as placas que não possuem um driver nativo, você pode utilizar o Ndiswrapper, que permite ativar a placa utilizando o driver do Windows XP. Ele utiliza parte do código do Wine, adaptado para trabalhar com drivers de placas wireless, ao invés de executáveis de programas. A página oficial é a http://sourceforge.net/projects/ndiswrapper/.

Ele vem pré-instalado na maioria das distribuições modernas. No Ubuntu (Breezy ou Dapper), ele não é instalado por padrão, mas faz parte do CD de instalação, de forma que você não precisa estar conectado para instalar:

$ sudo apt-get install ndiswrapper-utils

Para usar o Ndiswrapper, você precisa ter em mãos o driver da placa para Windows XP, que pode ser encontrado no CD de instalação ou no site do fabricante. Comece descompactando o arquivo do driver (caso necessário); para carregar o arquivo do driver, rode o comando “ndiswrapper -i” (como root), seguido do caminho completo para o arquivo, como em:

# ndiswrapper -i /mnt/hda6/Driver/WinXP/GPLUS.inf

Com o driver carregado, ative o módulo com o comando:

# modprobe ndiswrapper

Se tudo estiver ok, o led da placa acenderá, indicando que ela está ativa. As placas ativadas através do Ndiswrapper são sempre detectadas como “wlan0”, independentemente do driver usado. Com a placa ativa, falta apenas configurar os parâmetros da rede wireless, usando os mesmos passos que vimos anteriormente.

No Kurumin, você pode usar o script de configuração disponível na aba “Ndiswrapper”, do painel de configuração de placas wireless. Ele automatiza o processo de configuração, pedindo que você indique a localização do driver Windows e, em seguida, forneça a configuração da rede:

No Ubuntu, a melhor opção de interface gráfica de configuração é o “ndisgtk”, que você pode instalar via apt-get:

$ sudo apt-get install ndisgtk

Depois de instalado, será incluído o ícone “Windows Wireless Drivers” no menu “Sistema > Administração”. Ele é bem simples de usar: clique no “install new driver”, indique o driver Windows que será carregado. Clicando no “Configure Network” você abre o network-admin, onde pode configurar os parâmetros da rede:

Muitos drivers que funcionam através do Ndiswrapper trabalham com um conjunto limitado de recursos. Em alguns casos, recursos como o monitoramento da qualidade do sinal, configuração da potência do transmissor, WPA ou mesmo o WEP de 128 bits não são suportados, embora os recursos básicos da placa funcionem perfeitamente. As placas ativadas através do Ndiswrapper também não funcionam em conjunto com o Kismet ou outros softwares similares, que colocam a placa em modo monitor. Sempre que for comprar, procure diretamente uma placa com drivers nativos, deixe para utilizar o Ndiswrapper como último recurso.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X