====== Tips for ODROID-C1 ======
This page introduce you an useful tips to use **ODROID-C1**.
----
====== How to change HDMI output resolution ======
**ODROID-C1** 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 (2014-12-15)
- 1920x1200 (WUXGA)
- 1920x1080 (1080p)
- 1280x720 (720p)
- 720x480 (480p)
- 720x576 (576p)
- 1280x800 (800p for ODROID-VU)
- 1280x1024 (SXGA)
- 800x480 (WVGA)
- 640x480 (VGA)
===== 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-C1** will restart with new resolution.
{{:en:utility_resolution.png?600|}}
===== 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-C1**.
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=720p
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.
odroidc#print bootcmd
bootcmd=cfgload;setenv bootargs root=/dev/mmcblk0p2 rw console=ttyS0,115200n8 no_console_suspend vd
accfg=${vdac_config} logo=osd1,loaded,${fb_addr},${outputmode},full hdmimode=${hdmimode} cvbsmode=$
{cvbsmode} hdmitx=${cecconfig} androidboot.serialno=${fbt_id#}; movi read boot 0 0x12000000;movi re
ad dtb 0 0x12800000;bootm 0x12000000 - 0x12800000
==== How to change the value of hdmimode ====
There are three ways to change **hdmimode** to change the resolution, you can replace **1080p** with the other resolution you wish to change for your display.
=== U-boot ===
If you are able to get into U-boot, this is simply possible with 3 commands below. This will change the resolution value and restart the board.
This scheme is only available when booting with 'boot.ini' is not used.
setenv hdmimode 1080p
saveenv
reset
=== Android shell ===
If you are able to use **adb shell**, then you can do these command to change **hdmimode**. This will change the resolution value and restart the board as well.
This scheme is only available when booting with 'boot.ini' is not used.
# fw_setenv hdmimode 1080p
# reboot
=== Boot.ini ===
You also can boot with **boot.ini** without changing U-boot environment values permanently. If **boot.ini** is existed in FAT partition **ODROID-C1** does boot with it first, unless boot with default setting stored in U-boot environment. You can download the file below and copy into your FAT partition.
ODROIDC-UBOOT-CONFIG
setenv hdmimode 1080p
setenv bootargs "root=/dev/mmcblk0p2 rw console=ttyS0,115200n8 no_console_suspend vdaccfg=${vdac_config} logo=osd1,loaded,${fb_addr},${outputmode},full hdmimode=${hdmimode} cvbsmode=${cvbsmode} hdmitx=${cecconfig} androidboot.serialno=${fbt_id#}"
setenv bootcmd "movi read boot 0 0x12000000; movi read dtb 0 0x12800000; bootm 0x12000000 - 0x12800000"
run bootcmd
====== How to change U-boot configuration by BOOT.INI ======
----
In order to support easy boot loader setup, ODROID-C1 also support **boot.ini** as well 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.
=== Android boot.ini example ===
ODROIDC-UBOOT-CONFIG
# Possible screen resolutions
# Uncomment only a single Line! The line with setenv written.
# At least one mode must be selected.
# setenv m "vga" # VGA 640x480
# setenv m "480p" # 480p 720x480
# setenv m "576p" # 576p 720x576
# setenv m "800x480p60hz" # WVGA 800x480
# setenv m "720p" # 720p 1280x720
# setenv m "800p" # 800p(WXGA) 1280x800
# setenv m "1024x768p60hz" # XGA 1024x768
# setenv m "sxga" # SXGA 1280x1024
setenv m "1080p" # 1080P 1920x1080
# setenv m "1920x1200" # 1920x1200
# HDMI/DVI Mode Configuration
setenv vout_mode "hdmi"
# setenv vout_mode "dvi"
# UHS Card Configuration
# Uncomment the line below to __DISABLE__ UHS-1 MicroSD support
# This might break boot for some brand/models of cards.
setenv disableuhs "disableuhs"
setenv bootargs "root=/dev/mmcblk0p2 rw console=ttyS0,115200n8 no_console_suspend vdaccfg=${vdac_config} logo=osd1,loaded,${fb_addr},${outputmode},full hdmimode=${m} cvbsmode=${cvbsmode} hdmitx=${cecconfig} vout=${vout_mode} ${disableuhs} androidboot.serialno=${fbt_id#}"
setenv bootcmd "movi read boot 0 0x12000000; movi read dtb 0 0x12800000; bootm 0x12000000 - 0x12800000"
run bootcmd
=== Linux boot.ini example ===
ODROIDC-UBOOT-CONFIG
# Possible screen resolutions
# Uncomment only a single Line! The line with setenv written.
# At least one mode must be selected.
# setenv m "vga" # VGA 640x480
# setenv m "480p" # 480p 720x480
# setenv m "576p" # 576p 720x576
# setenv m "800x480p60hz" # WVGA 800x480
# setenv m "720p" # 720p 1280x720
# setenv m "800p" # 800p(WXGA) 1280x800
# setenv m "sxga" # SXGA 1280x1024
setenv m "1080p" # 1080P 1920x1080
# setenv m "1920x1200" # 1920x1200
# HDMI/DVI Mode Configuration
setenv vout_mode "hdmi"
# setenv vout_mode "dvi"
# HDMI BPP Mode
setenv m_bpp "32"
# setenv m_bpp "16"
# UHS Card Configuration
# Uncomment the line below to __DISABLE__ UHS-1 MicroSD support
# This might break boot for some brand/models of cards.
setenv disableuhs "disableuhs"
setenv bootargs "console=ttyS0,115200n8 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs}"
setenv bootcmd "fatload mmc 0:1 0x21000000 uImage; fatload mmc 0:1 0x22000000 uInitrd; fatload mmc 0:1 0x21800000 meson8b_odroidc.dtb; bootm 0x21000000 0x22000000 0x21800000"
run bootcmd
===== Board Identifier =====
This is the keyword to identify the correct **BOOT.INI** as per board. For **ODROID-C1**, any **BOOT.INI** must contain **ODROIDC-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 **ODROIDC-UBOOT-CONFIG**. The commands are only restricted within the commands enabled by the running U-boot.
====== How to replace booting logo ======
**ODROID-C1** can shows booting logo to the display till target O/S is started.
===== LOGO file format =====
Currently, we support **24-bit Windows BMP image** only and default size is **1280x720**. You can display any other size of logo file, but it will be showen at the left-top corner.
===== Using BOOT.INI =====
You can add the commands to your **boot.ini** before **bootcmd** is executed. Note that you can replace the logo file name **hardkernel-720.bmp** with yours and it must be in FAT (BOOT) partition.
logo size ${outputmode}
video open
video clear
video dev open ${outputmode}
fatload mmc 0 ${loadaddr_logo} hardkernel-720.bmp
bmp display ${loadaddr_logo}
bmp scale
===== Using FASTBOOT =====
The logo partition is internally assigned in **U-boot** itself, please refer [[http://odroid.com/dokuwiki/doku.php?id=en:c1_partition_table#android_partition_table|this]] for detail. This works just for **Android Users** since Linux/Ubuntu uses the logo sectors for **BOOT** partition.
Firstly, you must get into your **U-boot** command line while pressing any key when your **ODROID-C1** is powered up. And execute **fastboot** command from **U-boot** and connect with your desktop using USB cable.
odroidc#fastboot
Next, run **fastboot** command from your desktop.
$ fastboot flash logo hardkernel-720.bmp.gz