domingo, 24 de fevereiro de 2008

Slackware - Uma nova tela de Boot - sem complicação


Introdução - apresentação, requerimentos e objetivo














Neste artigo descreverei como deixar seu Slackware com a
inicialização totalmente gráfica, com imagens de fundo e barra de
progresso durante o carregamento, no estilo do SuSE, RedHat,
Mandrake e outros.



Bom, é verdade há muitos artigos descrevendo como fazer isso, mas nenhum
é tão detalhado e específico para o kernel 2.6.4.




AVISO: Todos os procedimentos requerem permissão de root (super usuário)
para serem executados, tudo foi testado no Slackware 9.1 com kernel 2.6.4,
provavelmente os procedimentos abaixo não irão funcionar em outra distro.
Não nos responsabilizamos por qualquer perda ou dano que o uso incorreto dos
procedimentos abaixo venham a causar!



1 Objetivo

1.1 Instalar e configurar o LILO com suporte a fundo animado.




1.2 Instalar e configurar o BOOTSPLASH para ter seu boot gráfico.









OBS: Você pode baixar um tutorial mais detalhado e com as imagens em:

http://www.linuxpaidegua.com.br/bootsplash/



2 Requerimentos:

2.1 Slackware 9.1 ou maior

2.2 Fontes do kernel 2.6.4 ou maior

2.3 Usuário com permissão de root


2.4 Placa gráfica com suporte a VESA Framebuffer (fbvesa)






====================================================================================

Instalando o LILO com suporte a animações










3.1 Baixe o lilo modificado:

Home: http://members.optusnet.com.au/rkelsen/lilo.html




Arquivos:

http://members.optusnet.com.au/rkelsen/lilo-22.3.2.51-i586-1.tgz

http://members.optusnet.com.au/rkelsen/gfxboot-1.4-i686-1.tgz



OBS: O gfxboot é usado para criar temas personalizados.



3.2 Instale usando os comandos abaixo:



# installpkg lilo-22.3.2.51-i586-1.tgz

# installpkg gfxboot-1.4-i686-1.tgz





3.3 Baixe um tema:

Home: http://www.gamers.org/%7Equinet/



Arquivos:

http://www.gamers.org/%7Equinet/lilo/xray-green.boot.gz

http://www.gamers.org/%7Equinet/lilo/xray-blue.boot.gz



3.4 Preparando o LILO:



# gunzip xray-blue.boot.gz


# cp xray-blue.boot /boot/

# ln -s xray-blue.boot message




3.5 Configurando o LILO:



Edite o arquivo /etc/lilo.conf e acrescente a linha:



message=/boot/message



Exemplo:





   boot=/dev/hda

   message=/boot/message

   #compact        # faster, but won't work on all systems.

   prompt

   timeout=150



Rode o comando lilo para atualizar seu boot:



# lilo



Pronto, seu lilo agora é animado!






====================================================================================
4.1 A instalação do bootsplash é um pouco mais complicada e requer a
recompilação do kernel, mas como este tutorial é para Slackware 9.1 com kernel
2.6.4, você provavelmente já fez isso.



4.2 Baixando o patch no kernel:

ftp://ftp.suse.com/pub/people/stepan/bootsplash/kernel/
ou http://dediziert.org/~tyrant/linux/bootsplash/



Utilizei o patch: bootsplash-3.1.4-2.6.3.diff

ftp://ftp.suse.com/pub/people/.../bootsplash-3.1.4-2.6.3.diff




OBS: Em http://dediziert.org/~tyrant/linux/bootsplash/
há patch para kernels mais recentes como o 2.6.5, mas estou mostrando a solução para o kernel atual 2.6.4 e usei o .diff da SuSE.



OBS: Baixe o patch mais próximo ao seu kernel.

=====================================================================================


Configurando o KERNEL

























4.3 Aplicando o patch ao kernel

OBS: Supomos aqui que você já preparou os fontes do kernel,
baixou, descompactou e criou o link simbólico "linux -> linux-2.6.4/".




