Comment 0 for bug 1882422

Revision history for this message
Dmitry (dmitry216) wrote : xorg fails to load nvidia driver on switching to greeter

System:
- Xubuntu 18.04.4, signle seat, single monitor
- NVidia 1050ti driver 435.21
- lightdm 1.26.0
- slick-greeter

Scenario 1: No xorg.conf. I use 'light-locker-command --lock' or 'dm-tool --lock' or 'dm-tool switch-to-greeter', screen goes black with blinking cursor at top left corner. No keyboard response, only power reset helps.

Scenario 2: xorg.conf generated with nvidia tool. After attempting to lock screen same blinking cursor appears, but now if I press Alt-F7 it stops blinking, then Ctrl-Alt-F1, login, sudo systemctl restart lightdm and it's alive and loginable again.

In the lightdm.log I see repeating sequence (approx 5 times a second):

[+61.67s] DEBUG: Seat seat0: Creating greeter session
[+61.67s] DEBUG: Seat seat0: Creating display server of type x
[+61.67s] DEBUG: Using VT 8
[+61.67s] DEBUG: Seat seat0: Starting local X display on VT 8
[+61.67s] DEBUG: XServer 1: Logging to /var/log/lightdm/x-1.log
[+61.67s] DEBUG: XServer 1: Writing X server authority to /var/run/lightdm/root/:1
[+61.67s] DEBUG: XServer 1: Launching X Server
[+61.67s] DEBUG: Launching process 3301: /usr/bin/X -core :1 -seat seat0 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
[+61.67s] DEBUG: XServer 1: Waiting for ready signal from X server :1
[+61.96s] DEBUG: Process 3301 terminated with signal 6
[+61.96s] DEBUG: XServer 1: X server stopped
[+61.96s] DEBUG: Releasing VT 8
[+61.96s] DEBUG: XServer 1: Removing X server authority /var/run/lightdm/root/:1
[+61.96s] DEBUG: Seat seat0: Display server stopped
[+61.96s] DEBUG: Seat seat0: Stopping session
[+61.96s] DEBUG: Seat seat0: Session stopped
[+61.96s] DEBUG: Seat seat0: Stopping display server, no sessions require it
[+61.96s] DEBUG: Seat seat0: Active display server stopped, starting greeter

x-1.log says:

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.4.0-148-generic x86_64 Ubuntu
Current Operating System: Linux dmitry-desktop 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-101-generic root=UUID=7f607ead-1d84-40ec-a3b6-3b78b946bb03 ro noquiet nosplash
Build Date: 03 June 2019 08:10:35AM
xorg-server 2:1.19.6-1ubuntu4.3 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.34.0
 Before reporting problems, check http://wiki.x.org
 to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
 (++) from command line, (!!) notice, (II) informational,
 (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.1.log", Time: Fri Jun 5 15:46:42 2020
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
vesa: Ignoring device with a bound kernel driver
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
  at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.

Xorg.1.log says:
...
[ 129.447] (II) LoadModule: "nvidia"
[ 129.447] (WW) Warning, couldn't open module nvidia
[ 129.447] (II) UnloadModule: "nvidia"
[ 129.447] (II) Unloading nvidia
[ 129.447] (EE) Failed to load module "nvidia" (module does not exist, 0)
[ 129.447] (==) Matched nouveau as autoconfigured driver 0
[ 129.447] (==) Matched modesetting as autoconfigured driver 1
[ 129.447] (==) Matched fbdev as autoconfigured driver 2
[ 129.447] (==) Matched vesa as autoconfigured driver 3
[ 129.447] (==) Assigned the driver to the xf86ConfigLayout
[ 129.447] (II) LoadModule: "nouveau"
...

In my case solution was to add following to xorg.conf to make Xorg load proper nvidia driver:

Section "Files"
 ModulePath "/usr/lib/xorg/modules,/usr/lib/x86_64-linux-gnu/nvidia/xorg/"
EndSection

I'm not sure which package is responsible for that configuration and how it is done within modern approach, but I think things like this must be done automatically by one of nvidia drivers package (xserver-xorg-video-nvidia-435 for example).

Originla discussion: https://github.com/canonical/lightdm/issues/103