Linux Boot Logo
From ArmadeusWiki
On this page we will explain you how to change the Boot Logo/Screen of Linux.
By default the following screen is displayed on your LCD:
Contents
Create an image to suitable format (C include file)
- create a new image fitting the size of your LCD (320x240 or 480x272), with The Gimp (for example).
- save it in PPM RAW file format, let's say my_boot_logo.ppm
- install Netpbm package:
$ sudo apt-get install netpbm
- reduce the number of colors in your image to 224:
$ ppmquant 224 my_boot_logo.ppm > my_boot_logo_224.ppm
- convert it to PPM ASCII format:
$ pnmnoraw my_boot_logo_224.ppm > my_boot_logo_ascii_224.ppm
- get the armadeus envt variables:
$ make shell_env && source armadeus_env.sh
- copy the PPM to $ARMADEUS_LINUX_DIR/drivers/video/logo/ directory with a name ending with _clut224.ppm:
$ cp my_boot_logo_ascii_224.ppm $ARMADEUS_LINUX_DIR/drivers/video/logo/logo_custom_clut224.ppm
- Linux will automatically convert your .ppm to a .c file, after you have added it to the build system, using the $ARMADEUS_LINUX_DIR/scripts/pnmtologo script. This is the purpose of the next step.
Add your file to Linux build system
- If you have overwritten $ARMADEUS_LINUX_DIR/drivers/video/logo/logo_armadeus_clut224.ppm with your own logo at the previous stage, then you can jump to the next step; otherwise:
- Edit $ARMADEUS_LINUX_DIR/drivers/video/logo/Makefile
- Put it your logo file name at line 18 (replace current one):
obj-$(CONFIG_LOGO_ARMADEUS_CLUT224) += logo_custom_clut224.o
- Edit $ARMADEUS_LINUX_DIR/drivers/video/logo/logo.c
- Add it your logo C struct name at line 39:
extern const struct linux_logo logo_custom_clut224;
- Put it your logo C struct name at line 122 (replace current one):
#ifdef CONFIG_LOGO_ARMADEUS_CLUT224
/* Armadeus Linux logo */
logo = &logo_custom_clut224;
#endif
Recompile & install kernel
- Make sure that the "Armadeus Logo" option is selected in:
$ make linux26-menuconfig
Device Drivers ---> Graphics support ---> [*] Bootup logo ---> [*] 224-color Armadeus Linux logo
- Then recompile your kernel:
$ make linux26
and install it on your board.
- Restart your board and you should see your image:
Remove Login from framebuffer terminal
- On your target, edit /etc/inittab
- Comment line 28:
#tty1::respawn:/sbin/getty 38400 tty1
- save it and restart your system
Deactivate remaining cursor
It may be a remaining cursor at the left upper corner of the screen. Indeed virtual console cursor is activated by default in Linux. To deactivate it at boot stage, you will have to do:
- Edit source file $ARMADEUS_LINUX_KERNEL/drivers/char/vt.c
- Near line 1620, in function reset_terminal(), change with
vc->vc_deccm = 1;
vc->vc_deccm = 0;
- recompile and reflash your kernel
After this modification, at any moment, you can get your blinking cursor back with:
# echo -e '\033[?25h' > /dev/tty1 # echo 1 > /sys/class/graphics/fbcon/cursor_blink