# cp bootsplash-3.1.4-2.6.3.diff /usr/src/linux

# cd /usr/src/linux

# patch -p1 < bootsplash-3.1.4-2.6.3.diff




4.4 Configurando o kernel, utilizaremos o "make xconfig"



4.4.1 Ative o suporte a RAM disk








4.4.2 Ative o suporte a Framebuffer VESA no kernel e coloque o Framebuffer VGA
da sua placa como módulos, no meu caso minha placa é um NVidia G-Force FX, isto
serve para garantir que o fb0 seja o VESA, o qual tem suporte para 1024x768x16bit.







4.4.3 Ative o VGA text console e o Framebuffer Console support, com as opções exibidas
abaixo:








4.4.4 Desative o bootup logo:







4.4.5 Ative o BOOTSPLASH (esta opção só aparece após o patch ser aplicado):







Pronto seu kernel está configurado!
OBS: Não se esqueça das outras opções para o funcionamento do kernel, lembre-se
que só mostramos como configurar para o bootsplash.



4.5 Compilado o kernel



4.5.1 Antes de tudo edite o arquivo Makefile



# vi Makefile




na linha EXTRAVERSION = , modifique para EXTRAVERSION = -bs
com os espaços entre o = e EXTRAVERSION e o = e bs....



4.5.2 Agora compile e instale o kernel:



# make bzImage

# make

# make modules_install

# cp -p System.map /boot/System.map-2.6.4-bs

# cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.6.4-bs





====================================================================================

Executáveis, RAM Disk, LILO









4.6.1 Baixe o bootsplash mais recente: http://www.bootsplash.org



bootsplash-3.1.tar.bz2


ftp://ftp.suse.com/pub/people/stepan/.../bootsplash-3.1.tar.bz2



4.6.2 Descompacte e instale os programas:



# tar -xvjf bootsplash-3.1.tar.bz2

# cd bootsplash-3.1/Utilities

# make

# cp -p splash /sbin/

# cp -p fbmngplay /sbin/

# cp -p fbresolution /sbin/


# cp -p fbtruetype /sbin/

# cp -p splashpbm /sbin/




4.6.3 Crie o diretório /etc/bootsplash:



# mkdir /etc/bootsplash



Crie também a pasta de temas:



# mkdir /etc/bootsplash/themes




4.6.4 Baixe e instale um tema, no meu caso optei pelo tema padrão "Linux".

Home: http://www.bootsplash.org/themes.html

Mais temas: http://dediziert.org/~tyrant/linux/bootsplash/themes/



4.6.4.1 Tema de minha autoria, confira:

http://www.linuxpaidegua.com.br/bootsplash/Theme-ThinkLinux.tar.bz2



Baixe o arquivo: Theme-Linux.tar.bz2


ftp://ftp.suse.com/pub/people/stepan/bootsplash/themes/Theme-Linux.tar.bz2



Instale o tema:



# tar -xvjf Theme-Linux.tar.bz2

# cp -r Linux/ /etc/bootsplash/themes/




Crie um link simbólico para o diretório de seu tema:



# ln -s /etc/bootsplash/themes/Linux /etc/bootsplash/themes/current



4.6.5 Crie o arquivo initrd.splash:




# /sbin/splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg >> /boot/initrd.splash



4.7 Configurando o LILO:



Edite o arquivo lilo.conf.



OBS: Você pode modificar ou acrescentar outra configuração de boot. Aqui estaremos
acrescentando outra opção de boot, porém eu prefiro modificar a atual.



# vi /etc/lilo.conf




Acrescente as linhas abaixo:




image=/boot/vmlinuz-2.6.4-bs

        root=/dev/hda2

        label=Slackware-2.6

        initrd=/boot/initrd.splash

        read-only



Modifique a opção vga=ALGUM_NUMERO para:



vga=791



Modifique ou acrescente a linha "splash=verbose". Isso irá mostrar o texto com
a imagem de fundo do tema.



append="splash=silent"



Execute o comando lilo para atualizar seu setor de boot:



