I've had a comedy of video errors that all trace back to a kernel upgrade in Ubuntu 18.10 cosmic. The kernel 220.127.116.11.12 causes trouble, well, in every conceivable way and I can't quite understand why it works for anybody.
In case you have "black screen of death" at various phases, my suggestion is to resist advice to fiddle a lot with config for video or display manager. Instead, boot with older kernel to see if problems disappear. Hardest part for most users will be figuring how to make Ubuntu show a grub menu to choose a kernel (they've made that tricky, but have instructions: https://wiki.ubuntu.com/RecoveryMode).
The symptoms of the problem revolve around
- Black screen of death with message about rejection of PKS keys
- Unable to start display manager (gdm3 or lightdm)
- External monitors not recognized (by desktop programs or xrandr)
- Black screen of death on resume from suspend.
This is a Dell Precision 5510 laptop with Nvidia and Intel graphics:
*-display description: 3D controller product: GM107GLM [Quadro M1000M] vendor: NVIDIA Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a2 width: 64 bits clock: 33MHz capabilities: bus_master cap_list rom configuration: driver=nouveau latency=0 resources: irq:125 memory:dc000000-dcffffff memory:b0000000-bfffffff memory:c0000000-c1ffffff ioport:e000 *-display description: VGA compatible controller product: HD Graphics 530 vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 06 width: 64 bits clock: 33MHz capabilities: vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:126 memory:db000000-dbffffff memory:70000000-7fffffff ioport:f000(size=64) memory:c0000-dffff
I did not realize that the kernel update was at the heart of my trouble, I chased a lot of symptoms that pointed at the use of either gdm3 or lightdm as the display manager, then the Nvidia drivers, then modesetting, but in the end I conclude this particular kernel causes problems that I'm not able to solve. I'm back running the 4.18.10
The first symptom I saw was a failure to start. After the grub phase, I had black screen freeze-up with the message
PKCS#7 signature not signed with a trusted key
The system did not respond to Alt-Ctl-F2 or such, no VT was possible. Comments in this forum pointed the finger at the Nvidia drivers. In retrospect, this may be a gdm3 flaw, rather than Nvidia (Ubuntu 18.04 Boot hangs at PKCS#7 signature not signed with a trusted key, Ubutnu 18.04 - after upgrade - Display/PKCS#7 signature error). I never solved it.
I used the recovery login to clear out the Nvidia drivers and move xorg.conf out of the way. I'd run with the intel drivers.
After that, when gdm3 was the display manager, I came to black screen with just a single "_" showing top left on the screen. One suggestion was that gdm3 was trying to launch a Wayland session. I tried the fix to disable Wayland (gdm3 does not start in ubuntu 18.04), no help. Those posts suggest there is a way to make gdm3 work, but more posts recommend using lightdm instead.
So I changed display manager to lightdm. However, even after that, I had black screen of death after grub and I found advice about putting settings in the grub setup for nomodeset or enforce restrictions on nouveau. After a lot of fiddling around, the system would reach the login window. However, I saw 2 problems after that. The video would not resume after suspend (but I could log in with SSH) and external monitors were not detected (probably because of all the no mode setting steps I'd taken).
Not realizing that the mode settings were probably causing the external monitors to be ignored, I re-installed the nvidia drivers (hoping somehow the PKCS key issue would solve itself). That resulted in a black screen of death at startup, but Alt-Ctl-F2 did allow a VT so I could look at dmesg.
After a lot of restarts, I finally decided to try the older kernel, 4.18.0-10, and after that lightdm would start. Suspend would work. I had to remove all of the nomodesetting things I'd put into grub config (and re-run update-grub) in order to get external monitors to work. Also, in the nvidia file /lib/modprobe.d/nvidia-kms.conf, it had to be put back
# This file was generated by nvidia-prime # Set value to 0 to disable modesetting options nvidia-drm modeset=1
and initramfs had to be executed.
I have found many sites and posts about video problems and they may offer helpful advice, but none of them helped me with kernel 18.104.22.168.12. I spent a couple of days chasing those fixes, but wish I had just tested the older kernel first.
My suggestion if that if an update in the kernel occurs, and you start to have black screen or other video problems, be a bit patient with trying to bugshoot those things in the usual way. Run the older kernel to see if it works, and if it does, use it and be happy until the new kernel's problems get worked by the experts.
The only "video fix" that I've learned is--absolutely for sure-- valuable is to remove 2 lines from /etc/environment. I don't know for sure how these lines were inserted in there, but it happened in a previous version of Ubuntu (either by a package like gnome-wobbly-windows or by my manual effort to fix screen tearing in 2017). These last 2 lines in /etc/environment about CLUTTER need to be commented out (or deleted entirely):
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" ## CLUTTER_PAINT=disable-clipped-redraws:disable-culling ## CLUTTER_VBLANK=True
If you don't make that change, then video inside Ubuntu Gnome desktop with nvidia drivers is fragmented and choppy. Those 2 lines were, so far as I can tell, inserted by some special-effects packages in older Ubuntu (maybe 17.10) and they were causing lots of trouble for me only with Gnome, but not with XFCE4. Because the problem appeared only in Gnome, I knew it was not an Nvidia problem. (Graphics problem on Ubuntu 18.04 - blurred text + screen flickering)
About troubleshooting with the new kernel: I'm willing to try again, but I want somebody to give advice about whether it is useful to even try and what is the best way to go about it.