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.

DM3730 Android 1024x600 initlogo.rle can't display normally

Other Parts Discussed in Thread: DM3730

Hi,

Following below method, we could change the Android startup logo on DM3730 EVB successfully

1. use Windows Paint to get a 480x640 PNG-24 format picture, named android_logo.png

2. use ImageMagick tool to get android_logo.raw file

$ convert -depth 8 android_logo.png rgb:android_logo.raw

3. use android/out/host/linux-x86/bin/rgb2565 to get initlogo.rle

$ rgb2565 -rle < android_logo.raw > initlogo.rle

---

For our prototype board, the display resolution is 1024x600. We get a 1024x600 PNG picture, using the same method, but the logo can't display normally

We want to see like this:

But in fact, we saw like this:

Could you please help me? Thanks in advance!

  • I have not done anything similar, but a quick question came to my mind: do you have to create the PNG file in 1024x600 instead of 480x640 to match your display?

    Not sure if there is any res xml to be changed to specify 1024x600, but I would try 1024x600 rle first.

  • Thank you for your quickly reply, you are so quick that I haven't edited the not clear place :)

     

    As the edited description, We have created 1024x600 PNG file.

  • The routine to display the initlogo is load_565rle_image() in system/core/init/logo.c, it seems straight forward.

    To quickly check it out, I copied device/rowboat/generic/initlogo/android-robot-on-black-1024x768.rle from Rowboat source tree into the SD card, and set the following bootargs, the logo is displayed correctly in 1024x768 display mode.

    mem=76M@0x80000000 mem=128M@0x88000000 console=tty0 console=ttyS0,115200n8 androidboot.console=ttyS0 root=/dev/mmcblk0p2 rw rootfstype=ext3 init=/init rootwait ip=off omap_vout.vid1_static_vrfb_alloc=y omap_vout.video2_numbuffers=0 omapdss.def_disp=dvi omapfb.mode=dvi:1024x768MR-16 mpurate=1000

    So please double check if you have 1) created the initlogo image properly, 2) set the bootargs correctly in 1024x600 16bit mode.

  • Hi Bin,

    Sorry for one important information missed:

    Because our TFT panel is 24bit interface, we set the display driver to 24bit mode as follow:

    In the file, board_omap3evm.c
     static struct omap_dss_device omap3_evm_lcd_device = {
     //...
     .phy.dpi.data_lines = 24, //18,
     //...
     };

    I doubt if it is source of our problem. The initlogo.rle is rgb565, but can't match our display mode.

    So how to support initlogo display in 24bit mode? Could you please give us a way to create the initlogo.rle file to match 24bit mode? Thank you very much!

  • I don't think you can simply dump the 16-bit RGB image into the 24-bit framebuffer. You have to create a 24-bit RGB logo image for your panel.

    Like I said The RGB565 logo is loaded into framebuffer by function load_565rle_image() in system/core/init/logo.c. You could create a 1024x600 RGB888 raw image and write a simple function to replace load565rle_image() to dump the logo image into the framebuffer.

  • Hi Bin,

    For 24-bit interface, using 4bytes for a pixel, we modify the logo.c to support 32-bit framebuffer.

    Thank you for your kind suggestion!

  • You are welcome. Glad you got it working. Thanks for the update.

  • hi, wang, could you pls tell me how to modify logo.c, I still face this problem. thanks a lot.

  • I know this thread is old but I am actually having the same EXACT issue. I am wondering if someone could detail what was modified in the logo.c to support the 32-bit FB. Any help would be greatly appreciated!

  • Hi,

    did someone get a solution on how to modify logo.c ?