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. 

quarta-feira, 9 de novembro de 2011

Mudar o local do diretório "/home"

Uma grande dor de cabeça é quando nossa home está quase lotando e não sabemos o que fazer para fazer com que ela passe a ser montada no hd novo que acabamos de comprar.
Não é tão difícil, "o detalhe são os detalhes". rsrs
Passo-a-passo:
1º Adicione e prepare seu novo hd. Não vou detalhar aqui pois "cada caso é um caso" e você pode querer usar ele não só como home. Vou assumir, para questões didáticas, que a partição que você deseja colocar a home é /dev/sdb1.

2º Inicie seu computador normalmente;
3º Altere a linha do arquivo /etc/inittab
          id:2:initdefault:
     Para
          id:1:initdefault:
          * Essa é a configuração para o Debian, em outras distros isso pode ser diferente, leia as linhas dentro do próprio /etc/inittab
4º Reinicie o computador. Essa operação é necessária para que o sistema não grave nada na home depois que você fizer a cópia.
5º No boot vai ser solicitado que você coloque a senha de root ou digite Ctrl+D, digite a senha, claro. Agora você já estará no prompt como root.
     
6º Crie um ponto de montagem que será usado temporariamente;
     "mkdir /mnt/hd2"
7º Monte o novo hd nesse ponto;
      "mount -t auto /dev/sdb1 /mnt/hd2"
8º copie todos os arquivos da pasta /home para esse novo ponto de montagem.
      "cp -Rp /home/* /mnt/hd2"
       * aqui é que estão os detalhes, as opções -r e -p: 
          -p Preserva o original proprietário, grupo, permissões (incluindo os bits setuid e setgid), tempo da última modificação e o tempo do último acesso. No caso da de duplicação do proprietário ou grupo falhar, os bits setuid e setgid serão zerados. (Note que mais tarde a origem e a cópia deverão ter diferentes tempo de último acesso, desde que a operação de cópia é um acesso no arquivo origem.
          -R Copia diretórios de forma recursiva, e faz algo incerto quando outros objetos a não ser arquivos ordinários ou diretóriso são encontrados. (Assim, a cópia de um FIFO ou arquivo especial é um FIFO ou um arquivo especial.)
                                           Fonte: Man Page do comando cp.

9º Altere seu arquivo /etc/fstab.
     Se sua partição /home anterior estava dentro da partição raíz você terá que adicionar uma linha a mais nesse arquivo, se não você poderar apenas alterar a linha existente.
     Esse é um exemplo de linha a ser adicionada:
                         UUID=db9ecb8e-7c9b-405f-b7eb-360cd6980696 /home ext4 defaults 0 2
     O Debian se refere ao dispositivo utilizando o UUID dele, esse é um número que identifica unicamente cada dispositivo, dessa forma, mesmo que você inverta a posição dos hd's no seu hard, ele sempre montará conforme definido. Para achar o UUID de seus dispositivos utilize o comando blkid.

10º Use o comando "mount -a" para testar a montagem e verifique se não há nada de errado, se der algum erro refaça esse passo.


11º Com tudo pronto, reinicie o computador, agora com sua nova /home.