2008/07/02


Um dia na vida de um micreiro empolgado

Meu notebook HP (Compaq Presario V6210BR) teve um problema na placa de rede sem-fio. Funcionava muito bem, aí de repente começou a funcionar às vezes só, mas uma vez que ela ligava no boot, funcionava direto... Até que um dia parou de funcionar de vez.

Ontem resolvi acabar com o sofrimento, comprei uma dessas interfaces ("placa de rede") wi-fi que ligam via USB. Mas aí é a velha dúvida do usuário de Linux: será que funciona?

Normalmente é só ver o modelo e procurar na Internet pra saber se alguém já rodou. Mas é muito chato ficar indo na loja e na Internet toda hora, então muitas vezes a gente acaba é comprando às cegas mesmo. Comprei assim essa paradinha da D-Link, marca por que eu nutro uma certa simpatia. É tipo um pendrive grossão, com uma base pra ligar ele em pé e ficar parecendo o monolito do 2001.

Primeira tentativa de usar a parada: Liguei na minha máquina, bootei com meu kernel cotidiano, e ela apareceu bonitinho no lsusb. Faltava só tentar usar o ndiswrapper pra rodar o driver original do windows, igual eu fazia já com a finada placa antiga. Mas aí a decepção: eu uso um kernel para 64 bits (óbvio, estamos em 2008 e acho um absurdo pensar em usar coisas de 32 bits), mas o driver que veio é pra 32 bits, aí o ndiswrapper não consegue aproveitar o bicho. Tristeza total.

Aí veio o desafio: estava em casa já, sem conseguir consultar o oráculo internético pra me ajudar. Será que eu conseguia rodar um kernel de 32 bits e usar provisoriamente a paradinha?... Com minha instalação normal não tinha como, porque só estava lá meu kernel do dia-a-dia mesmo, e eu não tenho nem um CDzinho de instalação do debian (falha grave). A única possibilidade seria tentar rodar o knoppix (esse eu sempre tenho um), e tentar usar o ndiswrapper dentro dele.

Copiei os drivers pro meu HD, liguei o knoppix, e rodei o ndiswrapper. Funcionou! Rodei o wpa_supplicant com exatamente o mesmo arquivo de configuração que eu sempre usei, e funcionou também.

Agora era hora do dhcp, e pegar a prancha pra surfar. Qual o que... No knoppix não tem dhclient, único cliente de dhcp que já consegui usar direito; só tem o pump. Confirmando minha desconfiança, o pump não funcionou. Poisé. Só me restava tentar dar um jeito de executar o dhclient do Debian no meu HD. Tentei rodar o /sbin/dhcleint, mas é claro que não funcionou, porque era a versão 64bits... Tristeza: ou eu uso um kernel de 64 bits e rodo o dhclient, mas não o driver, ou rodo o kernel de 32 e rodo o driver, mas não o dhclient...

Mas havia uma última esperança. Acontece que eu tenho um sisteminha chroot na minha máquina, que uso pra rodar coisas chatas como o flash e o acrobat reader. E se por um acaso tivesse um dhclient lá dentro?... Fui conferir, e não é que tinha?? Rodei, de um errinho, e entendi que era só copiar os programas /mnt/sda6/32root/sbin/dh* pro /sbin do knoppix... Rodei de novo o dhcleint na árvore do knoppix, e tcha-nã!... Funcionou!!!...

Agora eu já tinha um procedimento pra entrar na Internet a hora que eu quisesse... Uma seqüência de passinhos me permitindo ler e-mails, entrar no google talk e fazer downloads de drivers e pacotes, que maravilha.

Então pesquisei sobre a minha paradinha D-Link wi-fi/usb DWA-110. Achei vários sites falando sobre usar o ndiswrapper, e alguns até indicavam que seria possível baixar um certo driver 64bits que funcionaria. Acontece que o DWA-110 é baseado num tal chip rt73, que parece ser bastante popular, e um driver de windows pra ele faria o serviço.

Ah! Achei ainda no site da D-Link um download de um driver pra Linux!... Eles não falar nada na caixa, mas no site tem. Só que eu peguei e me pareceu ser uma coisa tosca, que eu só tentaria usar em último caso (um lance não compatível com iwconfig, horrível!)

Acontece que é tão popular o tal rt73, que existe um projeto pra suportar estes dispositivos no Linux nativamente. Procurando, achei vários sites com diquinhas pra tentar usar esse driver...

Tentei baixar o fonte, compilar o módulo pro meu kernel, e nada... Tentei o cvs, tentei o fonte distribuído pelo Debian, e nada...

Aí veio a tentativa lógica: estava com o linux 2.6.22, mas já tinha um 2.6.25 disponibilizado, até com um pacotinho do módulo do rt73 compilado pra ele. Fui lá no knoppix, fiz aquela gambi toda, e downlodeei o pacote com a imagem do linux e com esse módulo. dpkg -i, reboota, e tchans! Funcionou!!

