Usando o Ndiswrapper

Para as placas que não possuem um driver nativo, você pode usar 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/.

Os drivers para Windows são arquivos executáveis, que servem de intérpretes entre a placa e o sistema operacional. Eles contém o firmware da placa e outras funções necessárias para fazê-la funcionar.

Cada placa é diferente; por isso, os drivers de uma não funcionam na outra. Apesar disso, todos os drivers conversam com o sistema operacional usando uma linguagem específica de comandos. Ou seja, do ponto de vista do sistema operacional todos os drivers são parecidos.

O Ndiswrapper consegue executar o driver e “conversar” com ele usando esta linguagem. Ele trabalha como um intérprete, convertendo os comandos enviados pelo Kernel do Linux em comandos que o driver entende e vice-versa. O Kernel acha que está conversando com uma placa suportada, o driver acha que está rodando dentro de um sistema Windows, o que permite que a placa funcione, mesmo que o fabricante não tenha se dignado a escrever um driver nativo.

O Ndiswrapper não funciona com todas as placas e, em outras, alguns recursos não funcionam adequadamente. Apesar disso, na maior parte dos casos ele faz um bom trabalho.

Instalando: O Ndiswrapper vem pré-instalado na maioria das distribuições modernas, incluindo o Mandriva, mas ainda existem muitos casos em que você precisa instalá-lo manualmente.

No Ubuntu ele não é instalado por padrão, mas faz parte do CD de instalação, de forma que você não precisa estar conectado à web para instalar os dois pacotes:

$ sudo apt-get install ndiswrapper-common
$ sudo apt-get install ndiswrapper-utils-1.9



(o 1.9 indica o nome da versão, que pode variar de acordo com a versão do Ubuntu usada)

O Fedora é uma das poucas distribuições que não inclui o Ndiswrapper em seus repositórios. Para instalá-lo, é necessário usar os pacotes extra-oficiais incluídos no repositório do livna.org, ou instalá-lo a partir do código fonte.

Para usar o repositório livna, crie o arquivo “/etc/yum.repos.d/fedora-livna.repo“, com o seguinte conteúdo:

[livna]name=Livna
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/
gpgcheck=0

A partir daí você pode instalar o Ndiswrapper usando o yum:

# yum install ndiswrapper

Se tudo mais falhar, você pode instalá-lo a partir do código fonte, baixando a versão estável mais recente no http://ndiswrapper.sourceforge.net.

Para instalar, descompacte o arquivo, acesse e pasta que será criada e rode o comando “make install”, como em:

$ tar -zxvf ndiswrapper-1.51.tar.gz
$ cd ndiswrapper-1.51
# make install

(como root)

Carregando o driver: 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 em uma pasta qualquer do sistema, de forma que os arquivos “.inf” que fazem parte do driver fiquem visíveis.

Em muitos casos, os drivers são fornecidos na forma de um arquivo executável, que inclui os arquivos do driver e o utilitário de instalação. Para usá-los no Linux é necessário primeiro descompactar o arquivo usando o comando “cabextract”. Ele não vem pré-instalado na maioria das distribuições, por isso o primeiro passo é instalar o pacote “cabextract” usando o gerenciador de pacotes. No Ubuntu ou outra distribuição derivada do Debian você usaria:

# apt-get install cabextract

Com ele instalado, você pode desempacotar o driver usando o comando “cabextract nome_do_arquivo”, como em:

$ cabextract sp36684.exe

Ele descompactará o driver dentro da pasta atual, permitindo que você prossiga com a instalação.

Para carregar o driver usando o Ndiswrapper, rode o comando “ndiswrapper -i” (como root), seguido do caminho completo para o arquivo “.inf” referente ao driver, como em:

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

É necessário especificar o caminho completo até o driver apenas se você estiver em uma pasta diferente da onde estão os arquivos. Se você já estiver dentro da pasta, pode carregar o arquivo diretamente, como em:

# ndiswrapper -i GPLUS.inf

Rode agora o comando “ndiswrapper -l” para verificar se o driver foi mesmo ativado. Você verá uma lista como:

Installed ndis drivers:
gplus driver present, hardware present

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.

Se a placa não for ativada, você ainda pode tentar uma versão diferente do driver. Neste você precisa primeiro descarregar o primeiro driver. Rode o ndiswrapper -l para ver o nome do driver e em seguida descarregue-o com o comando “ndiswrapper -e“.

No meu caso o driver se chama “gplus” então o comando fica:

