
You can create a custom boot logo for the ODROID-C2 by following the simple instructions below. The logo will appear in the first few seconds of booting while the operating system loads. The basic image format of the ODROID-C2 boot logo file is described in the next section.
Format
Image Format : 24-bit Windows BMP image or 24-bit Windows Gzipped BMP image (Without meta-data) Image Size : 1280 by 720 Color Depth : 24bpp File Name : 'boot-logo.bmp' or 'boot-logo.bmp.gz'A sample bmp file can be found at: https://wiki.odroid.com/_media/en/boot-logo.bmp.gz We recommend using GIMP or KolourPaint as editing programs. Here are the advanced options:
GIMP
- Export as Windows BMP - Compatibility Options : Do not write Color Space Information - Advanced Options : 24 bits Color - Name : "boot-logo.bmp"
KolourPaint
- Save Image as - Filter : Windows BMP image - Convert to : 24-bit Color
Size Limitation
You must keep the size of your bmp file under 2MB, because the logo partition is limited to 2MB. Gzip BMP format is supported, so if the size is over 2MB, you can use bmp.gz file.
$ gzip boot-logo.bmp $ ls -l boot-logo.bmp.gz
Auto scaling option
On the ODROID-C2 uboot, image scaling for boot logo is supported, so displayed boot logo will be fixed automatically for output mode as described in boot.ini. For example, in the case of using mode “1024x600p60hz”, the boot logo will be displayed as 1024×600 even though actual size of bmp file is 1280×720.
Replacing the boot logo
ODROID-C2 scans the existence of the following three parts in numerical order. boot-logo.bmp in VFAT partition boot-logo.bmp.gz in VFAT partition logo data in Android LOGO partition
Android
On Android, you can replace boot logo with your custom image. There are two methods to change boot logo image. Add an image into VFAT partition. Rewrite image data into Android LOGO partition using fastboot.
Method 1: VFAT Copy the new boot-logo.bmp, or boot-logo.bmp.gz, to the VFAT partition.
Method 2: Android Logo Partition If you want to replace the logo data in the logo partition, please follow this guide:
First, you must get into your U-Boot command line while pressing ‘ENTER’ key when your ODROID-C2 is powered up and execute fastboot command from U-Boot and connect with your desktop using micro USB cable.
odroidc2# fastbootNext, run the fastboot command from your desktop.
HOST PC
$ fastboot flash logo boot-logo.bmp.gzor
$ fastboot flash logo boot-logo.bmp
Warning
If you will use bmp data on the logo partition, make sure there is NO boot-logo.bmp.gz file on your VFAT area, because U-Boot checks, first, if there are boot-logo.bmp/boot-logo.bmp.gz on VFAT area and then checks the logo partition.
Ubuntu
With Ubuntu, the display logo option is NOT included by default. So, you need to add a boot logo image into VFAT partition. The method using the LOGO partition is not available on Ubuntu.
How to Add showlogo Command in boot.ini
1080p60hz
On U-Boot, the default logo display logic works with 1080p60hz display resolution. So you don't need to add/modify any related commands, but make sure the boot logo file exists in the aforementioned locations. Another resolution other than 1080p60hz, you should add the commands to your boot.ini before bootcmd is executed. Please check if there is 'showlogo' command in your boot.ini first. If not, refer to the following:
Android
showlogo ${hdmimode}
Ubuntu
# Boot Arguments if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi ### You should add the following lines after **hdmitx edid** command. showlogo ${m} setenv logoopt "osd1,loaded,0x3f800000,${m}" # Boot Arguments - Add logo args on the existing bootargs parameter setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam} ${hid_quirks} logo=${logoopt}"
Custom Native Image Resolution
If you want to use a native resolution for a bmp image like 1920×1080, 1024×600 (for VU7+) or 800×480 (for VU7), set arg[2]/arg[3] of showlogo command as follows:
# help showlogo showlogo - Displaying BMP logo file to HDMI screen with the specified resolution Usage: showlogo [ ] resolution - screen resoltuion on HDMI screen '1080p60hz' will be used by default if missing bmp_width (optional) - width of logo bmp file '1280' will be used by default if missing bmp_height (optional) - height of logo bmp file '720' will be used by default if missingReplace boot logo image with yours as described in previous sections and then modify 'showlogo' command in boot.ini. Here are some examples:
Logo image size of width 1920 and height 1080
If your monitor's resolution is 1920×1080 and you want to set a bmp file in 1920×1080, Set the command in boot.ini with:
setenv hdmimode "1080p60hz" showlogo ${hdmimode} 1920 1080
Logo image size of width 1024 and height 600
setenv hdmimode "1024x600p60hz" showlogo ${hdmimode} 1024 600
Logo image size of width 800 and height 480
setenv hdmimode "800x480p60hz" showlogo ${hdmimode} 800 480
Workaround for Logo Splash Issue with VU7+
For some specific cases, when VU7+ is using an extra power source, strange colors and a flashing screen issue during display initialization on u-boot stage might be visible. To resolve this issue, the following workaround will fix it:
Update u-boot
Click the following link to download the boot loader to fit displays with 1024x600p60hz, DVI mode: http://dn.odroid.com/S905/BootLoader/ODROID-C2/c2_vu7plus_splash_20180720 Once downloaded, copy tar.gz file to /media/boot and boot the C2 system
# cd /media/boot # tar xvfz c2_vu7plus_splash_20180720.gz # cd ./sd_fuse # ./sd_fusing.sh /dev/mmcblk0(reboot)
Setup boot.ini
Some points in boot.ini should be adjusted.
### set "display_autodetect" as "false" setenv display_autodetect "false" ### block a default "m" and change "m" as "1024x600p60hz" setenv m "1024x600p60hz" ### HDMI DVI/VGA modes ### set "vout" as "dvi" setenv vout "dvi" ### turn on USB power usb pwren ### add "logoopt" setenv logoopt "osd1,loaded,0x3f800000,${m}" ### add "logo=${logoopt}" in "bootargs" setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend logo=${logoopt} hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam} ${hid_quirks}"
References
You can refer to the history of this issue from these ODROID Forum pages: https://forum.odroid.com/viewtopic.php?f=141&t=29262#p209113https://forum.odroid.com/viewtopic.php?f=141&t=31590#p229069
Sample Source Code
This section describes U-boot code change history. In the case of 1024x600p60hz, you don't need to follow this section, but refer to this section and use the pre-built U-boot. https://wiki.odroid.com/odroid-c2/application_note/software/bootlogo#update_u-boot
u-boot/board/hardkernel/odroidc2/odroidc2.c : in function board_late_init https://github.com/hardkernel/u-boot/blob/odroidc2-v2015.01/board/hardkernel/odroidc2/odroidc2.c#L468
#ifdef CONFIG_DISPLAY_LOGO /* run_command("showlogo 1080p60hz", 0); */ run_command("showlogo 1024x600p60hz", 0); #endif u-boot/common/cmd_showlogo.c https://github.com/hardkernel/u-boot/blob/odroidc2-v2015.01/common/cmd_showlogo.c#L119 /* if (NULL == getenv("vout_mode")) setenv("vout_mode", "hdmi"); */ setenv("vout_mode", "dvi");This guide is available on the ODROID wiki at the follow link: https://wiki.odroid.com/odroid-c2/application_note/software/bootlogo
Android Boot Animation
In the case of Android, you can use bootanimation.zip method to show your custom logo using animation. Please refer to this reference site: https://android.googlesource.com/platform/frameworks/base/+/master/cmds/bootanimation/FORMAT.md
The system selects a boot animation zip file from the following locations.
/system/media/bootanimation.zip /oem/media/bootanimation.zipBefore the copy process, you need to change root filesystem permission to r/w and copy your bootanimation.zip into /system/media/ folder.
shell@odroidc2:/ $ su root@odroidc2:/ # root@odroidc2:/ # mount -o rw,remount / [ 357.892532@2] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Samples of boot animation
Here are sample capture videos with ODROID-C2 Android Marshmallow. To display these boot animation samples, the following reference files are used: [Please note the sources of the files.] https://forum.xda-developers.com/android/themes/bootanimation-android-marshmallow-t3180984
Figure 1 - Boot Animation Example 1
(figure 01 - boot animation example)
Directory Layout
desc.txt part0 part1 part2 part3 part4 desc.txt
814 214 60 c 1 30 part0 c 1 0 part1 c 0 0 part2 c 1 64 part3 c 1 15 part4Size of png files is 814 by 214.
Figure 2 - Boot Animation Example 2
Boot Animation Example 2
(figure 02 - boot animation example)
Directory Layout
desc.txt Part0 Part1 desc.txt
800 1280 24 p 1 0 Part0 p 0 0 Part1The size of png files is 800 by 1280.
The following guide can be found on the ODROID wiki at https://wiki.odroid.com/odroid-c2/application_note/software/bootlogo.
Be the first to comment