Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
en:c2_auto_detect_display [2017/02/27 18:16] joy.cho [Display Auto Detection using EDID] |
en:c2_auto_detect_display [2017/03/07 11:30] odroid [Display Auto Detection using EDID] |
||
---|---|---|---|
Line 3: | Line 3: | ||
There are a variety of issue related to setting display mode with various monitors\\ | There are a variety of issue related to setting display mode with various monitors\\ | ||
and the available display modes that are provided on ODROID-C2 are limited to support all of them.\\ | and the available display modes that are provided on ODROID-C2 are limited to support all of them.\\ | ||
- | So, we are planning to release 'Display auto detection functionality using EDID on U-Boot stage'.\\ | + | This wiki page introduces 'Display auto detection functionality using EDID of monitors'.\\ |
- [[en:c2_auto_detect_display#setting_boot_ini | How to modify boot.ini with 'display_autodetect' ]] | - [[en:c2_auto_detect_display#setting_boot_ini | How to modify boot.ini with 'display_autodetect' ]] | ||
- [[en:c2_auto_detect_display#information_binaries_for_debugging | Information binaries for debugging ]] | - [[en:c2_auto_detect_display#information_binaries_for_debugging | Information binaries for debugging ]] | ||
- [[en:c2_auto_detect_display#brief_sequence_diagram | Brief Sequence Diagram ]] | - [[en:c2_auto_detect_display#brief_sequence_diagram | Brief Sequence Diagram ]] | ||
- | - [[en:c2_auto_detect_display#how_to_update_u-boot| How to manually update u-boot that supports display auto detection functionality ]] | ||
<WRAP left round tip 80%> | <WRAP left round tip 80%> | ||
- | * **Ubuntu** : Version 3.14.79-107 (Feb 26, 2017) or higher is available.\\ | + | * **Ubuntu** : Version 3.14.79-108 (Feb 27, 2017) or higher version is available.\\ |
* **Android** : Android 5.1.1 (v3.3) / 6.0.1 (v2.2) or higher version is available. | * **Android** : Android 5.1.1 (v3.3) / 6.0.1 (v2.2) or higher version is available. | ||
</WRAP> | </WRAP> | ||
+ | <WRAP left round tip 80%> | ||
+ | * If you want to **configure the resolution manually**,\\ | ||
+ | Change the **display_autodetect** option to **"false"** in boot.ini file. | ||
+ | </WRAP> | ||
==== Setting Boot ini ==== | ==== Setting Boot ini ==== | ||
Line 95: | Line 98: | ||
# setenv m "custombuilt" | # setenv m "custombuilt" | ||
# setenv modeline "1920,1200,154000,74040,60,1920,1968,2000,2080,1200,1202,1208,1235,1,0,1" | # setenv modeline "1920,1200,154000,74040,60,1920,1968,2000,2080,1200,1202,1208,1235,1,0,1" | ||
+ | |||
+ | # Auto Detection of Monitor settings based on your Screen information | ||
+ | # See: http://odroid.com/dokuwiki/doku.php?id=en:c2_auto_detect_display | ||
+ | setenv display_autodetect "true" | ||
# 480 Lines (720x480) | # 480 Lines (720x480) | ||
Line 159: | Line 166: | ||
# setenv vout "dvi" | # setenv vout "dvi" | ||
# setenv vout "vga" | # setenv vout "vga" | ||
- | |||
- | # Display Auto Detection | ||
- | # "false" or "true" | ||
- | setenv display_autodetect "true" | ||
# HDMI HotPlug Detection control | # HDMI HotPlug Detection control | ||
Line 197: | Line 200: | ||
# Only enable this if you use it. | # Only enable this if you use it. | ||
setenv usbmulticam "false" | setenv usbmulticam "false" | ||
+ | |||
+ | # Disable/Enable ODROID-VU7 Touchscreen | ||
+ | setenv disable_vu7 "true" | ||
# Default Console Device Setting | # Default Console Device Setting | ||
Line 227: | Line 233: | ||
########################################### | ########################################### | ||
+ | |||
# Boot Arguments | # Boot Arguments | ||
if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi | if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi | ||
if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi | if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi | ||
+ | if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi | ||
- | 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}" | + | 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}" |
# Booting | # Booting | ||
Line 289: | Line 297: | ||
(refer to E-EDID standard, Section 6.2) | (refer to E-EDID standard, Section 6.2) | ||
- | ==== How to update U-Boot ==== | ||
- | It's a beta test version so you need to upate u-boot binary\\ | ||
- | and modify boot.ini to activate the functionality. | ||
- | == 1. Download the script == | ||
- | First, download the update script file as following \\ | ||
- | and then change the mode. | ||
- | <code> | ||
- | $ su | ||
- | # wget http://dn.odroid.com/S905/BootLoader/ODROID-C2/display_autodetection/update_c2_boot.sh | ||
- | # chmod +x ./update_c2_boot.sh | ||
- | </code> | ||
- | |||
- | <file sh update_c2_boot.sh> | ||
- | #!/bin/sh | ||
- | # | ||
- | # Copyright (C) 2017 Hardkernel Co,. Ltd | ||
- | # Joy Cho <joy.cho@hardkernel.com> | ||
- | # | ||
- | # SPDX-License-Identifier: GPL-2.0+ | ||
- | # | ||
- | # update c2 boot binaries on Ubunt | ||
- | # | ||
- | |||
- | if [ -z $1 ]; then | ||
- | echo "Usage :" | ||
- | echo " update : ./update_c2_boot.sh update" | ||
- | echo " check version : ./update_c2_boot.sh version" | ||
- | exit 1 | ||
- | fi | ||
- | |||
- | uboot=/tmp/u-boot.bin | ||
- | tmp=/tmp/temp.bin | ||
- | |||
- | case "$1" in | ||
- | "update") | ||
- | # Download U-Boot binary | ||
- | wget -P /tmp/ http://dn.odroid.com/S905/BootLoader/ODROID-C2/display_autodetection/u-boot.bin | ||
- | |||
- | if [ ! -f $uboot ];then | ||
- | echo "error: uboot binary doesn't exist" | ||
- | exit 1 | ||
- | fi | ||
- | |||
- | # Write | ||
- | dd if=$uboot of=/dev/mmcblk0 bs=512 seek=97 status=none | ||
- | echo "Update done!" | ||
- | |||
- | rm $uboot | ||
- | ;; | ||
- | "version") | ||
- | # check the U-Boot version | ||
- | echo "Now let's check if update has been completed..." | ||
- | |||
- | dd if=/dev/mmcblk0 of=$tmp bs=512 skip=97 count=1334 status=none | ||
- | grep -a -r -E -o ".{0,0}U-Boot 2015.01.{0,50}" /tmp/temp.bin | grep -a "(" | ||
- | |||
- | rm $tmp | ||
- | ;; | ||
- | *) | ||
- | echo "Usage :" | ||
- | echo " update : ./update_c2_boot.sh update" | ||
- | echo " check version : ./update_c2_boot.sh version" | ||
- | ;; | ||
- | esac | ||
- | </file> | ||
- | |||
- | == 2. Update U-Boot == | ||
- | |||
- | <code> | ||
- | $ ./update_c2_boot.sh update | ||
- | </code> | ||
- | |||
- | == 3. Check the U-Boot version == | ||
- | <code> | ||
- | $ ./update_c2_boot.sh version | ||
- | </code> | ||
- | |||
- | If the update is completed, you can see the following version. | ||
- | <code> | ||
- | # ./update_c2_boot.sh version | ||
- | |||
- | Now let's check if update has been completed... | ||
- | U-Boot 2015.01-00183-g731ba4c-dirty (Feb 22 2017 - 20:13:29) | ||
- | </code> | ||
- | After updating, you must run **reboot** the system. |