segunda-feira, outubro 09, 2006

Como mandar o “Janelas” à fava! – Sexto Episódio!

Um caso prático. A migração de um velho portátil para Ubuntu.

Era uma vez um portátil. Velhote, com falta de memória (64 ram), processador coxo (celerom 700), e sistema operativo em fase terminal. Pois é, o velhote não aguentou mais com o Windows 98 e resolveu fazer greve. Bastava ligar o bicharoco, e logo de seguida aparecia uma bela mensagem, que dizia que tinha acabado de ocorrer um erro terrível e pavoroso.

O que fazer?

Das duas uma..... ou depois da limpeza voltar a carregar o Janelas, ou instalar o nosso bom e fiel amigo Ubuntu.

Usando como munição um livecd (e muita fé no mesmo hehehe), lá se colocou o disco na drive de CD no portátil... e fez-se a primeira tentativa.

Ao fim de uns bons 10 minutos, o livecd ainda não tinha arrancado.... será que o velho fujitsu está mesmo bom? Bem..... tentaram-se várias opções de arranque, mas o portatil teimava em não deixar o Ubuntu arrancar.

O problema era obvio... o LiveCD tem como requisitos mínimos 128 de Ram. E nós só tínhamos 64. E pior do que isso era saber que se o ambiente gráfico não arrancasse, não havia forma de instalar o Linux no disco com aquele CDROM.

Pois bem, qual a solução?

Depois de muito Gooooogle, a solução apareceu. Instalar em modo servidor (para isso é necessário fazer o download do "Alternate install CD", daqui

E depois de muitas voltas, um download de 700Mb e um cdrom gravado, lá começamos o processo de instalação no velho portátil.

A instalação correu sem incidentes. Mas no final das contas... o linux estava "cru".
A única coisa que estava disponível ao utilizador era uma linha de comando (ambiente de 'terminal'). E agora, como é que se instala o ambiente gráfico ?

Depois de mais uns minutos no Gooooogle, lá apareceu a resposta :

>sudo apt-get install gnome-desktop-environment

Mas aqui surge outra dificuldade... era necessário ligar o portátil à net, mas não tínhamos placa de rede no Portátil. Ainda bem que havia uma placa pcmcia xircom 10/100 por perto, que resolveu o problema. E agora, era só executar o tal comando.

E não é que funcionou? :)

É claro..... o sistema arrancava, mas levava tempos infinitos..... O Spreadsheet do OpenOffice (o equivalente do Excel) levava quase meia hora para fazer uma coisa tão simples como iniciar a aplicação, somar 1+1, gravar o ficheiro e sair.

E que tal acelerar o sistema? A resposta era RAM...... quanto mais melhor...... Infelizmente os tecno-ferenguis que fazem hardware para os computadores acham que é melhor cada portátil ter uma especificação diferente..... o que torna o upgrade de Ram a um portátil com 8 anos uma aventura.

Felizmente, apareceu uma pessoa que tinha várias placas de ram para portáteis em stock, e após experimentar várias, houve uma que funcionou. Era a única reconhecida. E só tinha 64Mb de Ram, mas em termos de melhoria do sistema..... ui! agora até voava :)))

Próximos passos?

1. instalar suporte multimédia (para ouvir MP3 e ver filmes em formato DIVX)
2. instalar o modem ADSL do Sapo, um SpeedTouch 330 USB, e configurar o sistema para arrancar a ligação automaticamente.

Recapitulando :

Passo 1 - suporte multimedia (tudo em uma única linha):

>sudo apt-get install gstreamer0.10-ffmpeg gstreamer0.10-gl gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse w32codecs

Passo 2 - instalação do Modem ADSL USB

Em bom Português, um internauta foi porreiro, e disponibilizou um pacote de instalação, que instala de forma completamente automática o modem, e configura o sistema para inicializar a ligação no arranque do Linux.

Aqui fica o link : http://gothicx.blogs.sapo.pt/8886.html

A instalação é muito simples :

- Fazer o download do "programa de instalação + drivers" de http://marco.tondela.org/stuff/speedtch330.tar.gz
- descompactar o ficheiro numa janela de terminal (tar zxvf speedtch330.tar.gz)
- entrar na directoria "speedtch330" e executar da seguinte forma : >sudo sh speed330.sh
- depois é só seguir as indicações!

E pronto.

Assim concluímos o nosso exemplo prático, e fizemos a boa acção do dia... salvar o velho fugitsu das garras do “Janelas” hehehehe

Até à próxima
Tecnobugiganga

segunda-feira, outubro 02, 2006

Como mandar o “Janelas” à fava! – Quinto Episódio!

Guia de sobrevivência avançado - a instalação de programas da forma difícil!

A instalação de programas quando estes não existem em formato "apt", normalmente é uma grande dor de cabeça. Disso não há a menor dívida.

No entanto, às vezes é necessário passar por isso! Esta “lição” tem dois objectivos :

Apresentar os conceitos básico sobre compilação, linkagem e makefiles.

Apresentar um exemplo de aplicação do mundo real (a instalação de um driver novo no ubuntu para uma placa de rede sem fios WiFi).

