I added the graphics-drivers PPA and installed the 415 driver, but it seemed that in doing so my 940MX was no longer being utilised. So, I attempted to revert to the 390. I made the mistake of removing the PPA before switching away, though. When I tried to switch back to the 390 driver, Ubuntu spat out an error - I can't remember the exact message, though I believe it mentioned something not being found in cache.
After restarting my system, the boot process got stuck on a screen flooded with countless "Starting NVIDIA persistence daemon" and "Stopping NVIDIA persistence daemon" messages. To get the system to boot, I had to enter recovery mode and use
prime-select intel. If I use the Nouveau driver the system can boot, but my laptop doesn't seem to use my GPU.
nvidia-smi produces the following:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
I followed the advice here, but it unfortunately didn't help. I've attempted to remove any remnants that the 415 driver may have left behind. Initially I looked this thread, but regarding the page linked by it the directory
/usr/local/cuda-X.Y does not exist (as in, theres no cuda-related directory), and the link
/usr/bin/nvidia-uninstall points to
nvidia-installer, but that doesn't exist. So, I removed the packages as recommended in accordance with this answer. I then set the driver to NVIDIA's 390 in the software settings, so it re-installed everything. Still, restarting with the NVIDIA GPU selected stops me from being able to boot.
The result of
dpkg -l | grep nvidia at the time of writing is the following:
ii libnvidia-cfg1-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA binary OpenGL/GLX configuration library ii libnvidia-common-390 390.87-0ubuntu0~gpu18.04.1 all Shared files used by the NVIDIA libraries ii libnvidia-compute-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA libcompute package ii libnvidia-compute-390:i386 390.77-0ubuntu0.18.04.1 i386 NVIDIA libcompute package ii libnvidia-decode-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA Video Decoding runtime libraries ii libnvidia-decode-390:i386 390.77-0ubuntu0.18.04.1 i386 NVIDIA Video Decoding runtime libraries ii libnvidia-encode-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVENC Video Encoding runtime library ii libnvidia-encode-390:i386 390.77-0ubuntu0.18.04.1 i386 NVENC Video Encoding runtime library ii libnvidia-fbc1-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library ii libnvidia-fbc1-390:i386 390.77-0ubuntu0.18.04.1 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library ii libnvidia-gl-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD ii libnvidia-gl-390:i386 390.77-0ubuntu0.18.04.1 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD ii libnvidia-ifr1-390:amd64 390.77-0ubuntu0.18.04.1 amd64 NVIDIA OpenGL-based Inband Frame Readback runtime library ii libnvidia-ifr1-390:i386 390.77-0ubuntu0.18.04.1 i386 NVIDIA OpenGL-based Inband Frame Readback runtime library ii nvidia-compute-utils-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA compute utilities ii nvidia-dkms-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA DKMS package ii nvidia-driver-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA driver metapackage ii nvidia-kernel-common-390 390.87-0ubuntu0~gpu18.04.1 amd64 Shared files used with the kernel module ii nvidia-kernel-source-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA kernel source package ii nvidia-prime 0.8.8.2 all Tools to enable NVIDIA's Prime ii nvidia-settings 390.77-0ubuntu0.18.04.1 amd64 Tool for configuring the NVIDIA graphics driver ii nvidia-utils-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA driver support binaries ii xserver-xorg-video-nvidia-390 390.77-0ubuntu0.18.04.1 amd64 NVIDIA binary Xorg driver