Linux Boot Logo
From ArmadeusWiki
Revision as of 10:28, 21 June 2018 by JulienB (Talk | contribs) (→Create an image to suitable format (C include file))
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, 480x272 or 800x480), 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 (if pnmnoraw is not available on your distribution (ex: LUbuntu 17.10), try with pnmtoplainpnm):
$ 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 linux-menuconfig
Device Drivers ---> Graphics support ---> [*] Bootup logo ---> [*] 224-color Armadeus Linux logo
- Then recompile your kernel:
$ make linux
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:
- on recent kernels (3.8+), follow tips here
- otherwise:
- 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