Exibindo uma imagem na inicialização do U-Boot
- por Sergio Prado
Mesmo que você consiga iniciar um dispositivo com Linux embarcado em alguns segundos, o usuário normalmente espera que algo aconteça assim que o dispositivo é ligado.
Para resolver este problema, alguns bootloaders normalmente permitem com que você exiba uma imagem de logo (splash screen) no começo da sua inicialização.
Vamos aprender como fazer isso no U-Boot?
AMBIENTE DE TESTES
Para testar, utilizei o U-Boot 2014.07 e a Wandboard Quad.
De qualquer forma, os procedimentos descritos neste artigo devem funcionar em qualquer outra placa, desde que o U-Boot possua os drivers necessários da saída de vídeo ou display da sua placa.
O host é um Ubuntu 12.04 64 bits. O único pré-requisito é a ferramenta de manipulação de imagens netpbm:
$ sudo apt-get install netpbm |
PREPARANDO A IMAGEM
O primeiro passo é preparar a imagem que será exibida no display ou saída de vídeo. Crie uma imagem no formato JPEG com resolução igual ou inferior à resolução do seu display. Se a resolução da imagem for menor que o display, ela será exibida de forma centralizada.
Depois converta a imagem para o formato BMP esperado pelo U-Boot, usando o comando abaixo. Substitua logo.jpg pelo nome do arquivo da imagem JPEG que você criou. Substitua também boardname pelo nome da sua placa no U-Boot.
$ jpegtopnm logo.jpg | ppmquant 256 | ppmtobmp -bpp 8 >boardname.bmp |
Agora copie este arquivo para o diretório tools/logos/ do U-Boot.
Durante a compilação do U-Boot, a imagem será convertida em dois arquivos de include (include/bmp_logo.h e include/bmp_logo_data.h), contendo alguns vetores que representam a sua imagem. Estes arquivos serão compilados e incluídos na imagem final do U-Boot.
HABILITANDO A EXIBIÇÃO DA IMAGEM
Para habilitar a exibição da imagem de logo, abra o arquivo de configuração da sua placa no U-Boot em include/configs/ e habilite as opções abaixo:
#define CONFIG_VIDEO_LOGO #define CONFIG_VIDEO_BMP_LOGO #define CONFIG_SPLASH_SCREEN_ALIGN |
Agora é só compilar o U-Boot e testar.
Have fun!
Sergio Prado
Sem Comentários
Nenhum comentário até agora... é a sua chance de ser o primeiro a comentar!