Check Linux Framebuffer Resolution

From Linux Rockchip
Jump to: navigation, search

Contents

Changing HDMI resolution

The kernel supports fixed list of resolutions

800x480p-60
1280x720p-60
1920x1080p-60

probably interlaced and/or 50Hz modes are also supported like

1920x1080i-50

To change the mode use something like

echo "1280x720p-60" > /sys/devices/virtual/display/display0.HDMI/mode

To check scale value

cat /sys/devices/platform/rk-fb/graphics/fb0/scale

To change to no overscan

echo 100 > /sys/devices/platform/rk-fb/graphics/fb0/scale

On some kernels changing the mode as above is needed for scale value to apply.

The scale value may be ignored by some kernels.

On some kernels the scale file was at /sys/devices/virtual/display/display0.HDMI/scale

Checking the actual resolution

On a console type:


   cat /sys/devices/platform/rk-fb/graphics/fb0/disp_info


for a working 1080p setup, the result should be something like:


   win0:enabled
   xvir:960
   xact:1920
   yact:1080
   xdsp:1920
   ydsp:1080
   x_st:192
   y_st:41
   x_scale:1.0
   y_scale:1.0
   format:RGB565
   
   win1:disabled
   xvir:0
   xdsp:320
   ydsp:240
   x_st:10
   y_st:10
   format:ARGB888


That is xact and yact (the virtual resolution seen by Linux) must be the same as xdsp and ydsp (the real resolution been sent to the screen), or else you have a scaled output (x_scale and y_scale not 1.0).

Fix (1) for an not working resolution

If this is the case and you find that xdsp=1280 and ydsp=720, whereas you expected a 1080p display, the solution is in this commit: https://github.com/Galland/3188-SRC-AP6210/commit/130c1ad6bb47f3b2401b6156f205dcb5882255c7


(BTW, notice the 16 bits color: RGB565)

Fix (2) in case solution (1) don't working

With some monitors the EDID information is a little bit different and can cause problems to get the right resolution although the solution (1) is already applied.

F.e. this is the case for the monitor "acer P225HQL".

One solution could be found at miniand forum.