# ndiswrapper -e gplus

Você pode então testar um driver diferente, carregando-o com o comando “ndiswrapper -i”. Em alguns casos o próprio driver para Windows XP que acompanha a placa funcionará. Em outros é preciso usar alguma versão específica do driver. Você pode encontrar várias dicas sobre placas testadas por outros usuários do Ndiswrapper no http://ndiswrapper.sourceforge.net/, na seção “Documents/Wiki > List of cards know to work”.

Para que a configuração seja salva e o Ndiswrapper seja carregado durante o boot, você deve rodar o comando:

# ndiswrapper -m

Em seguida, adicione a linha “ndiswrapper” no final do arquivo “/etc/modules”, para que o módulo seja carregado durante o boot. Alternativamente, você pode também usar o comando abaixo, que faz a alteração de uma forma mais prática, adicionando a linha diretamente. Uma observação é que ele funciona apenas se executado diretamente como root, não funciona se executado usando o sudo:

# echo “ndiswrapper” >> /etc/modules

Uma última dica é que muitas placas com chipset Broadcom não funcionam corretamente em conjunto com o módulo “bcm43xx”, destinado a dar suporte a elas. Os problemas vão desde um alcance reduzido na recepção do sinal até casos de que a placa simplesmente não é reconhecida pelo sistema (mesmo com o driver ativo), o que torna necessário configurar a placa usando o Ndiswrapper.

Nesses casos, você precisa primeiro descarregar o módulo “bcm43xx”, usando o comando “modprobe -r bcm43xx” e em seguida adicionar a linha “blacklist bcm43xx” no final do arquivo “/etc/modprobe.d/blacklist“, para que ele deixe de ser carregado automaticamente pelo sistema. Enquanto o módulo bmc43xx estiver carregado, a placa ficará inacessível e você não conseguirá carregá-la usando o ndiswrapper.

Você pode fazer as duas coisas usando os comandos abaixo. Assim como no “echo ndiswrapper >> /etc/modules” que usamos anteriormente, o segundo comando precisa ser executado diretamente como root, sem usar o sudo:

# modprobe -r bcm43xx
# echo ‘blacklist bcm43xx’ >> /etc/modprobe.d/blacklist

Depois disso você pode configurar a placa normalmente usando o Ndiswrapper.

Interfaces: É possível também configurar o ndiswrapper usando o “ndisgtk“, um utilitário gráfico que automatiza a configuração, facilitando o carregamento e o gerenciamento dos drivers Windows. No Ubuntu e em outras distribuições derivadas do Debian você pode instalá-lo 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” e indique o driver Windows que será carregado:

index_html_43249934

Depois de ativar o driver, clique no “Configure Network”. Ele abre o networkmanager, onde você pode checar se a placa foi mesmo ativada e configurar a rede:

index_html_1b29760b

Esse sistema simples permite que você teste vários drivers diferentes caso necessário, instalando e removendo até encontrar o correto. Tenha em mente que não é incomum que o ndiswrapper trave ao tentar carregar (ou descarregar) certos drivers, por isso não estranhe caso a placa pare de responder durante o teste e você precise reiniciar o micro.

O Mandriva inclui um wizard que permite configurar a rede usando o ndiswrapper incluído no Mandriva Control Center. Clique no “Rede & Internet > Configurar uma nova interface de rede” e escolha a opção “Wireless”:

index_html_4aef771e

Na tela seguinte, use a opção “Utilizar driver do Windows (com ndiswrapper)” e indique a localização do arquivo .inf com o driver, que deve ter sido baixado previamente. Lembre-se de que você pode extrair drivers disponibilizados na forma de arquivos .exe usando o comando “cabextract”, como vimos anteriormente. Uma vez que o driver é carregado, o wizard continua, permitindo selecionar a rede, fornecer a passphrase e os demais passos da configuração:

index_html_m5615dfda

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, suporte ao WPA ou mesmo ao 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 de captura 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.

Uma última observação é que se você usar ao mesmo tempo uma placa de rede cabeada e uma placa wireless e o acesso pela placa wireless ficar intermitente, com a configuração caindo poucos minutos depois de configurada a rede, experimente desativar a placa cabeada ao configurar a rede wireless.

Esse é um problema freqüente, principalmente ao utilizar o ndiswrapper, mas felizmente fácil de resolver. Antes de configurar a placa wireless, desative a placa cabeada. Se a placa cabeada é a eth0, por exemplo, rode o comando:

# ifconfig eth0 down

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X