Nvidia drivers 390.77: no external display on Ubuntu 18.04 and Quadro M1000M

After recent update in Ubuntu 18.04 repositories of Nvidia drivers to 390.77 my external monitor stopped working. Previous minor version was ok. xranrd sees nothing too. Any suggestions?

Lenovo ThinkPad P50 with NVIDIA Quadro M1000M
Ubuntu 18.04 (4.15.0-36-generic), nvidia-390
nvidia-bug-report_libelf-fixed.log.gz (95.2 KB)
nvidia-bug-report_2.log.gz (91.8 KB)
nvidia-bug-report_3.log.gz (124 KB)
xorg.zip (9.51 KB)

Please run nvidia-bug-report.sh as root and attach the resulting .gz file to your post. Hovering the mouse over an existing post will reveal a paperclip icon.

Done

You’re currently switched to intel, please switch back to nvidia using
sudo prime-select nvidia
and reboot.

I’ve added the new log: nvidia-bug-report_2.log.gz
prime-select says:
Info: the nvidia profile is already set

In your first log, nouveau was loaded, in the second log now no driver is loaded for the nvidia gpu at all. Do you happen to have bumblebee installed?
Please run
sudo update-initramfs -u
reboot, check external output and post the output of
grep nvidia /etc/modprobe.d/*

No, I have no bumblebee installed:

$ apt list --installed bumble*
Listing... Done

Nothing changed after updating initramfs.

$ grep nvidia /etc/modprobe.d/*
/etc/modprobe.d/blacklist-framebuffer.conf:blacklist nvidiafb

There seems to be something wrong with the upgrade process in Ubuntu 18.04, this looks exactly like:
[url]https://devtalk.nvidia.com/default/topic/1032482/linux/optimus-on-ubuntu-18-04-is-a-step-backwards-but-i-found-the-first-good-solution/post/5288892/#5288892[/url]
To confirm, please post the output of
sudo modprobe nvidia

I’ve taken a look at the Ubuntu packages and I suspect that nvidia-prime got updated and is buggy. It also uses a new location for the blacklist files. Please check if the file
/lib/modprobe.d/blacklist-nvidia.conf
exists and delete it. Afterwards, run
sudo update-initramfs -u
and reboot.

I was looking at this topic yesterday. But my output was okay. Looks like after several reinstalls of drivers it broke even more.

$ sudo modprobe nvidia
modprobe: ERROR: ../libkmod/libkmod-module.c:832 kmod_module_insert_module() could not find module by name='off'
modprobe: ERROR: could not insert 'off': Unknown symbol in module, or unknown parameter (see dmesg)

Then I deleted the file, updated initramfs and rebooted – still doesn’t work. Output is the same

$ dmesg | grep nvidia
[   11.918826] nvidiafb 0000:01:00.0: enabling device (0004 -> 0007)
[   11.918923] nvidiafb: Device ID: 10de13b1 
[   11.918924] nvidiafb: unknown NV_ARCH

In case the file got renamed on upgrade, please doublecheck by running
grep nvidia /lib/modprobe.d/*
for the line
alias nvidia off
and delete the file that contains it.

Don’t delete the file
/etc/modprobe.d/blacklist-framebuffer.conf
containing
blacklist nvidiafb
this file is needed for the nvidia driver to work.

Okay, I’ve deleted the
/lib/modprobe.d/blacklist-nvidia.conf
and restored the
/etc/modprobe.d/blacklist-framebuffer.conf

Now Nvidia Settings show me some setting and “modprobe nvidia” outputs nothing.
Uploading new logs: nvidia-bug-report_3.log.gz

Also I have

$ grep nvidia /lib/modprobe.d/*
/lib/modprobe.d/nvidia-kms.conf:# This file was generated by nvidia-prime
/lib/modprobe.d/nvidia-kms.conf:options nvidia-drm modeset=1

Ok, the driver loads fine now, unfortunately, there’s no current xorg log contained in the nvidia log. Please run
sudo journalctl -b 0 --no-pager _COMM=gdm-x-session >xorg.log
and attach that.
The file /lib/modprobe.d/nvidia-kms.conf is correct, it’s for anti-tearing.

Done: xorg.zip

Ok, at least Prime is working now but the external outputs are not detected. I suspect this is due to gdm running in a wayland session. To check, please modify the file
/lib/modprobe.d/nvidia-kms.conf
and set
options nvidia-drm modeset=0
then run
sudo update-initramfs -u and reboot

“options nvidia-drm modeset” was set to 1. After setting it to 0 and rebooting, my external monitor is back online!

I’ve checked at login screen and I use X session, not Wayland. How could gdm be running in Wayland?

Thank you so much, generix!

I’ve read about KMS/DRM. So, it should be 1. And setting it to 0 doesn’t solve the problem, right?

nvidia-drm modeset=1 is needed for tear-free display but since this is enabling linux kms for the nvidia driver, gdm thinks it can use wayland. Having a parallel wayland session makes it somehow impossible for X to detect any outputs on the nvidia gpu. Can drive people insane.
See if it helps to disable wayland for gdm:
[url]xorg - How to disable wayland in 17.10 in gdm3 login screen - Ask Ubuntu
and then set nvidia-drm modeset=1 again to have a tear-free display.