HDMI Force RGB Option

  • Ubuntu : The available version should be the one released after Jun 20, 2016.
  • Android : Android Marshmallow v1.2 (Dec 19, 2016) or higher version is available.

With some TV monitors, there is a bug in their HDMI implementation that sometimes trigger the selection of the wrong colorspace in a magenta/green display.


http://forum.odroid.com/viewtopic.php?f=141&t=20697#p137351

It looks TV reports that is capable of YUV422 or YUV444 but it's not indeed.
To avoid this situation, you can use forcergb option to set COLORSPACE_SPACE_RGB444 forcibly.

Here are more investigations and discussions in ODROID Forum.

To activate it, add hdmitx=forcergb in bootargs.

setenv bootargs ${bootargs} hdmitx=forcergb

Here is the catch.
The env hdmitx has other parameters related to HDMI CEC control.
If you use CEC options, the env format can be hdmitx=cecf,forcergb or hdmitx=cec0,forcergb.

The ODROID Forum user, wrxtasy from LibreELEC already implemented a good guide for this case.

https://github.com/wrxtasy/LibreELEC.tv.7.0/blob/libreelec-7.1/projects/Odroid_C2/bootloader/boot.ini

# Enable | Disable HDMI CEC Control                 
setenv hdmi_cec  "0"            # Disabled                      
# setenv hdmi_cec  "1"          # Enabled                       
# setenv hdmi_cec  "2"          # Enabled but disable auto TV switching ON
 
# Force HDMI to use RGB colorspace regardless of TV request
# setenv hdmi_forcergb "0"      # Disabled         
setenv hdmi_forcergb "1"        # Enabled          
 
if test "${hdmi_cec}" = "0"; then setenv hdmitx "hdmitx=cec0"; fi
if test "${hdmi_cec}" = "1"; then setenv hdmitx "hdmitx=cecf"; fi
if test "${hdmi_cec}" = "2"; then setenv hdmitx "hdmitx=cec7"; fi
 
if test "${hdmi_forcergb}" = "1"; then setenv hdmitx "${hdmitx},forcergb"; fi
 
setenv bootargs "${rootopt} ${consoleopt} hdmimode=${hdmimode} ${hdmitx} vout=${vout_mode} ............"

If you need to update HDMI driver for other OS to apply the Force RGB option, please refer to the following commits.

Ubuntu

Android