This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X: Replacing the TI splash screen



I'm trying to find some information on replacing the default (TI) splash screen/load bar with my own image. To be clear, I know how to update init scripts in order to prevent the current splash screen from loading, what I do not know is how I should call up my image in the new start up script.

I found this link: http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Boot_Time_Reduction#Optimizing_the_Root_File_System

Which is to a lab explaining how to remove the TI boot splash screen and replace it with a "startup.rawr16" application, which no doubt is some other image. That's good, but what I want to understand (and what is not covered by the lab) is if I want to have my own custom image (say bmp, but it could be anything) up on the display.

How do I accomplish this?

Is there some guide somewhere that tells me how to compile "startup.rawr16"? I could probably just use that to step my way through getting my image to be displayed.

  • I found some additional information the in LCD driver page: http://processors.wiki.ti.com/index.php/AM335x_LCD_Controller_Driver's_Guide

    Looks like my mode is 800x480-62:

    root@am335x-evm:/home# fbset

    mode "800x480-62"
    # D: 30.000 MHz, H: 32.433 kHz, V: 61.895 Hz
    geometry 800 480 800 960 32
    timings 33333 39 39 29 13 47 2
    rgba 8/16,8/8,8/0,8/24
    endmode

    I tried setting a striped 800x480 to the display just to see what it would do:

    $cat my_logo.bmp > /dev/fb0

    and it appeared on the display... but it show up 4 times overlapping itself slightly (shifted so I can see 4 images "stamped" across the display)

  • Hi Mike,

    The "psplash" user space application is called at boot time, showing the TI logo splash screen. In order to change the displayed image, you need to first download the "psplash" package source code from here. The next steps are as follows:

    1. Use the ./make-image-header.sh script included in the package to create a new header file with your new image: (you need to install libgdk-pixbuf2.0-dev library first)
    ./make-image-header.sh <path_to_image_file> <NAME>

    Note: The <NAME> argument can be whatever you want it to be, but for the fastest approach you should use "POKY" as this is what is used by default in the psplash.c file. Unfortunately this isn't configurable and you have to edit the file manually if you wish to use different name.

    - The above command will generate the header file with the image contents (<your_logo_filename>-img.h).
    - Open the psplash.c file and replace the file name in the following line at the top of the file:
    #include "psplash-poky-img.h"
    with
    #include "<your_logo_filename>-img.h"

    2.Export the needed variables and then configure and build psplash:

    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm
    export PATH=$PATH:$HOME/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin
    ./autogen.sh --host=arm-linux CC=arm-linux-gnueabihf-gcc
    make

    3. Replace the /usr/bin/psplash file in your root file system with the generated psplash file.

    Best regards,
    Miroslav

  • Miroslav, Thanks so much! Exactly what I was looking for!

    Looking at the code, I would think if I want to get rid of the progress bar altogether I could eliminate the:

    psplash_draw_progress()

    code and that would then just display the picture. Is that correct? What if I just want to change the color of the status bar?

    I see the psplash-bar-img.h is in there so I have the byte code for the file, but could the actual image itself be included? (I assume I need to change the image first, then I can turn it into byte codes then the color will be new)

  • Mike, if you wish to eliminate the progress bar, you will need to remove both the function that draws the progress bar border ( /* Draw progress bar border */ psplash_fb_draw_image(...);) and the function that draws the progress itself (psplash_draw_progress (fb, 0);) from the main() function.

    I believe the colors can be set from the psplash-colors.h file:

    /* This is the color of the progress bar indicator */
    #define PSPLASH_BAR_COLOR 0x6d,0x6d,0x70
    
    /* This is the color of the progress bar background */
    #define PSPLASH_BAR_BACKGROUND_COLOR 0xec,0xec,0xe1

    Judging by the comments inside the main() function, the byte code inside psplash-bar-img.h is just the progress bar border.

    These are just assumptions which I haven't verified.

    Best regards,
    Miroslav

  • This is a great tutorial, but I struggle at the last steps. Here's what I did:

    I installed on my Xubuntu 14.04

     sudo apt-get install libgdk-pixbuf2.0-dev
     
    and downloaded and unzipped the .tar.gz from here:

    http://git.yoctoproject.org/cgit/cgit.cgi/psplash/commit/?id=88343ad23c90fa1dd8d79ac0d784a691aa0c6d2b

    then:

    ./make-image-header.sh /home/images/MyLogo.png POKY

    (I didn't replace anything in the psplash.c because I didn't rename it, I stayed with POKY as recommended)

    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm

    (I had to change the path here, cause it's not in $HOME)
    export PATH=$PATH:$/home/mypath.../ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin

    Now here's my problem: when I try this ./autogen.sh --host=arm-linux CC=arm-linux-gnueabihf-gcc, it says ./autogen.sh: No such file or directory, which makes sense, since in my unzipped psplash folder there is no autogen.sh.

    Can someone please help me with this? :-)

  • The content of autogen.sh file is :

    #!/bin/sh

    autoreconf -v -i
    ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc

    BR,

    vefone

  • Hi Nina,

       you need to use this command "export PATH=$PATH:/home/mypath.../ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin"

    then create "autogen.sh  file in psplash directory and add  below code

    #!/bin/sh

    autoreconf -v -i
    ./configure --host=arm-linux CC=arm-linux-gnueabihf-gcc



    it will work.

    thank you

  • Hi Miroslav,

      i did all the steps but after restarting it was not shown at boot time.


    i am using "ti-processor-sdk-linux-am335x-evm-03.03.00.04" sdk please suggest me for any other modification.

    Thank you.

    Khagesh

  • Hi sridhar muniyandi

    Even I am using the same SDK. Please help me with the steps If you were successful in generating the psplash image.

    Thanks and Regards,

    Ravikumar