This is an old revision of the document!


Tips for ODROID-C2

This page introduce you an useful tips to use ODROID-C2.


How to change HDMI output resolution

ODROID-C2 can support various resolution on HDMI output, you can select one of supported resolutions for your display (LCD monitor or TV).

Please make sure the resolution you select can be supported by your display before you start. Otherwise you would be hard to recover the resolution again.

Supported resolutions at this moment (2016-08-03)

  1. 4K UHD (2160p)
  2. 3440×1440
  3. 2560×1600
  4. 2560×1440
  5. 2560×1080
  6. 1920×1200 (WUXGA)
  7. 1920×1080 (1080p)
  8. 1280×720 (720p)
  9. 720×480 (480p)
  10. 720×576 (576p)
  11. 1280×800 (800p for ODROID-VU)
  12. 1280×1024 (SXGA)
  13. 1024×768 (XGA)
  14. 800×480 (WVGA, DVI supported for ODROID-VU7)
  15. 640×480 (VGA)
  16. 1680×1050
  17. 1600×1200
  18. 1600×900
  19. 1440×900
  20. 1360×768
  21. 1024×600 (DVI supported for ODROID-VU7+)
  22. 800×600

We provide you a simple but useful application, ODROID Utility. This helps you to change the resolution by menu as below and you can select one of them for your display. Once you select one, click the button Apply and Reboot. Then your ODROID-C2 will restart with new resolution.

Coming soon…

This section introduce you to change the resolution by manual, this would be helpful if you are failure to change the resolution and not able to sett the face of ODROID-C2.

The fact what initiate the resolution is from U-boot and the environment key is hdmimode. Probably your U-boot would have the one like this by default.

odroidc#print hdmimode
hdmimode=720p60hz

This will be passed to Linux kernel by bootargs just before Linux kernel is started. Here is the default value of bootcmd which starts Linux kernel. As you see, hdmimode is passing as boot argument.

