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:
Postar um comentário