segunda-feira, 20 de abril de 2009

Debian Lenny com inteface gráfica em menos de 30MB de RAM

Recentemente tomei contato com o Tinycore linux, uma distro pequena cuja imagem .iso cabe em 10MB. A distro tem softwares atualizados e um visual invocado com JWM e o dock wbar. Após o boot, consome 30MB de RAM. E eu penando para limpar o consumo de memória no notebook da minha irmã, que tem 256 MB de RAM e roda o Debian Lenny. Usando o KDE 3.5, basta abrir um navegador e o kopete que a coisa parece que começa a andar para trás. Ora, como uma das vantagens do Linux é imensa possibilidade de configuração (flexibidade), pensei comigo. Tenho duas opções: colocar esse tinycore no notebook da minha irmã ou... personalizar o Debian para consumir menos do que está consumido agora. Escolhi a segunda opção. E abaixo segue o passo-a-passo, vulgo howto.

1 - Instalação enxuta (básica) do Debian Lenny. Instale apenas o modo texto.
2 - Instale os seguintes pacotes (aptitude install): xbase-clients, xfonts-base, xserver-common, xfstt, icewm (ambiente gráfico/gerenciador de janelas), pcmanfm (gerenciador de arquivos leve).
3 - Não instale o Xorg. Vamos utilizar o Xvesa, driver vesa do Kdrive, que é um servidor X otimizado para um pequeno consumo de memória. Aqui você pode fazer o download do pacote .deb. O pacotre xvesa deve ser instalado por último.

Depois de tudo instalado é hora de configurar.

No diretório home do(s) usuário(s) crie o arquivo .xserverrc com o conteúdo abaixo:

exec /usr/bin/X11/Xvesa -mouse /dev/input/mice,5 -screen 1024x760x32 -shadow -nolisten TCP -I &>/dev/null

Após criar o arquivo, dê um chmod +x .xserverrc par torná-lo executável. Caso queira pode modificar a resolução da tela manipulando os valores de screen. Antes de configurar você porde executar o comando Xvesa -listmodes para listar os modos suportados e escolher o mais aprorioado para você.

Ainda no diretório home do(s) usuário(s) crie o arquivo .xinitrc contendo chamdas para os aplicativos que serão iniciados após o X.
Por exemplo:

#! /bin/bash
icewmbg & #para ao papel de parede
wbar & # dock leve
icewm

Observe que tudos os aplicativos que vem antes do gerenciador de janelas devem ser iniciados com o & ao final do comando. Apenas o gerenciador de janelas não deve ter o & ao final do comando.

Para facilitar a sua vida instale o mingetty (aptitude install mingetty) e configure o /etc/inittab para usar o mingetty no tty 1 (terminal virtual 1) com o parâmetro de autologin . Aproveite e comente as linhas de 3 a 6, deixando apenas mais um terminal virtual caso seja necessário.
A seção de configuração dos terminais virtuais do inittab vai ficar assim:

1:2345:respawn:/sbin/mingetty --autologin nome-do-usuario tty1
2:2345:off:/sbin/mingetty tty2
#3:2345:off:/sbin/mingetty tty3
#4:2345:off:/sbin/mingetty tty4
#5:2345:off:/sbin/mingetty tty5
#6:2345:off:/sbin/mingetty tty6

Edite também seu .bashrc e adicione a linha startx nele.
Depois de tudo configurado reinicie o sistema e aproveite para baixar algum tema do IceWM que lhe seja agradável.

Divirta-se

Aproveitando os comentários, resolvi editar o post colocando algumas informações a mais.

Rodrigo Borges: vou olhar na máquina virtual quanto consumiu de espaço no HD. Na minha máquian de uso não posso usar o Xvesa porque preciso da aceleração gráfica da minha Nvidia p jogar Urban terror. Mas te adianto que o HD virtual tem 3GB de tamnaho.

Rafael Gimenes: Opção de navegador leve: use o epiphany, instale via aptitude install epiphany-browser. Consome menos memória que o Firefox ou o Opera.

Zendrael: 1 - a idéia é justamente economizar RAM, por isso não usei nenhum gerenciador de login. Caso você realmente queira utilizar um gerenciador de login gráfico infelizmente não sei como fazer... Vou testar na máquina virtual e ver no que dá...
2 - Sem maiores detalhes sobre a mensagem de erro na inicialização do Xvesa só posso especular. Veja se o drive está instalado em no lugar correto (/usr/bin/Xvesa).
3 - A resolução é dada pelo arquivo .xserverrc. Lá você especifica como quer a resolução usando o parâmetro screen. Antes disso, execute Xvesa -listmode. Para maiores informações olhe aqui (http://www.xfree86.org/current/Xvesa.1.html)

Corrigindo: certifiquem-se de que o xinit está instalado caso contrário o script startx não funcionará.

07/05/2008: Link para outra abordagem possível
http://gamlingen.blogspot.com/2009/03/personal-how-to-for-tiny-debian-lenny.html