Um bom presságio já me havia indicado que tudo haveria de dar certo no final: Junto dos manuais maçantes e papeizinhos de advogado, na caixa da paradinha veio uma cópia impressa da GPL.

Nisso já consegui ler e-mails no mutt, conversar no freetalk e usar o museek. Mas só isso, no console, porque o X parou de funcionar... Fui dormir já bastante satisfeito.

De manhã compilei o driver oficial da nvidia usando o pacote oficial do Debian. "m-a a-i nvidia", e pronto, que beleza... Depois foi só atualizar o pacote nvidia-glx e correr pro abraço, relatando-lhes essa história através do iceweasel 3.

***

Notem que usei só console pra isso tudo, sem contar o browser na hora de pesquisar as coisas. E mais ainda, que em todo o processo eu fui tendo idéias de coisas pra tentar fazer, e fui sendo eventualmente recompensado com pequenos sucessos. Achei atalhos, fiz gambiarras, descobri caminhos alternativos... E no fim deu certo. Comprei um dispositivo com inúmeros selinhos "aprovado para uso com windows vista" e outras baboseiras, com o vendedor me dizendo que não podia me garantir se funcionaria com Linux ou não, que ele não tinha idéia e que isso era problema meu, mas de noite botei o bicho pra funcionar.

É isso que eu sentia falta no windows. Poder usar meus conhecimentos e poderes hacker pra encaixar as coisas no lugar com durex, e conseguir um sistema minimamente funcional pra então deixar ele mais sólido na base de um apt-get da vida. Meu lema em informática é "pode tudo". O que eu mais gosto de fazer na vida é ver um conjunto de dispositivos, ter um sentimento de "uai, deve ser possível fazer isso aqui... Deve ter um jeito de fazer isso", tentar descobrir como, e conseguir.

Chegou um momento na história do windows em que isso tudo ficou impossível... Se as coisas param de funcionar, vc fica apertando botãozinho de orelha escondida de menu bizarro, ou sei lá, tentando editar o infame "registro". Por mais que você tente escovar bit, não recompensa. Ser engenheiro e usar windows não recompensa mais... No Linux não, esse tipo de piração, essa manobras administrativas detetivescas, elas recompensam. Você não fica com a ilusão de que não adianta porcaria nenhuma ter lido zilhões de livros sobre computação, não, o estudo vale a pena pra quem usa Linux...

Recapitulando: no final das contas tudo se resumiu a instalar pacotes do Debian, eventualmente contruíndo-os com o module-assistant. Difícil foi descobrir, mas agora eu posso simplesmente ensinar pros outros, como estou fazendo agora. Se algum amigo meu que usa Linux no notebook quiser comprar um DWA-110, posso falar pra ele rodar:


apt-get install linux-image-2.6.25-2-amd64 rt73-modules-2.6.25-2-amd64


E a placa de rede vai (deve) funcionar igual sua placa anterior já funcionava. Aí é só atualizar também o driver da nvidia (isso se for o caso):


m-a update
m-a auto-install nvidia


Essas 3 linhas de comando fazem o serviço. Isso é "difícil"?? Acho muito mais fácil do que aqueles maçantes tutoriais ensinando a fazer coisas no windows, em que gastam-se páginas e mais páginas imprimindo screenshots de janelinhas, com textos tentando em vão descrever de forma concisa o que deve ser feito "cliquem em yadayada/zubalula/bliblibli, depois clique em xxy, depois selecione o lalala na combo box (nota: clique na setinha da combo box para que as opções apareçam, e a selecione com o mouse, ou talvez com o teclado (nota: talvez demore um pouco para aparecer as opções, porque o sistema tem que ler todas, e ainda tem o efeito de fade-in...) )".

Esses manuais de windows são terríveis, gastam inúmeras páginas e figuras e imagens com algo que deveria ser reduzido a uma simples operação.

Em administração de sistemas aquela história de que uma imagem vale mil palavras é o contrário... No windows gastam-se mil imagens (todas janelinhas ícones e botões) para se configurar sistemas, o que é melhor realizado com arquivos texto pequenos e comandos simples.

As pessoas não querem chegar no dia da interface falada? Não querem poder ligar o computador, e pedir, como na música dos Mutantes: "computador me responde"?... O que está mais próximo disso, a interface de linha-de-comando, onde se enunciam frases de uma forma dialética, ou aquelas milhares de janelinhas que são como quebra-cabeças, charadas a serem decifradas, testes de QI?

Essas janelinhas do mundo windows são como testes de QI, ou talvez aqueles brinquedinhos de criança em que tem os buracos de um formato e vc tem que encaixar as pecinhas no lugar certo... Adultos não brincam com isso, eles preferem conversar. Preferem estudar o que tem que ser dito, e então dizer. Fazem as coisas porque concordam que é a forma de ser feita, e não porque tem uma coleira ou cerca os obrigando a ir nesa ou aquela direção (janelinhas que te obrigam a apertar o botão certo, etc...)

Os programadores de interfaces gráficas chamam essas janelinhas deles de "diálogos", mas o quão dialética elas realmente são?

No comments: