Linux Boot Logo

From ArmadeusWiki
Revision as of 11:26, 19 March 2010 by JulienB (Talk | contribs) (Deactivate remaining cursor)

Jump to: navigation, search

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:

Default Boot.png

Create an image to suitable format (C include file)

  1. create a new image fitting the size of your LCD (320x240 or 480x272), with The Gimp (for example).
  2. save it in PPM RAW file format, let's say my_boot_logo.ppm
  3. install Netpbm package:
    $ sudo apt-get install netpbm 
  4. reduce the number of colors in your image to 224:
    $ ppmquant 224 my_boot_logo.ppm > my_boot_logo_224.ppm
  5. convert it to PPM ASCII format:
    $ pnmnoraw my_boot_logo_224.ppm > my_boot_logo_ascii_224.ppm
  6. get the armadeus envt variables:
    $ make shell_env && source armadeus_env.sh
  7. 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
  8. 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

  1. 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:
  2. Edit $ARMADEUS_LINUX_DIR/drivers/video/logo/Makefile
  3. Put it your logo file name at line 18 (replace current one):
     obj-$(CONFIG_LOGO_ARMADEUS_CLUT224)     += logo_custom_clut224.o
  4. Edit $ARMADEUS_LINUX_DIR/drivers/video/logo/logo.c
  5. Add it your logo C struct name at line 39:
    extern const struct linux_logo logo_custom_clut224;
    
  6. 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:

Custom Boot Logo with login.png

Remove Login from framebuffer terminal

  1. On your target, edit /etc/inittab
  2. Comment line 28:
    #tty1::respawn:/sbin/getty 38400 tty1
    
  3. 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:

  1. Edit source file $ARMADEUS_LINUX_KERNEL/drivers/char/vt.c
  2. Near line 1620, in function reset_terminal(), change
    vc->vc_deccm		= 1;
    
    with
    vc->vc_deccm		= 0;
    
  3. 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

Links