você está aqui: Home  → Arquivo de Mensagens

Ativando placas wireless com o Ndiswrapper

Colaboração: Carlos E. Morimoto

Data de Publicação: 24 de Junho de 2005

O Ndiswrapper é uma espécie de Wine para drivers de placas de rede wireless. Ele funciona como uma camada de abstração entre driver e o sistema operacional, permitindo que placas originalmente não suportadas no Linux funcionem usando os drivers do Windows.

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/wiki/index.php/List

Os drivers para Windows são arquivos executáveis, que servem entre 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 mas, 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 e a placa finalmente funciona, 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 como o WPA não funcionam, mas na maior parte dos casos ele faz um bom trabalho.

A página do projeto é a:

http://ndiswrapper.sourceforge.net

Muitas distribuições já trazem o Ndiswrapper instalado por padrão, como o Kurumin e o Mandrake 10 em diante. Nestes casos você pode pular este tópico sobre a instalação e ir direto para a configuração. Procure pelo pacote "ndiswrapper" no gerenciador de pacotes.

Instalando

Na página você encontrará apenas um pacote com o código fonte. Como o Ndiswrapper precisa de um módulo instalado no Kernel, seria complicado para os desenvolvedores manter versões para muitos distribuições diferentes. Assim como no caso dos softmodems, para compilar o pacote você precisa ter instalados os pacotes kernel-headers e/ou kernel-source e os compiladores. A versão mais recente pode ser baixada no:

http://sourceforge.net/projects/ndiswrapper/

Descompacte o arquivo e acesse a pasta que será criada. Para compilar e instalar, basta rodar o comando:

  # make install

(como root)

O Ndiswrapper é composto de basicamente dois componentes. Um módulo, o ndiswrapper.ko (ou ndiswrapper.o se você estiver usando uma distribuição com o Kernel 2.4), que vai na pasta "/lib/modules/2.x.x/misc/" e um executável, também chamado "ndiswrapper", que é usado para configurar o driver, apontar a localização do driver Windows que será usado, etc.

Se por acaso você estiver usando uma distribuição que já vem com o Ndiswrapper instalado, você deve primeiro remover o pacote antes de instalar uma versão mais atual. Caso a localização do módulo ou do executável no pacote da distribuição seja diferente, pode acontecer de continuar sendo usado o driver antigo, mesmo depois que o novo for instalado.

Configurando

Depois de instalar o Ndiswrapper, o próximo passo é rodar o comando "depmod -a" (como root) para que a lista de módulos do Kernel seja atualizada e o novo módulo seja realmente instalado. Isto deve ser feito automaticamente pelo script de instalação, é apenas uma precaução.

Antes de ativar o Ndiswrapper você deve apontar a localização do arquivo .inf dentro da pasta com os drivers para Windows para a sua placa. Em geral os drivers para Windows XP são os que funcionam melhor, seguidos pelos drivers para Windows 2000. Você pode usar os próprios drivers incluídos no CD de instalação da placa. Se eles não funcionarem, experimente baixar o driver mais atual no site do fabricante, ou pesquisar uma versão de driver testada no ndiswapper no:

http://ndiswrapper.sourceforge.net/wiki/index.php/List

Para carregar o arquivo do driver rode o comando "ndiswrapper -i", seguido do caminho completo para o arquivo, como em:

  # ndiswrapper -i /mnt/hda6/Driver/WinXP/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, você já pode carregar o módulo com um:

  # modprobe ndiswrapper

Se tudo estiver ok, o led da placa irá acender, indicando que ela está ativa. Agora falta apenas configurar os parâmetros da rede Wireless que veremos adiante.

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 por exemplo o driver se chama "gplus" então o comando fica:

  # ndiswrapper -e gplus

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

  # ndiswrapper -m

E em seguida adicionar a linha "ndiswrapper" no final do arquivo "/etc/modules", para que o módulo seja carregado no boot.


Gostou da dica? Veja a agenda de cursos presenciais com Carlos E. Morimoto em Porto Alegre e São Paulo

  • Curso: Redes e Servidores Linux (com Carlos E. Morimoto) Em Porto Alegre, início dia 04/07

  • Curso: Programando em Shell Script (com Júlio Cezar Neves) Em Porto Alegre, início dia 11/07


Veja a relação completa dos artigos de Carlos E. Morimoto

 

 

Opinião dos Leitores

O Astronauta
26 Dez 2012, 03:41
Muito obrigado pela ajuda. Fiquei horas procurando a solução na internet e foi aqui que deu certo, pois está bem detalhado.
Claudinei
22 Jan 2011, 19:14
Olá, preciso de ajuda de vcs, agradeço..
Qnd tento compilar da esse erro, pq isso acontece...
e tbm o modprobe ndiswrapper da erro..
ja tentei de tudo

/////////////////////

[root@localmaster Área de Trabalho]# cd ndiswrapper-1.56
[root@localmaster ndiswrapper-1.56]# make install
make -C driver install
make[1]: Entrando no diretório `/home/Claudinei/Área de Trabalho/ndiswrapper-1.56/driver'
Makefile:34: *** Cannot find kernel version in /usr/src/kernels/2.6.33.3-85.fc13.i686, is it configured?. Pare.
make[1]: Saindo do diretório `/home/Claudinei/Área de Trabalho/ndiswrapper-1.56/driver'
make: ** [install] Erro 2

////////////////////////

[root@localmaster ~]# ndiswrapper -i /media/Driver/RTL8188SU_Driver/Windows/88_91_92_SU_Driver/WinXP/
install argument must be .inf file
[root@localmaster ~]# ndiswrapper -l
WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
net8192su : driver installed
device (0BDA:8171) present

/////////////////////////////

[root@localmaster ~]# modprobe ndiswrapper
WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
FATAL: Module ndiswrapper not found.

//////////////////////////
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script