# lilo



=====================================================================================

Barra de progresso






















Com isso você terá a barra de progresso ativa durante a inicialização, reboot e desligamento.



4.8.1 Crie o arquivo /etc/rc.d/rc.bootsplash:



# vi /etc/rc.d/rc.bootsplash



e acrescente o seguinte conteúdo a ele:





#!/bin/sh

function progressbar(){

   if [ $# != 1 ]

   then

      echo "Use: progressbar {progresso}"

      exit 1

   fi


   echo "show $(( 65534 * $1 / 100 ))" > /proc/splash

}


Torne este arquivo executável:



# chmod 755 /etc/rc.d/rc.bootsplash



4.8.2 Edite os arquivos /etc/rc.d/rc.S e /etc/rc.d/rc.M para a inicialização.
Logo após a linha #!/bin/sh acrescente:





. /etc/rc.d/rc.bootsplash

# (pontoEspaço/etc/rc.d/rc.bootsplash)


Acrescente as marcações da barra de progresso ao decorrer do arquivo rc.S até
progress 50, procure distribuir pelo arquivo todo e sempre fora dos if/fi e inicie
com o progressbar 10 logo após a linha ". /etc/rc.d/rc.bootsplash".



Faça o mesmo no arquivo rc.M, mas começando em progressbar 60...




Exemplo de rc.S:




#!/bin/sh

. /etc/rc.d/rc.bootsplash

progressbar 10

PATH=/sbin:/usr/sbin:/bin:/usr/bin

if [ -r /dev/.devfsd ]; then


  if [ -x /sbin/devfsd ]; then

    /sbin/devfsd /dev

  fi

fi

progressbar 20

# enable swapping


4.8.3 Edite o arquivo /etc/rc.d/rc.6


O procedimento é o mesmo,, só que fiz uma barra de progresso
invertida e indo de progressbar 90 a progressbar 10.



Exemplo:




#! /bin/sh

. /etc/rc.d/rc.bootsplash

# Reativa o modo verbose, caso tenha apertado F2

/sbin/splash -s -u 0 /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg

progressbar 90




PATH=/sbin:/etc:/bin:/usr/bin

# If there are SystemV init scripts for this runlevel, run them.

if [ -x /etc/rc.d/rc.sysvinit ]; then

. /etc/rc.d/rc.sysvinit

fi

progressbar 80

# Set linefeed mode to avoid staircase effect.

stty onlcr



OBS: Você pode construir suas próprias telas de inicialização do BOOTSPLASH e de
animação do LILO, para isso leia a documentação dos mesmo, exige um conhecimento razoável
de GIMP e scripts.



====================================================================================


Animações e texto dinâmico





4.8.4 Sobre as animações e texto dinâmico:

4.8.4.1 As animações no BOOTSPLASH são ativadas pelos comando fbmngplay,
inserindo a linha após o comando ". /etc/rc.d/rc.bootsplash", em seu rc.S:




/sbin/fbmngplay -b -c 1 -x 487 -y 430 /etc/bootsplash/themes/current/animations/spot.mng &



e a linha, abaixo, ao final do arquivos rc.M:



killall fbmngplay



OBS: Pode-se fazer o mesmo com o arquivo rc.6, lembrando-se da linha "killall fbmngplay" antes
dos comandos de desmonte das partições.



4.8.4.2 O uso de texto dinâmico para ser exibido durante o boot, halt ou reset também é possível
com o comando fbtruetype.




=====================================================================================

Para versões atualizadas do tema ThinkLinux, outros Temas, patchs e mais:
http://www.linuxpaidegua.com.br/bootsplash/

Fontes:
Deixe seu console mais bonito com Bootsplash
http://www.slacklife.com.br/article.php?sid=631
http://www.gamers.org/%7Equinet/
http://www.kernel.org
http://www.bootsplash.org/
http://dediziert.org/~tyrant/linux/bootsplash/
http://www.neowin.net/forum/index.php?s=1...

FIM ... Bons estudos