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.
You’re currently switched to intel, please switch back to nvidia using
sudo prime-select nvidia
I’ve added the new log: nvidia-bug-report_2.log.gz
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?
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*
Nothing changed after updating initramfs.
$ grep nvidia /etc/modprobe.d/*
There seems to be something wrong with the upgrade process in Ubuntu 18.04, this looks exactly like:
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
exists and delete it. Afterwards, run
sudo update-initramfs -u
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
this file is needed for the nvidia driver to work.
Okay, I’ve deleted the
and restored the
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.
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
options nvidia-drm modeset=0
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.