LILO com Imagem no Boot
Piter Punk
O LILO possui diversos recursos (muitos deles pouco conhecidos) e, um
deles, é a capacidade de se colocar uma imagem bitmap no boot com menus,
contagem regressiva, etc...
1. Introdução
Neste artigo vamos deixar o boot do Linux um pouco mais simpático,
utilizando apenas ferramentas disponíveis na própria distro, sem patches
e sem downloads estranhos. Escrevi este artigo utilizando o Slackware 8.1,
se você estiver utilizando algo diferente, talvez tenha que adaptar algumas
coisas.
2. O boot loader correto
Se dentro do seu /boot houver um arquivo boot.b você deve trocar
o boot loader. Se não houver esse arquivo, pode ignorar essa seção
e ir para a seção 3.
Uma das primeiras coisas a se fazer é escolher um boot loader
que suporte mostrar imagens. O pacote do lilo já disponibiliza três
deles (um para texto simples, um para menus e um terceiro com suporte a
imagens), e está padronizado para utilizar o boot-menu.b, mudar isso
é muito fácil:
# rm /boot/boot.b
# ln -s /boot/boot-bmp.b /boot/boot.b
A primeira linha apaga o link simbólico (que indicava o boot-menu.b) e
a segunda cria um novo link, utilizando o boot-bmp.b.
3. Escolhendo uma imagem
A imagem para ser colocada na tela, deve ter 640 pontos na horizontal,
480 na vertical e no máximo 16 cores (4 bits). Você pode compactar a
imagem utilizando RLE (vale a pena). O próprio pacote do lilo disponibiliza
algumas imagens, e você pode também criar a sua própria com o GIMP. Você
pode ver as imagens em: /usr/doc/lilo-22.2/sample.
Se você quiser desenhar a sua própria imagem, esteja atento no tamanho e
no número de cores. Tente fazer seu desenho com o menor número de cores
possível, para não ser surpreendido durante a conversão. Depois de editar
o seu desenho, clique com o botão direito na imagem e selecione:
Image->Mode->Indexed. Selecione o número de cores para 16 e clique no OK.
Pronto. Agora você deve salvar a sua imagem como BMP (use o RLE, a imagem
fica bem menor), com isso você já terá uma imagem pronta. Antes de fechar o
GIMP, entre em: Dialog -> Indexed Palette... irá aparecer uma lista com
vários quadradinhos coloridos, estas são as cores que sua imagem usa.
Elas são numeradas de 0 a 15 (se houverem menos, isso quer dizer que
você pode adicionar algumas cores a mais, até o máximo de 16 cores). Anote
em um papel o número das cores que você gostaria de usar nos textos da sua
tela de entrada. Por exemplo, você quer escrever em branco em um fundo preto,
com um sombreado cinza, procure na paleta de cores o preto, o cinza e o branco
e anote o número de cada uma delas em um papel.
Por último, copie a imagem que você criou para o diretório /boot. Ela não
precisa ficar nesse diretório, mas melhora bastante a organização colocar o
que for relacionado ao boot nele.
4. Configurando o lilo.conf
Esta é uma das partes mais elaboradas, você terá de colocar parâmetros
para que o lilo saiba qual imagem deve carregar, quais as cores dos textos
que irão aparecer e onde os textos irão aparecer...
Para isso, abra o lilo.conf e comece comentando (colocando um # na frente
da linha) uma linha como esta:
message = /boot/boot_message.txt
Logo abaixo dela, você vai incluir os seus novos parâmetros para incluir
a imagem e toda apresentação. Os parâmetros estão listados logo abaixo, com
uma breve explicação do que eles fazem e do que deve ser feito com eles.
bitmap = imagem
Este é bem simples, onde está imagem, substitua pela figura que você
fez/baixou/escolheu, no meu caso é /boot/slack.bmp (é, você tem que colocar
o caminho inteiro, se a figura estivesse dentro do /usr/local teria que colocar
/usr/local/slack.bmp)
bmp-colors = fg,bg,sh,h-fg,h-bg,h-sh
Aqui você escolhe as cores dos textos nos menus. Você anotou os números
das cores que te interessavem naquela paleta, não anotou? Se anotou, agora
é a hora de usar:
- fg - Cor de frente (das letras própriamente ditas)
- bg - Cor de fundo (se você colocar nada, fica transparente)
- sh - Cor da "sombra" das letras (pode deixar sem)
- h-fg - Cor de frente do texto selecionado
- h-bg - Cor de fundo do texto selecionado
- h-sh - Cor da sombra do texto selecionado
Algumas dessas opções podem ser omitidas, por exemplo se você colocar:
bmp-colors = 9,,,0,9
Você está escolhendo 9 como cor de frente, transparente como cor de fundo, sem sombra, 0 como cor de frente do texto selecionado, 9 como fundo do texto selecionado e o texto selecionado também está sem sombra.
bmp-table = x,y,colunas,linhas,espaço
Aqui você determina a posição em que vão começar a aparecer os itens dos
menus e o formato deles. Os itens do menu, aparecem ordenados verticalmente,
em colunas e quantidade de colunas pode variar de 1 a 4.
A tela é subdividida em 80 posições na horizontal
e 30 na vertical. Você também pode utilizar diretamente o endereçamento em
"pixels", só que para isso precisa colocar um p depois do número (por
exemplo: 320p, 24p, etc...)
- x - Coordenada horizontal da primeira coluna.
- y - Coordenada da parte superior dos menus.
- colunas - Quantidade de colunas (1 a 4)
- linhas - Quantidade de linhas em cada coluna.
- espaço - Espaçamento entre as colunas. Este número é
contado a partir do início da coluna anterior. Cada coluna tem um mínimo de
17 espaços, se você quiser deixar um espaço de 2 caracteres entre uma coluna
e outra, este valor deve ser de 19 (os 17 da coluna anterior, mais 2 espaços).
Se você possuir apenas uma coluna, pode omitir o último valor (que seria o
espaço entre as colunas). Muito cuidado com as posições, uma boa apresentação
depende muito da localização dos menus.
bmp-timer = x,y,fg,bg,sh
Este parâmetro é optativo, ele é responsável por um cronômetro que conta o
tempo restante para que o sistema inicie o boot automaticamente. Ele é bem
semelhante aos anteriores
- x - Coordenada horizontal do relógio.
- y - Coordenada da parte superior do relógio.
- fg - Cor de frente dos números do relógio
- bg - Cor de fundo (se você colocar nada, fica transparente)
- sh - Cor da "sombra" dos números (pode deixar sem)
As posições x e y obedecem os mesmos critérios que no
bmp-table e as cores os mesmos que vimos no bmp-colors.
5. Botando para funcionar
Agora, digite:
# lilo
Reboote a sua máquina e espere aparecer a maravilhosa tela de abertura.
Existem exemplos prontos de lilo.conf usando imagens na documentação do LILO
e no fim deste artigo incluí o que estou usando em uma de minhas máquinas,
além do desenho que deixei disponível aqui.
Qualquer dúvida, sugestão ou crítica, mande e-mails para:
piterpk@terra.com.br
Apêndice
lilo.conf
Deixei este lilo.conf o mais inalterado possivel, assim é fácil
de ver o que foi alterado.
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
linear
boot = /dev/hda
#message = /boot/boot_message.txt
# Figura BMP 640x480x4
bitmap = /boot/slack.bmp
# Cores fg,bg,sh,h-fg,h-bg,h-sh
bmp-colors = 9,,,0,9
# Localização x,y,colunas,linhas,espaço
bmp-table = 61,15,1,3
# Cronômetro x,y,fg,bg,sh
bmp-timer = 73,29,0,9
prompt
timeout = 1200
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
# VESA framebuffer console @ 1280x1024x64k
vga = 794
# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda3
label = Linux
read-only
# Linux bootable partition config ends
Figura
Este é um screenshot de como está o boot do computador com as
configurações acima. A Sulamita tirou o shot para mim utilizando o
vmWare. Você pode baixar a imagem BMP
daqui e utilizá-la com esta ou
com outras configurações.
|