0

I just upgraded from Ubuntu 19.10 to 20.04, and am having trouble with the default screen resolution that's displayed on boot. The login screen appears completely blank (just a purple background colour), with a mouse cursor that can move off the screen to the left. I.e. as i move the mouse around it stops at each screen edge except the left edge. It apparently continues to moves off-screen, as it takes a few seconds of right movement before it reappears on the screen.

I can switch to a text console, login, and verify gdm3 is running normally. Back on vt1, i guessed that perhaps the login prompt was also off-screen. I blindly hit enter to select the first user usually listed (me), typed my password, and was able to log in as usual. Once my Enlightenment session starts up, however, some windows are displayed at an apparently wrong resolution. Conky and emacs windows are smaller than usual, with smaller text. Terminology and the Chrome window i'm typing this in appear normal.

Suspecting a resolution problem i started looking... nvidia-settings shows an X server display configuration with "CRT-0 (VGA-0)" having a resolution of 1024x768 that shouldn't be there, stuck in the top left of the layout. The other option in display configuration is "PRIME Display", which tells me it cannot be controlled by nvidia-settings and to use an external RandR tool.

xrandr shows:

$ xrandr --listactivemonitors
Monitors: 2
 0: +*VGA-0 1024/271x768/203+0+0  VGA-0
 1: +LVDS-1-1 1600/382x900/215+0+0  LVDS-1-1

There should only be my 1600x900 laptop screen there. In the Xorg.0.log file (gdm3's xsession on vt1), i found:

[    74.370] (II) NVIDIA(0): Creating default Display subsection in Screen section
        "nvidia" for depth/fbbpp 24/32
[    74.370] (==) NVIDIA(0): Depth 24, (==) framebuffer bpp 32
[    74.370] (==) NVIDIA(0): RGB weight 888
[    74.370] (==) NVIDIA(0): Default visual is TrueColor
[    74.370] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[    74.370] (II) Applying OutputClass "nvidia" options to /dev/dri/card1
[    74.370] (II) Applying OutputClass "Nvidia Prime" options to /dev/dri/card1
[    74.371] (**) NVIDIA(0): Option "ConstrainCursor" "off"
[    74.371] (**) NVIDIA(0): Option "AllowEmptyInitialConfiguration" "on"
[    74.371] (**) NVIDIA(0): Option "IgnoreDisplayDevices" "CRT"
[    74.371] (**) NVIDIA(0): Enabling 2D acceleration
[    74.466] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:1:0:0
[    74.466] (--) NVIDIA(0):     CRT-0 (boot)
[    74.469] (II) NVIDIA(0): NVIDIA GPU GeForce GT 630M (GF108) at PCI:1:0:0 (GPU-0)
[    74.469] (--) NVIDIA(0): Memory: 1048576 kBytes
[    74.469] (--) NVIDIA(0): VideoBIOS: 70.08.a8.00.4f
[    74.469] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[    74.471] (--) NVIDIA(GPU-0): CRT-0: connected
[    74.471] (--) NVIDIA(GPU-0): CRT-0: 400.0 MHz maximum pixel clock
[    74.471] (--) NVIDIA(GPU-0):
[    74.481] (==) NVIDIA(0):
[    74.481] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[    74.481] (==) NVIDIA(0):     will be used as the requested mode.
[    74.481] (==) NVIDIA(0):
[    74.481] (II) NVIDIA(0): Validated MetaModes:
[    74.481] (II) NVIDIA(0):     "CRT-0:nvidia-auto-select"
[    74.481] (II) NVIDIA(0): Virtual screen size determined to be 1024 x 768
[    74.497] (WW) NVIDIA(0): CRT-0 does not have an EDID, or its EDID does not contain a
[    74.497] (WW) NVIDIA(0):     maximum image size; cannot compute DPI from CRT-0's EDID.
[    74.497] (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default

I discovered my /etc/X11/xorg.conf file was missing, and copied a backup back in, which is where the Option "IgnoreDisplayDevices" "CRT" line above came from. That wasn't there before, but adding it and rebooting didn't help. Also, OutputClass "Nvidia Prime" seems to have been added by a new file, /usr/share/X11/xorg.conf.d/11-nvidia-prime.conf:

# DO NOT EDIT. AUTOMATICALLY GENERATED BY gpu-manager

Section "OutputClass"
    Identifier "Nvidia Prime"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "IgnoreDisplayDevices" "CRT"
    Option "PrimaryGPU" "Yes"
    ModulePath "/x86_64-linux-gnu/nvidia/xorg"
EndSection

That ModulePath doesn't exist. I added the Options "IgnoreDisplayDevices" "CRT" and "PrimaryGPU" "Yes", copied from my existing 10-nvidia.conf file, but again this had no effect.

Should i manually add a Display section to xorg.conf? What should be in it? I am currently unable to login to an X session as any other user, or choose a different session (ubuntu, gnome, etc.)

0

Answering my own question here after some more research, in case anyone else runs into a similar problem...

xrandr --output LVDS-1-1 --primary --dpi 96 provided a temporary fix for the display problem after logging in. It had apparently defaulted to 75 dpi. This didn't persist after logging out, though.

According to this

https://download.nvidia.com/XFree86/Linux-x86_64/396.51/README/xconfigoptions.html

The "IgnoreDisplayDevices" "CRT" option belongs in either the Screen or Device section of an xorg.conf file. This, as well as Option "UseDisplayDevice" "DFP", and a subsequent reboot (restarting gdm3 alone wasn't enough) seem to have fixed the display problem at boot. Not sure if both were necessary, or if there's a more "correct" fix, but this worked.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.