RockPro64 linux console video mode

I have a weird issue with the linux console. I am trying to setup a rockpro64 and in doing that I am using an old Dell monitor with a 1680x1050 resolution.

When the rockpro64 boots, the first thing that I see is the output from uboot. This is OK. Then linux is booted and for a short time I see a patterned screen. After this, there is the linux boot output.

The issue is that as soon as uboot gives control to the linux kernel, the display becomes terrible: all trembling and slightly distorted. The monitor reports that the output is at 1400x1050@55Hz, which is obviously not correct. However, /sys/class/graphics/fb0/modes correctly shows U:1680x1050p-0.

Obviously, I suspect that the poor display is due to using an output format that is not suited for the monitor. However:

  • Why does uboot pick the right display mode and linux does not?
  • What would be the proper way to instruct linux to use a more correct display mode for its console?
    • Should I use some Uenv.txt file in /boot? Should I set some bootargs in it? Is the relevant kernel parameter to add video=... or something else? Do arm SOCs employing mali graphics use KMS?

Note that issue is cross-distro (also seen with debian). Asking here because I am particularly interested in finding a solution for Manjaro (and particularly confident on the helpfulness of this community!)

Thanks for any help!

HDMI modes for rockchip on mainline is pretty limited although I’ve seen someone started working on it, so having non-standard resolution monitors can be a bumpy ride.

I know that @Pak0st has been messing with a kernel that should add new HDMI modes/resolutions, so you can try installing that one. You can search the forum for the post about it.

@Strit thanks for your help and pointer. I have also found out the repo at GitHub - Kwiboo/linux-rockchip: Linux kernel for Rockchip SoC (where more videomode are introduced) thanks to your post.

I still have a question, though, in case you know the answer.

Even if the set of HDMI modes for RK on mainline is restricted, 1400x1050@55 seems a weird choice and almost surely my monitor would be able to do better with 1024x768 that is so standard that I cannot imagine being unupported on RK. If this is the case, what would be the way to force the kernel to use 1024x768?

@callegar , I believe @Strit was talking about my experimental 5.16 kernel here: GitHub - psstoyanov/linux-rockchip-hdmi-fixes

I keep postponing updating it to 5.19… I really need to get my act together this week :smiley:

The full thread is here with a lot more info: RK3399 HDMI output for resolutions different than 1080p