Então aqui ficam os conceitos básicos :

Ferramentas de compilação (build)

Em primeiro lugar, queremos instalar as bibliotecas essenciais para os processos de compilação:

>sudo apt-get install build-essential

>sudo apt-get install linux-headers-`uname -r`


Para testar se tudo correu bem, experimente no terminal alguns destes comandos :

>sudo make

>sudo gmake

>sudo gcc

Nota: É conveniente usar o "sudo", para atribuir permissões de administração aos processos de compilação.

Agora, já deveremos ter o compilador de linguagem C (gcc), o make (leitor de makefiles), e os cabeçalhos necessários para referenciar bibliotecas base do linux (linux-headers)


O que é o Compilador?

A Wikipédia (a enciclopédia livre) explica que um compilador é um programa que, a partir de um código escrito em uma linguagem, o código fonte (do inglês source code), cria um programa semanticamente equivalente porém escrito em outra linguagem, código objecto (do inglês object code).

Ou seja, o compilador é um programa que processa, valida e transforma um conjunto instruções escritas nos ficheiros fonte, em “objectos” ( que são outros ficheiros que contêm as mesmas instruções, mas num formato em código não inteligível).

Obviamente, os objectos só podem ser compilados se forem entendidos correctamente pelo compilador... ou seja, não podem haver erros sintácticos :)

Mas nesta fase, ainda não conseguimos gerar o ficheiro executável. Ainda temos de realizar a fase de "linkagem".

O que é o Linker?

A Wikipedia explica que o Linker, em informática, é um programa que liga objectos gerados por um compilador, formando assim o ficheiro executável final.

Portanto, o Linker pega nos ficheiros que acabamos de compilar, junta-lhe as bibliotecas necessárias (que estão programadas nos ficheiros fonte e na makefile) e gera o executável final.

E a makefile? E o Make? Para que servem?

Novamente a Wikipedia explica que o make é um programa de computador concebido para compilar automaticamente o código fonte de um programa. O make utiliza instruções contidas num ficheiro chamado "Makefile" e é capaz de resolver as dependências do programa que se pretende compilar.

Basicamente a ideia é ter uma receita com instruções, de modo a dar apenas um comando (ex: make install) e a partir daí a compilação e linkagem acontecer de forma completamente transparente para o utilizador, tal como ilustrado na figura.

Então e que tal um exemplo real de aplicação?

Imagine que o leitor tem uma placa WiFi que adquiriu num kit Adsl do Clix, e a placa não funciona bem com o Ubuntu. O Driver que vem de origem no Ubuntu não está muito bom.. e queremos corrigir o problema, instalado novos drivers "fresquinhos".

A placa USB tem o chip Zydas ZD1211 (abrindo a placa, estas letras devem estar bem visiveis no circuito integrado maior), e as instruções para instalação estão aqui :

http://doc.gwos.org/index.php/Zydas_ZD1211

Só para o leitor não se perder, aqui fica uma breve explicação do procedimento indicado:

Preparação (Preparation)


Remover o driver antigo:

>sudo modprobe -r zd1211

>sudo apt-get remove wpasupplicant


Instalar os pacotes e bibliotecas necessárias ao processo de compilação:

>sudo apt-get install linux-tree

>sudo apt-get update

>sudo apt-get install build-essential

>sudo apt-get install kernel-package

>sudo apt-get install gcc

>sudo apt-get install libncurses5

>sudo apt-get install libncurses5-dev

>sudo apt-get install libqt3-mt-dev

>sudo apt-get install wireless-tools


Descompactar o código fonte (em Linux os ficheiros compactados/agrupados podem estar no formato zip,tar,bz2,gz, etc) e criar um "symbolic link" (algo semelhante a uma shortcut ou atalho no Win):

>cd /usr/src

>sudo tar --bzip2 -xvf linux-2.6.12.tar.bz2

>sudo ln -s /usr/src/linux-2.6.12 /usr/src/linux


Criar outro "symbolic link" para os cabeçalhos Linux:

>sudo ln -s /usr/src/linux-headers-2.6.... /usr/src/linux-headers


Depois de fazer os downloads do openssl e das sources do Driver, é ainda necessário criar mais um "symbolic link" :

>sudo ln -s /usr/src/openssl/include /usr/src/wpasupplicant/openssl


Editar a makefile e garantir que a linha existe no ficheiro

"KERN_26=y KERNEL_SOURCE=/usr/src/linux" (sem aspas):

>sudo gedit Makefile


Finalmente [ufa :)] a compilação:

>sudo make

>sudo make install


Daqui resultam vários ficheiros, mas o único que interessa é o zd1211.ko, que deverá ser copiado para /lib/modules/...../net
(obviamente os ..... representam o nome de uma directoria cujo nome depende da versão do driver)


E por último, carregar o driver :

>sudo modprobe -v zd1211


Ok, ok, já sabemos que isto foi bastante complicado....... mas afinal, era este o objectivo desta "lição"...... como instalar algo da forma complicada :))

Até à próxima!

Tecnobugiganga