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.

How to Customize Splash Screen - UBoot and Kernel

Other Parts Discussed in Thread: DM3730

Hello,


I am trying to customize the Splash Screen on DM3730. There are few issues and I wonder if anyone can help me on this.


I searched online but could not find anything usable to get the splash image changed

Here is what I did but to no avail.

Tried programs Bitmap2LCD, Graphic-converter, LCDAssistant

So I decided to write C# utility but I have some problems and was wondering if anyone could help.

The TouchScreen I have is 800x480 and I am using 18 bits.

I had a company Logo which is 32bit "Format32bppRgb", I converted that to 24bit "Format24bppRgb"

I then converted the 24bit image to byte array which is massively big 1152000 bytes + 54 Bytes for Header

I the used this array for display using omap3_fill_framebuffer

The image on TFT is all white and I am not sure what I have done wrong. Any help in this regard would be great.

Thanks

  • Hi Ali,

    Are you able to get default linux logo while booting ?

    [*] Bootup logo  --->

    [*]   Standard 224-color Linux logo

    linux/drivers/video/logo


    You have to convert your company image (jpg or png) to ppm image and rename to "logo_linux_clut224.ppm"

    pngtopnm company_logo.png | ppmquant -fs 223 | pnmtoplainpnm > logo_linux_clut224.ppm
  • Hi


    Yes, Im using VAR-SOM-OM37 and the default image is working.


    Regards

  • Hi Ali,

    Have you converted your image into PPM format and updated in logo folder of linux ?

  • Hi Titus,

    I am not sure whether I need that or not. I am using Variscite SOM and the default variscite splash screen is working. What I think I need to do after banging my head against the brick wall is have a .bmp file and then convert it to data array which will then be used by omap3_fill_framebuffer to display the splash logo in u-boot. Once done in u-boot I can then follow your step to do same in kernel or do something similar.


    I'll post something once I get u-boot working with splash screen.

  • Hi Titus,


    I thought I'll post an update on the issue I had and all your suggestion which were really helpful in terms of getting the problem fixed in u-boot. This is what I had to do.


    There is a limited section reserved for u-boot. The image I was using was of size 786000 + header bytes of the bmp image. This meant that when u-boot written it was overflowing.

    This is what I did then. I filled the frame buffer to be all white to start with and changed my image size from 480 x 800 to 165 x 800. This meant that byte array for frame buffer was of small size and would fit in the u-boot section. It was of size 264000 which is header subtracted.

    When i used this it was all working fine.


    I had to write a utility to convert .bmp file to byte array. here is the version attached. You can also do the same in python script which can be downloaded from here

    www.html-kit.com/dl/tips/tips_052098D_3_bin2hex.zip

    3515.SplashScreen.rar

  • Hi Ali,

    Thanks for your update and solution for the issue which help to others.

  • Hello Titus,


    The second problem I have is that I have I am not getting the default logo at kernel boot. in U-boot The logo boots fine but not in kernel. I have checked that all the config values are set correctly but nothing seems to get the default logo working.

    Below is in in defconfig file

    CONFIG_LOGO=y
    CONFIG_LOGO_LINUX_MONO=y
    CONFIG_LOGO_LINUX_VGA16=y
    CONFIG_LOGO_LINUX_CLUT224=y

    but in the actual file which configures the board Kernel/arch/arm/mach-omap2/board-xxx.c there is nothing to show that logo will be displayed. Which source code can I look at to implement this logo in kernel boot.

    Regards

  • Hi Ali,

    For linux kernel logo, I don't think we don't need to add any board file changes here.

    Please check out the below location to check that whether the .o created or not and also refer my previous replies.

  • Hi Titus,


    Thanks for that yes I have looked at the files and they all seem to be OK. In defconfig I did enable CONFIG_FRAMEBUFFER_CONSOLE=y

    It seems like it is working but the issue I have now is that the default image is really small and in top left hand corner. I was wondering if you could get me through this issue.

    At the startup on u-boot there is a period of about 3 or 4 sec where there is all white screen before the company logo appears. This initial period how can I reduce it next to nothing.

    when control has been passed from u-boot to kernel then the screen goes to something like garbage black/white dots if I explain this correctly ans then then in 5+ seconds I get the penguin logo in top left corner before that is disappeared and I get andriod image horizontally displayed in top half of the screen.

    What I would like is to reduce this 5+ seconds gap next to nothing so there is a smooth transition from company logo in u-boot to penguin logo in kernel

    I also would like to get rid of this 6/7 android logo in top half of screen to something same as penguin logo.

    I hope I got this clear in terms of explaining the problem.

    The video shows whats happening which I need to sort at least make it smooth transitions

    8686.20140723_135748.mp4

  • Hi Ali,

    I understood your problem.

    I think this junk prints print while display driver get initializing or after or while LCD init code begun.

    Please check your init code for LCD.

    What is the interface has been used for LCD interface for command ?

    SPI ?

    Have you modified the display driver code for your LCD interface ?

    It is mainly due to LCD init code provided by LCD vendor.