Wireless no GNU/Linux [Parte 1]

Um dos problemas mais complicados de se resolver hoje, em um sistema operacional GNU/Linux, ainda é o suporte a placas de rede wireless. Embora já exista uma enorme preocupação em solucionar estes problemas nas distros atuais, através de várias ferramentas gráficas diferentes e suporte a algumas placas fornecido diretamente pelo kernel, ainda existem alguns casos que persistem em ficar sem solução. Vou relatar aqui minha pequena experiência envolvendo duas placas de rede wireless diferentes, uma em meu desktop doméstico e outra em meu notebook. Ambos com o Slackware Linux 12.0 instalado. Vamos lá!

Nessa primeira parte trataremos do caso de meu desktop, que já dispunha de uma placa de rede D-link DWL-G510 instalada, com a qual veio o cd de instalação com drivers disponíveis somente para a plataforma proprietária. Claro que se trata de mais um exemplo clássico de fabricante que não tem uma preocupação muito grande com o que o seu cliente está utilizando como sistema operacional, mas isso não vem ao caso no momento e não vai nos ajudar a resolver o problema ficar divagando sobre isso. A solução que encontrei veio com o NDISwrapper.

O NDISwrapper é um software livre para os sistemas GNU/Linux que implementa o suporte a várias placas de rede wireless, que não disponibilizem drivers para esta plataforma. Ele cria o ambiente necessário para que os drivers, que foram desenhados para a plataforma proprietária, “pensem” estar em funcionamento nela, quando na verdade estão agindo em um sistema livre. Antes de aproveitá-lo precisamos de mais uma ferramenta livre para nos auxiliar.

Como os drivers disponibilizados pelo fabricante geralmente estão em formato de arquivo executável, precisamos de um programa que extraia-os deste arquivo para que possamos utilizá-los. Para este propósito precisamos do Cabextract.

A instalação deles é bem simples pois a maioria das distribuições já os diponibilizam em seus repositórios de softwares para download. No meu caso acessei a página do LinuxPackages, que contém pacotes pré-compilados para a minha distribuição, baixei-os e os instalei. Em seguida copiei o arquivo executável que continha os drivers, do cd para o meu computador, e fiz a extração destes usando o comando de terminal:

$ cabextract arquivo.exe

Este comando extrairá os arquivos contidos dentro do executável para a pasta em uso no momento, entre eles estarão o driver e o firmware da placa que precisamos ativar. Firmware é normalmente definido como um tipo de programa que é executado dentro de um hardware, controlando-o diretamente. Daí a necessidade de carregá-lo para que o kernel Linux possa “conversar” com a placa através dele. De posse destes arquivos já podemos fazer a instalação do driver usando o NDISwrapper. Para isso executamos, como administrador, o comando de terminal:

# ndiswrapper -i arquivo.inf

Este arquivo com extensão .inf é o driver propriamente dito, e este comando deve ser executado também do interior da pasta onde estão os arquivos extraídos pelo cabextract pois, além do driver, o NDISwrapper carrega também o firmware. Como retorno ao comando acima teremos algo assim:

# driver installed. hardware(ou device) present

Isto significará que o driver foi instalado com sucesso, que o hardware foi encontrado e ambos já estão disponíveis ao sistema para serem utilizados. Assim basta entrar com as informações de seu provedor em um software que gerencie suas conexões, como o KWLan por exemplo, ativar a conexão e estará navegando. 🙂

Caso desejemos inserir as configurações “na mão”, usando o terminal, devemos fazer o seguinte:

1)Scannear as redes disponíveis com o comando:
# iwlist wlan0 scanning

Isto vai mostrar as redes disponíveis ao alcance e as informações de cada uma delas. Então, leia as informações correspondentes à sua rede e complete o comando abaixo:

# iwconfig wlan0 essid “nome_da_sua_rede” key “chave_de_criptografia” channel x

Todos os dados a serem inseridos acima são mostrados no retorno do comando iwlist, com excessão é claro da chave de criptografia. Verifique no seu caso quais são esses dados e insira-os complementando o comando iwconfig, caso contrário você não conseguirá acessar sua rede.

2)Depois de scannear, vamos subir a rede com os comandos:

# ifconfig wlan0 ip.dessa.máquina/máscara.dessa.máquina up

# route add wlan0

# route add default gw ip.do.meu.gateway

# echo “nameserver ip.do.meu.dns” >> /etc/resolv.conf

Se for utilizar o recurso de DHCP não precisa desses acima, basta um:

# dhcpcd wlan0

E pronto, estará configurada!

Você pode automatizar o processo, fazendo o seguinte:

# echo “/sbin/modprobe ndiswrapper” >> /etc/rc.d/rc.modules

# vi /etc/rc.d/rc.local ( e inserir as linhas: )

iwconfig wlan0 essid “nome_da_sua_rede” key “chave_da_sua_rede” channel x
ifconfig wlan0 ip.dessa.máquina/máscara.dessa.máquina up
route add wlan0
route add default gw ip.do.meu.gateway

ou, para o caso de usuários de DHCP, inserir somente:

iwconfig wlan0 essid “nome_da_sua_rede” key “chave_da_sua_rede” channel x

dhcpd wlan0

Salve o arquivo com Esc, Ctrl+x e pronto, assim toda vez que iniciar já irá conectar.

No meu caso isso foi suficiente, mas se o retorno recebido para o comando de instalação do driver não contiver informação semelhante ao retorno ( driver installed. hardware(ou device) present ), então algo de errado deve ter ocorrido. Ou o driver não foi reconhecido, e acusará a mensagem de invalid driver!, ou sua placa pode estar mal conectada ou não estar sendo reconhecida. Em quaisquer dos casos você pode tentar um driver diferente, recomendo os que estejam na pasta Win XP ou Win 2000, ou executar o comando:

# lspci

Este comando lista o hardware disponível nos slots PCI, assim verá se sua placa de rede wireless será listada ocupando um deles.

Caso nada disso dê certo recomendo então acessar este tutorial mais detalhado do Guia do Hardware que, além da instalação do NDISwrapper, fala também sobre programas e procedimentos diferentes caso o modelo de sua placa não seja o mesmo que o meu.

Na segunda parte deste artigo falarei sobre a instalação da placa de rede wireless que realizei em meu notebook. Até breve!

Anúncios