Installing CUDA 10.2 breaks Paraview and desktop session with Ubuntu 16.04

Intentions

I wanted to install Nsight Eclipse in a computer running on Ubuntu 16.04 LTS without an Nvidia graphics card. This is after the sheer convenience to keep on editing and compiling mixed C++/CUDA code on this computer. Also note that the CUDA version supported by this Ubuntu release (upgrades positively not planned for the moment) is lower than 10, which I would have for compatibility with other machines. So I managed to install the appropriate deb package Cuda 10.2, following the installation guideline. I could launch Nsight and get the appropriate nvcc --version from the command line.

Unexpected

However, within the same desktop session, I could not start Paraview 5.4.1 that had run spotlessly ever since; the stderr was a curt aborted-core-dumped-suchlike.

More disruptive was that, firstly, logging out of the Unity session threw another crash report for /usr/bin/unity-control-center and, secondly, that I could not log in again in the desktop environment, for any user in the same machine. The greeter was badly rendered while checking the disks and, after accepting the (right) password, it looped back to the welcome screen. Conveniently, I could log in in the terminals and tackle the matter.

So I first uninstalled the CUDA toolkit with sudo apt remove --purge *cublas* cuda *nvidia* as indicated in section 11 of the Linux Installation guide. And effectively all did come back to normal, so CUDA had made a difference in the negative.

Looking into the two crash reports stored in /var/crash I could parse them to a certain extent only. Nonetheless I got these pieces of information. In time order of crash occurrence.

The Paraview crash

My Paraview 5.4.1 is the precompiled binaries, postpended Qt5-OpenGL2-MPI-Linux, downloadble from their site. I could not extract as much information from the core dump as for Unity. Nonetheless, the list of cuda/nvidia related lines in the crash log is

/usr/lib/nvidia-440/libGLdispatch.so.0
/usr/lib/nvidia-440/libGL.so.1.7.0
/usr/lib/nvidia-440/libGLX_nvidia.so.440.33.01
/usr/lib/nvidia-440/libGLX.so.0
/usr/lib/nvidia-440/libnvidia-glcore.so.440.33.01
/usr/lib/nvidia-440/tls/libnvidia-tls.so.440.33.01

So I presume that their being in place must have troubled Paraview.

The unity-control-center crash

The core was generated by “unity-control-center sound”. The offending messages are

E: You must put some ‘source’ URIs in your sources.list
gpgv: Signature made vr 01 dec 2017 00:13:31 CET using RSA key ID …
gpgv: Can’t check signature: public key not found
dpkg-source: warning: failed to verify signature on /tmp/tmpkblyZg/unity-control-center_15.04.0+16.04.20171130-0ubuntu1.dsc

The E:message is possibly that situation in which one has to comment in a src repository line in a file in /etc/apt/source.list. Having already uninstalled the CUDA toolkit I cannot tell whether some cuda-related src repository could have been commented in. Did I oversee that I had to do this? Anyhow, for both the prior and the current list of repositories, all src repos are commented out, and all works. Also, there is some linkage between Unity and apt, as far I can see.

The following is the list of nvidia and cuda related terms found in the crash log; are these libraries that might have contributed to the crash?

/usr/lib/x86_64-linux-gnu/libicudata.so.55.1
/usr/lib/nvidia-440/libEGL_nvidia.so.440.33.01
/usr/lib/nvidia-440/libEGL.so.440.33.01
/usr/lib/nvidia-440/libGLdispatch.so.0
/usr/lib/nvidia-440/libGLESv2.so.2.1.0
/usr/lib/nvidia-440/libGL.so.1.7.0
/usr/lib/nvidia-440/libGLX_nvidia.so.440.33.01
/usr/lib/nvidia-440/libGLX.so.0
/usr/lib/nvidia-440/libnvidia-eglcore.so.440.33.01
/usr/lib/nvidia-440/libnvidia-egl-wayland.so.1.1.4
/usr/lib/nvidia-440/libnvidia-glcore.so.440.33.01
/usr/lib/nvidia-440/libnvidia-glsi.so.440.33.01
/usr/lib/nvidia-440/tls/libnvidia-tls.so.440.33.01

Questions

The original objective stands: I would like to edit and compile code with Nsight on this computer. Is it possible to steer the installation of CUDA 10, or a stripped version thereof, so that I does not disrupt the other applications? Guidance on how to do that is much appreciated. If ths is altogether impossible, it is good to know.

Diagnose

The nvidia-440 drivers clearly offend the system. The command
ubuntu-drivers devices
shows that the recommended driver is nvidia-340.

Indeed during the installation of cuda-10.2 there was a message

The following packages will be REMOVED
libcuda1-340 nvidia-340 nvidia-opencl-icd-340

and later on

*****************************************************************************
*** Reboot your computer and verify that the NVIDIA graphics driver can
*** be loaded.
*****************************************************************************

Apparently it couldn’t. Indeed, empty entry in the ‘configuration’ line out of
sudo lshw -c video
checked from tty console, hinted at this.

Action

I have reinstalled nvidia-340 then with
sudo apt install nvidia-340
The programme is

The following packages will be REMOVED:
cuda cuda-10-2 cuda-demo-suite-10-2 cuda-drivers cuda-runtime-10-2 nvidia-440 nvidia-440-dev
The following NEW packages will be installed:
nvidia-340

Result

  • Bootstrap goes fine
  • Greeter, login and desktop are fine
  • nvcc --version and nvidia-smi respond as expected
  • I launch both Nsight and Paraview

Hope that the rest will be fine as well. Basically, for me: follow the general instructions and downgrade the nvidia driver to the version supported by your graphics device. Possibly I had missed this in the Post InstallationActions; if I did, directions are most welcome. General remarks as well.