Old monitor on Apalis i.MX6


When i connect old monitors to my Apalis iMX6 module the resolution is set to 640x480. It seems that this resolution is the default setting but i am wondering how to change it? The monitor is quite old (4:3) but should support 1024x768. A DVI-to-HDMI adapter is used for connection. Newer FHD monitors are working like expected.
xrandr output:

Screen 0: minimum 240 x 240, current 640 x 480, maximum 8192 x 8192
DISP3 BG connected 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   V:640x480p-60  60.00*+

My vidargs are set to:

mxc_hdmi.only_cea=1 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=32M

When i set “mxc_hdmi.only_cea=0” the resolution is fine… but the newer monitors wont work with this configuration…


Note that it is not an easy task to get the ‘best’ matching resolution from what is read from the monitors edid, your requested resolution from the cmdline and the modules capabilities.

With mxc_hdmi.only_cea=1 the i.MX 6 kernel limits the resolutions considered to cea ones, e.g. 1080p, 720p, 640p. This helps to chose mostly a sensible resolution on 16:9 monitors.

However on old 4:3 monitors usually only 640p is a cea resolution and thus you get the 640x480 resolution.

So I guess you will have to aid by setting vidargs suitable to the monitor in use.

Note that different image version (meaning different kernels) have different edid parsers. Hopefully newer ones got better at choosing a resolution.