Piter Punk's HomePage - Artigos
 
English version
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.


Links Principal Artigos Piter Punk Dicas Programas
 
Powered by Slackware Linux - Written in VIm (the best one!) Last Update: 01 Nov 2004