quinta-feira, 17 de novembro de 2011

Ativar wireless em linux

     Essa semana resolvi instalar a distro BackTrack 5 em um notebook HP Pavilion da empresa para utilizar as ferramentas disponíveis para análise de redes, massss, claro que nem tudo funcionaria perfeitamente. Após todas instalações descobri que a placa de wireless não funcionava corretamente, é uma Intel 3945ABG, não é uma das mais difícieis de instalar em Linux mas com o BackTrack ela não funcionou. Instalei todos os módulos necessários de várias formas diferentes, de tanto instalar e desinstalar módulo acabei por reinstalar tudo por que achei que um pudesse estar atrapalhando o outro, o que é bem possível.
     O máximo que eu conseguia era receber a mensagem
 "SIOCSIFFLAGS: Unknown error 132"
quando tentava subir ela com "ifconfig wlan0 up".

A luz de ativação da placa, que tem que ficar azul quando está funcionando, permanecia vermelha, até que consegui encontrar algo se referindo ao comando rfkill e esse foi o "fio da meada", passei a procurar o que ele fazia e cheguei a esse link: 


Que vou reproduzir aqui porque essas documentações de empresas costumam desaparecer ou mudar de lugar com o tempo.

RFKill
    Muitos sistemas de computadores contém transmissores de rádio, incluindo Wi-Fi, Bluetooth, e 3G. Estes dispositivos consomem energia, a qual é desperdiçada quando o dispositivo não está em uso. 
      O RFKill é um subsistema no kernel do Linux que fornece uma interface através do qual os transmissores de rádio em um sistema de computador podem ser pesquisados, ativados, desativados. Quando os transmissores são desativados, eles podem ser colocados em um estado onde o software pode reativá-los ( um soft block) ou onde o software não pode reativá-los (um hard block). 
      O RFKill core fornece uma interface de programação de aplicativo (API) para subsistema. Os drivers do kernel que foram designados para suportar o RFkill usam este registro do API com o kernel, e inclui métodos para ativar e desativar o dispositivo. Além disso, o RFKill core fornece notificações que os aplicativos de usuários podem interpretar de formas para aplicativos de usuários pesquisarem os estados de transmissores. 
      O RFKill interface está localizado em /dev/rfkill, o qual contém o estado atual de todos os trasmissores de rádio no sistema. Cada dispositivo possui seu estado de RFKill registrado em sysfs. Além disso, o RFKill emite o uevents para cada mudança de estado em um dispositivo do RFKill ativado. 
      O Rfkill é uma ferramenta de linha de comando com a qual você pode pesquisar e mudar os dispositivos ativados do RFKill no sistema. Para obter a ferramenta, instale o pacote rfkill. 
       Use o comando rfkill list para obter uma lista de dispositivos, cada uma possui um index numberassociado à ele, iniciando como 0. Você pode usar este número de índice para informar o rfkill para bloquear ou desbloquear um dispositivo, por exemplo: 
rfkill block 0
bloqueia o primeiro dispositivo habilitado do RFKill no sistema.

      Você também pode usar o rfkill para bloquear certas categorias de dispositivos ou todos os dispositivos habilitados do RFKill. Por exemplo: 
rfkill block wifi
bloqueia todos os dispositivos do Wi-Fi no sistema. Para bloquear todos os dispositivos habilitados do RFKill, execute:
rfkill block all
      Para desbloquear os dispositivos, execute o rfkill unblock ao invés do rfkill block. Para obter uma lista completa de categoria de dispositivos que o rfkill consegue bloquear, execute rfkill help.

RESUMO:
      O dispositivo estava bloqueado, e não iria funcionar nunca se não fosse destravado. Foi a primeira vez que encontrei um dispositivo que assume esse estado como padrão, e já instalei Linux em dezenas de notebooks. 

Um comentário:

Anônimo disse...

Estou testando os comentários