Lxqt monitor resolution in Lubuntu 20.04

Hello,

I recently installed Lubuntu 20.04. I initially selected the option to install Lubuntu from the live usb; however, I found that the resolution was so bad (640x480) that I couldn’t run the installation (I couldn’t see enough of the installer window to select the installation options), and I could not change the resolution to my monitor’s native 1920x1080. So I rebooted and ran the “graphics safe” version. Oddly enough, this version got the resolution right up to 1920x1080, so I was able to do the installation no problem.

Now that 20.04 is installed and fully updated, I am again stuck at 640x480, which makes most tasks unmanageable. I’ve tried:

xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode DisplayPort-0 1920x1080_60.00
xrandr --output DisplayPort-0 --mode 1920x1080_60.00

which resulted in:

xrandr: Configure crtc 0 failed

My machine has an integrated AMD GX-420GI SOC: quad-core APU with R7E graphics (capable of dual 4K displays), plus the 1920x1080 worked fine in the “safe graphics” live usb version.

What can I do to set the resolution correctly?

I would explore video (kernel module/driver) issues first, ie. I’d look to see what your system is recognized as, and compare it with what you’d expect.

Me I’d use sudo lshw -C video to list-hardware of class video… as the kernel module that is handling your video will be seen in the driver= area & I suspect you’ll see issues that I’d fix (and expect resolution to be fixed automatically).

Thanks for looking at this!

I ran sudo lshw -c video and got:

*-display                 
       description: VGA compatible controller
       product: Wani [Radeon R5/R6/R7 Graphics]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 88
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
       configuration: driver=amdgpu latency=0
       resources: irq:35 memory:e0000000-efffffff memory:f0000000-f07fffff ioport:f000(size=256) memory:feb00000-feb3ffff memory:c0000-dffff

To me this looks pretty much like what I’d expect, so I’m not really sure what the next step is.

2 Likes

Just in case anyone else runs into this:

The problem seems to be a combination of monitor manufacturer (something to do with EDID, which I’m not going to pretend to understand) and AMD graphics on Linux kernels >=4.18 (see https://bugzilla.kernel.org/show_bug.cgi?id=201497#c15). The amdgpu driver is, as far as I could tell, the most current.

Although maybe not the exact same issue, the same 640x480 resolution problem appeared in a manjaro build: https://archived.forum.manjaro.org/t/stuck-at-low-display-resolution/115976. The solution also worked for me.

Steps to Repeat

Open terminal and run:

xrandr

which should give you an output similar to:

Screen 0: minimum 320 x 200, current 640 x 480, maximum 16384 x 16384
DisplayPort-0 connected primary 640x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   640x480       59.94*
DisplayPort-1 disconnected (normal left inverted right x axis y axis)

Note the name of the output you’re trying to change the resolution on (in my case, it was DisplayPort-0). Keep in mind that screens, as reported by xrandr, are not outputs.

Next, run the following (I was going for a resolution of 1920x1080; if you’re looking for something different, just substitute the width and height)

cvt -r 1920 1080

This should give you something like:

# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync

Everything after the word Modeline is the information needed to create a new mode for your monitor. Copy that line and create a file at /etc/X11/xorg.conf.d/10-monitor.conf. The contents are:

Section "Monitor"
       Identifier "DisplayPort-0"
       Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
       Option "PreferredMode" "1920x1080R"
EndSection

Identifier should be the name of the output you found using the xrandr command, and the Modeline is a direct copy of the one you got from cvt. Save the file.

Lastly, (not sure if this step is required or not), make the file executable:

sudo chmod +x /etc/X11/xorg.conf.d/10-monitor.conf

Reboot, and you should have the resolution you’re after.

3 Likes

Thank you for documenting, and sharing the answer to your problem so it can help others :slight_smile:

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.