segunda-feira, março 06, 2006

Boot Splash com Slackware - Por Bruno R. da Silva

Esse texto escrito por Bruno R. da Silva mostra como usar o Bootsplash no Slackware.
Bootsplash no Slackware

Usando Bootsplash no Slackware por Blood_Brother

1.0 Pré-requisitos
1.1 Aplicando o patch ao kernel
1.2 Compilando o splash
1.3 Criando o /etc/bootsplash
1.4 Criando o /boot/initrd com a bootsplash
1.5 Editando o /etc/lilo.conf
1.6 Criando o /etc/rc.d/rc.bootsplash
1.7 Editando alguns arquivos no /etc/rc.d/
1.8 Últimos ajustes
2.0 Contatos e dúvidas
2.1 Créditos

3.0 Dados do autor

1.0 Pré-requisitos

A primeira ação a ser feita é o download do patch referente à sua versão de kernel, o mesmo pode ser encontrado em http://www.plumlocosoft.com/kernel/patches/2.4/ Somente precisa ser baixado o patch com bootsplash ou bs no nome, que pode ser encontrado em subpastas split ou components. (Ao entrar no link você perceberá do que estou falando)

Após a obtenção do patch é necessário o download de um theme (o qual vai ser sua bootsplash), que pode ser obtido em http://www.bootsplash.org (recomendo que use o theme Default Linux, que é o que foi testado neste artigo).

Faz-se necessário também o pacote de fontes a seguir:
ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2 Este pacote possui os fontes do utilitário splash, que será usado mais adiante.

Um outro pré-requisito muito importante é saber compilar o kernel. (Sem este pré-requisito não continue)

1.1 Aplicando o patch ao kernel

O patch pode ser aplicado facilmente da seguinte maneira:

~# bunzip2 arquivo-do-patch.bz2
~# cd /usr/src/linux (ou onde estiver o fonte do seu kernel)
~# patch -p1 < /onde-está-seu-patch/arquivo-do-patch
Se você receber alguma mensagem de erro o patch é incompatível com sua versão de kernel, então baixe a versão certa.

Na config do seu kernel assegure-se de ter marcado a opção "Console drivers -> Frame-Buffer support -> VESA VGA graphics console" (ou outro framebuffer apropriado), e a opção "Use splash screen instead of boot logo".

Feito isto, compile seu kernel e passe para o passo seguinte

. 1.2 Compilando o splash

Basta descompactar o bootsplash-3.0.7.tar.bz2, entrar no diretorio criado com o nome de bootsplash-3.0.7, executar os 2 passos seguintes:

~# make splash
~# cp splash /sbin

1.3 Criando o /etc/bootsplash

Esta parte é importante, pois é a pasta onde serão armazenados seus themes. Então, crie a pasta /etc/bootsplash e dentro dela crie outra chamada themes. Dentro então de /etc/bootsplash/themes descompacte o theme que você obteve no passo 1.0.

1.4 Criando o /boot/initrd com a bootsplash

Este passo é bem simples, basta executar o comando: splash -s -f /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg > /boot/initrd

Repare que usei /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg porque é referente ao theme Default Linux que foi usado neste artigo, se você baixou outro theme adeque o caminho ao mesmo.

1.5 Editando o /etc/lilo.conf

Existem 2 linhas fundamentais para o funcionamento correto do bootsplash, são as que seguem:

initrd = /boot/initrd
append = "splash=silent"

As linhas podem ser colocadas logo abaixo desta:

root = /dev/hda1

Ficando então seu lilo.conf mais ou menos desta maneira:

image = /boot/vmlinuz
root = /dev/hda1
initrd = /boot/initrd
label = Linux
read-only

1.6 Criando o /etc/rc.d/rc.bootsplash

O /etc/rc.d/rc.bootsplash deve ser da seguinte maneira (sem as linhas que começam com --):

-- INICIO DO ARQUIVO -- #! /bin/sh
#
function progressbar()
{
if [ $# != 1 ]
then
echo "Usage: progressbar {progress}"
exit 1
fi
echo "show $(( 65534 * $1 / 100 ))" >
/proc/splash
}
-- FIM DO ARQUIVO --

Ps.: não se esqueça que o /etc/rc.d/rc.bootsplash precisa ser executável, para isso: chmod +x /etc/rc.d/rc.bootsplash

1.7 Editando alguns arquivos no /etc/rc.d/

Dois arquivos importantes serão editados para que controlem a barra que indica o carregamento do sistema no bootsplash, são eles: rc.M e rc.S

No início dos respectivos arquivos você precisa inserir esta linha: . /etc/rc.d/rc.bootsplash (a linha precisa estar logo abaixo do #! /bin/sh)

Após feito isso é você quem vai decidir a porcentagem em que o sistema está carregado em tal ponto, você deve então chamar a função progressbar seguida de um número que vai de 0 (zero) a 100 (cem).

Uma nota importante é que o rc.S é iniciado primeiro na hora do boot, então é interessante que logo após a primeira função que ele executar você já coloque progressbar 10 (posicionar a barra de carregamento do boot splash em 10%), e por ai vai. É interessante também que ao final do rc.S termine em mais ou menos 50% e a partir do início do rc.M você coloque progressbar 60, e ao final progressbar 100. Segue um exemplo para que você possa entender melhor:

#!/bin/sh
# rc.S exemplo
. /etc/rc.d/rc.bootsplash
echo "Progress bar em 10%"
progressbar 10
echo "Progress bar em 20%"
progressbar 20
echo "Progress bar em 35%"
progressbar 35
echo "Progress bar em 50%"
progressbar 50
# Fim do rc.S

#!/bin/sh
# rc.M exemplo
. /etc/rc.d/rc.bootsplash

echo "Progress bar em 60%"
progressbar 60
echo "Progress bar em 70%"
progressbar 70
echo "Progress bar em 85%"
progressbar 85
echo "Progress bar em 100%"
progressbar 100
# Fim do rc.M

Penso que assim fica melhor entendido.

1.8 Últimos ajustes

Feito todos os passos anteriores agora só falta você copiar a sua imagem do kernel com o patch aplicado para /boot/vmlinuz ou criar um link para ele. Executar: lilo (para que o lilo seja reinstalado). E finalmente! Reiniciar a máquina e rezar pra que tudo tenha funcionado, hehehe, brincadeira, se você seguiu os passos certinho tudo deve funcionar.

2.0 Contatos e dúvidas

Se alguém quiser manter contato ou tirar alguma dúvida (pequena!) basta me enviar um e-mail.

Ps.: Se tiver algum erro no texto também ficaria grato que me enviassem um e-mail relatando-o, para que eu possa corrigir.

2.1 Créditos

Gostaria de agradecer àqueles que acreditam em mim, e ao pessoal do #LinuxHelp da rede VirtuaLife que sempre dão uma força!

Slackware r0x!

3.0 Dados do autor

Nome: Bruno R. da Silva
Nickname: Blood_Brother ou Blutsbruder
Nascido em: 14/04/1985
Cidade: Florianópolis
Site pessoal: http://www.bloodcorp.tk
E-Mail:
Ocupação: Estudante de Ciências da Computação na Universidade Federal de Santa Catarina (UFSC)
Experiencia Profissional: Administração de redes Windows e Linux, implementação de proxys e serviços de ftp, http, sshd e vnc.

Nenhum comentário: