====== 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)
- 4K UHD (2160p)
- 3440x1440
- 2560x1600
- 2560x1440
- 2560x1080
- 1920x1200 (WUXGA)
- 1920x1080 (1080p)
- 1280x720 (720p)
- 720x480 (480p)
- 720x576 (576p)
- 1280x800 (800p for ODROID-VU)
- 1280x1024 (SXGA)
- 1024x768 (XGA)
- 800x480 (WVGA, DVI supported for ODROID-VU7)
- 640x480 (VGA)
- 1680x1050
- 1600x1200
- 1600x900
- 1440x900
- 1360x768
- 1024x600 (DVI supported for ODROID-VU7+)
- 800x600
===== Android =====
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.
{{:en:odroidc2_screen.png?800|}}
===== Linux / Ubuntu =====
Coming soon...
===== Lowlevel Change =====
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 ===
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)
===== Board Identifier =====
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.
===== U-boot commands =====
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