odroidc2# print bootcmd
bootcmd=cfgload; setenv bootargs root=/dev/mmcblk0p2 rw init=/init rootwait console=ttyS0,115200 hdmimode=${hdmimode}
hdmitx=${cecconfig} logo=osd1,loaded,${fb_addr},${hdmimode} androidboot.hardware=odroidc2 androidboot.serialno=${fbt_id#}
androidboot.selinux=disabled;showlogo ${hdmimode}; movi read dtb 0 0x1000000; movi read boot 0 0x20000000;
booti 0x20000000 - 0x1000000

How to change the value of hdmimode

There are three ways to change hdmimode to change the resolution, you can replace 1080p60hz with the other resolution you wish to change for your display. And only the way with adjusting hdmimode arg value in boot.ini is available for ODROID-C2 so far, the other ways are in progress.

U-boot

Currently, 720p60hz mode is fixed on U-Boot stage after power-on and reset. But you can change hdmimode temporarily using 'showlogo' command.

showlogo 1080p60hz

Boot.ini

You can boot with boot.ini without changing U-boot environment values permanently. If boot.ini is existed in FAT partition ODROID-C2 does boot with it first, unless boot with default setting stored in U-boot environment. The example related to display is as following.

setenv hdmimode "720p60hz"
 
# CEC Configuration
setenv cecconfig "cecf"
 
# HDMI/DVI Mode Configuration
# This will enforce the signal type of display
# "hdmi" - For HDMI interface
# "dvi" - For DVI interface
setenv vout_mode "hdmi"
 
setenv bootargs "${rootopt} ${consoleopt} hdmimode=${hdmimode} hdmitx=${cecconfig} vout=${vout_mode} overscan_top=${top} overscan_left=${left} overscan_bottom=${bottom} overscan_right=${right} logo=${logoopt} ${androidopt} ${selinuxopt}"
 
showlogo ${hdmimode}

How to change U-boot configuration by BOOT.INI


In order to support easy boot loader setup, ODROID-C2 also support boot.ini as previous ODROID boards. So you can easily list up the commands what you want to executed in U-boot rather than the default. Here is the example to boot Ubuntu.

You can download the file below and copy into your FAT partition.

Android boot.ini example

boot.ini
ODROIDC2-UBOOT-CONFIG
 
setenv dtbaddr 0x1000000
setenv loadaddr 0x20000000
 
# Resolution Configuration
# 'hdmimode' must be one of below to configure display resolution within
# supported by your TV or monitor.
#    Symbol             | Resolution
# ----------------------+-------------
#    "480p60hz"         | 720x480 Progressive 60Hz
#    "576p50hz"         | 720x576 Progressive 50Hz
#    "720p60hz"         | 1280x720 Progressive 60Hz
#    "720p50hz"         | 1280x720 Progressive 50Hz
#    "1080p60hz"        | 1920x1080 Progressive 60Hz
#    "1080p50hz"        | 1920x1080 Progressive 50Hz
#    "1080p30hz"        | 1920x1080 Progressive 30Hz
#    "1080p24hz"        | 1920x1080 Progressive 24Hz
#    "1080i60hz"        | 1920x1080 Interlaced 60Hz
#    "1080i50hz"        | 1920x1080 Interlaced 50Hz
#    "2160p60hz"        | 3840x2160 Progressive 60Hz
#    "2160p50hz"        | 3840x2160 Progressive 50Hz
#    "2160p30hz"        | 3840x2160 Progressive 30Hz
#    "2160p25hz"        | 3840x2160 Progressive 25Hz
#    "2160p24hz"        | 3840x2160 Progressive 24Hz
#    "2160p60hz420"     | 3840x2160 Progressive 60Hz YCbCr 4:2:0
#    "2160p50hz420"     | 3840x2160 Progressive 50Hz YCbCr 4:2:0
#    "640x480p60hz"     | 640x480 Progressive 60Hz
#    "800x480p60hz"     | 800x480 Progressive 60Hz
#    "800x600p60hz"     | 800x600 Progressive 60Hz
#    "1024x600p60hz"    | 1024x600 Progressive 60Hz
#    "1024x768p60hz"    | 1024x768 Progressive 60Hz
#    "1280x800p60hz"    | 1280x800 Progressive 60Hz
#    "1280x1024p60hz"   | 1280x1024 Progressive 60Hz
#    "1360x768p60hz"    | 1360x768 Progressive 60Hz
#    "1440x900p60hz"    | 1440x900 Progressive 60Hz
#    "1600x900p60hz"    | 1600x900 Progressive 60Hz
#    "1680x1050p60hz"   | 1680x1050 Progressive 60Hz
#    "1920x1200p60hz"   | 1920x1200 Progressive 60Hz
setenv hdmimode "720p60hz"
 
setenv rootopt "root=/dev/mmcblk0p2 rw init=/init rootwait"
setenv consoleopt "console=ttyS0,115200"
setenv androidopt "androidboot.hardware=odroidc2 androidboot.serialno=${fbt_id#}"
setenv logoopt "osd1,loaded,${fb_addr},${hdmimode}"
setenv selinuxopt "androidboot.selinux=disabled"
 
# HDMI/DVI Mode Configuration
# This will enforce the signal type of display
# "hdmi" - For HDMI interface
# "dvi" - For DVI interface
setenv vout_mode "hdmi"
 
# HPD enable/disable option
setenv disablehpd "false"
 
# Overscan offset configuration
# All offsets are zero and can be tuned by manual or ODROID Utility
setenv overscan_top "0"
setenv overscan_left "0"
setenv overscan_bottom "0"
setenv overscan_right "0"
 
setenv bootargs "${rootopt} ${consoleopt} hdmimode=${hdmimode} hdmitx=${cecconfig} vout=${vout_mode} disablehpd=${disablehpd} logo=${logoopt} ${androidopt} ${selinuxopt}"
save
 
showlogo ${hdmimode}
 
movi read dtb 0 ${dtbaddr}
movi read boot 0 ${loadaddr}
booti ${loadaddr} - ${dtbaddr}

Linux boot.ini example

(in progress)

This is the keyword to identify the correct BOOT.INI as per board. For ODROID-C2, any BOOT.INI must contain ODROIDC2-UBOOT-CONFIG and other commands must be below this.

You can describe multiple commands of U-boot from the next line of ODROIDC2-UBOOT-CONFIG. The commands are only restricted within the commands enabled by the running U-boot.

How to replace booting logo

ODROID-C2 can show booting logo on the display till target O/S is started.

Please refer to the following wiki page.

http://odroid.com/dokuwiki/doku.php?id=en:c2_bootlogo