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

7 comentários:

Rodrigo Borges disse...
Este comentário foi removido pelo autor.
Rodrigo Borges disse...

Legal. Fiz igual mas com xorg e lxde num pendrive.

Pode dizer o uso do disco total?

InFog (Evaldo Junior) disse...

Ficou muito bom o tutorial, só fgaltou colocar umas screenshots do resultado final =)

RafaelGimenes disse...

Muito bom.
Trabalho com Linux embarcado e só que uso java por isso preciso do xorg por causa de fontes mas gostei da alternativa. porém precisamos de softwares mais leve um firefox da vida quebra nossa memoria.
faz um video do boot pra gente ver:)
uma boa é remover serviços inuteis.

Zendrael disse...

Olá! Acompenhei este dica no VivaOLinux e gostaria que, se possível, respondesse algumas dúvidas:
1 : como configurar um GDM, XDM ou SLIM para usar o Xvesa?
2 : quando uso o "autologin", ele não incia o Xvesa, retorna erro 2 dizendo que o servidor X não pode ser iniciado. O que pode ser?
3 : em placa de vídeo Intel 945GM ele não aceita a resolução 1280x800 - tem como forçar isso?

Valeu!

Vinícius disse...

Zendrael, para forçar a aplicação da resolução 1280x800, instale o pacote 915resolution e rode ele no prompt, ele irá forçar a aplicação desta resolução. Este software foi feito justamente para isso.
Abraço!

Zendrael disse...

Mais uma pergunta: Como faço para habilitar o composite nele? Quero utilizar o Xcompmgr para colocar alguns efeitos ( mesmo que comprometa o uso de memória RAM ).

Valeu!amut