4

I'm having trouble downgrading my nvidia drivers from 396 to 390. If I purge all of the nvidia drivers, then do sudo apt install nvidia-driver-390 it still installs the 396 version. Is there any way to force it to install the older version?

I've tried sudo apt install nvidia-driver-390=390.59-0ubuntu0~gpu18.04.1, but that gives me the following error:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 nvidia-driver-390 : Depends: libnvidia-gl-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: nvidia-dkms-390 (= 390.59-0ubuntu0~gpu18.04.1)
                     Depends: nvidia-kernel-source-390 (= 390.59-0ubuntu0~gpu18.04.1)
                     Depends: libnvidia-compute-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: nvidia-compute-utils-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: libnvidia-decode-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: libnvidia-encode-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: nvidia-utils-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: xserver-xorg-video-nvidia-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: libnvidia-cfg1-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: libnvidia-ifr1-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Depends: libnvidia-fbc1-390 (= 390.59-0ubuntu0~gpu18.04.1) but 396.24-0ubuntu1~pop1 is to be installed
                     Recommends: nvidia-settings but it is not going to be installed
                     Recommends: nvidia-prime (>= 0.8)
                     Recommends: libnvidia-compute-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
                     Recommends: libnvidia-decode-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
                     Recommends: libnvidia-encode-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
                     Recommends: libnvidia-ifr1-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
                     Recommends: libnvidia-fbc1-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
                     Recommends: libnvidia-gl-390:i386 (= 390.59-0ubuntu0~gpu18.04.1)
E: Unable to correct problems, you have held broken packages.

Is there some way of telling it to use the older versions of the dependencies?

It's becoming very frustrating as the 396 drivers appear to be causing problems with any games I have installed, whereas the 390 worked fine, but I can't seem to rollback and no option for the older version appear in the Software/Updates app either.

Thanks

Update:

As requested, here's the output of apt policy nvidia-390 following installation via PPA:

nvidia-390:
  Installed: 390.67-0ubuntu0~gpu18.04.1
  Candidate: 390.67-0ubuntu0~gpu18.04.1
  Version table:
 *** 390.67-0ubuntu0~gpu18.04.1 500
        500 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status

Also, here's the output from the actual installation (sudo apt install nvidia-390):

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dkms libnvidia-cfg1-396 libnvidia-common-396 libnvidia-compute-396
  libnvidia-compute-396:i386 libnvidia-decode-396 libnvidia-decode-396:i386
  libnvidia-encode-396 libnvidia-encode-396:i386 libnvidia-fbc1-396
  libnvidia-fbc1-396:i386 libnvidia-gl-396 libnvidia-gl-396:i386
  libnvidia-ifr1-396 libnvidia-ifr1-396:i386 libxnvctrl0
  nvidia-compute-utils-396 nvidia-dkms-396 nvidia-driver-390 nvidia-driver-396
  nvidia-kernel-common-396 nvidia-kernel-source-396 nvidia-prime
  nvidia-settings nvidia-utils-396 screen-resolution-extra
  xserver-xorg-video-nvidia-396
Suggested packages:
  menu
The following NEW packages will be installed
  dkms libnvidia-cfg1-396 libnvidia-common-396 libnvidia-compute-396
  libnvidia-compute-396:i386 libnvidia-decode-396 libnvidia-decode-396:i386
  libnvidia-encode-396 libnvidia-encode-396:i386 libnvidia-fbc1-396
  libnvidia-fbc1-396:i386 libnvidia-gl-396 libnvidia-gl-396:i386
  libnvidia-ifr1-396 libnvidia-ifr1-396:i386 libxnvctrl0 nvidia-390
  nvidia-compute-utils-396 nvidia-dkms-396 nvidia-driver-390 nvidia-driver-396
  nvidia-kernel-common-396 nvidia-kernel-source-396 nvidia-prime
  nvidia-settings nvidia-utils-396 screen-resolution-extra
  xserver-xorg-video-nvidia-396
0 to upgrade, 28 to newly install, 0 to remove and 0 not to upgrade.
Need to get 16.1 kB/88.7 MB of archives.
After this operation, 365 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ppa.launchpad.net/system76/pop/ubuntu bionic/main amd64 nvidia-driver-390 amd64 396.24-0ubuntu1~pop1 [8,072 B]
Get:2 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic/main amd64 nvidia-390 amd64 390.67-0ubuntu0~gpu18.04.1 [8,044 B]
Fetched 16.1 kB in 0s (85.5 kB/s)     
Selecting previously unselected package dkms.
(Reading database ... 287858 files and directories currently installed.)
Preparing to unpack .../00-dkms_2.3-3ubuntu9.1_all.deb ...
Unpacking dkms (2.3-3ubuntu9.1) ...
Selecting previously unselected package libnvidia-cfg1-396:amd64.
Preparing to unpack .../01-libnvidia-cfg1-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-cfg1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-common-396.
Preparing to unpack .../02-libnvidia-common-396_396.24.02-0ubuntu0~gpu18.04.1_all.deb ...
Unpacking libnvidia-common-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-compute-396:i386.
Preparing to unpack .../03-libnvidia-compute-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
Unpacking libnvidia-compute-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-compute-396:amd64.
Preparing to unpack .../04-libnvidia-compute-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-compute-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-decode-396:i386.
Preparing to unpack .../05-libnvidia-decode-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
Unpacking libnvidia-decode-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-decode-396:amd64.
Preparing to unpack .../06-libnvidia-decode-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-decode-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-encode-396:amd64.
Preparing to unpack .../07-libnvidia-encode-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-encode-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-encode-396:i386.
Preparing to unpack .../08-libnvidia-encode-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
Unpacking libnvidia-encode-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-fbc1-396:i386.
Preparing to unpack .../09-libnvidia-fbc1-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
Unpacking libnvidia-fbc1-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-fbc1-396:amd64.
Preparing to unpack .../10-libnvidia-fbc1-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-fbc1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-gl-396:i386.
Preparing to unpack .../11-libnvidia-gl-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
dpkg-query: no packages found matching libnvidia-gl-390
Unpacking libnvidia-gl-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-gl-396:amd64.
Preparing to unpack .../12-libnvidia-gl-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
dpkg-query: no packages found matching libnvidia-gl-390
Unpacking libnvidia-gl-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-ifr1-396:i386.
Preparing to unpack .../13-libnvidia-ifr1-396_396.24.02-0ubuntu0~gpu18.04.1_i386.deb ...
Unpacking libnvidia-ifr1-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libnvidia-ifr1-396:amd64.
Preparing to unpack .../14-libnvidia-ifr1-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libnvidia-ifr1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package libxnvctrl0:amd64.
Preparing to unpack .../15-libxnvctrl0_396.24-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking libxnvctrl0:amd64 (396.24-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-kernel-source-396.
Preparing to unpack .../16-nvidia-kernel-source-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-kernel-source-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-kernel-common-396.
Preparing to unpack .../17-nvidia-kernel-common-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-kernel-common-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-dkms-396.
Preparing to unpack .../18-nvidia-dkms-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-dkms-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-compute-utils-396.
Preparing to unpack .../19-nvidia-compute-utils-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-compute-utils-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-utils-396.
Preparing to unpack .../20-nvidia-utils-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-utils-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package xserver-xorg-video-nvidia-396.
Preparing to unpack .../21-xserver-xorg-video-nvidia-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking xserver-xorg-video-nvidia-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-driver-396.
Preparing to unpack .../22-nvidia-driver-396_396.24.02-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-driver-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-driver-390.
Preparing to unpack .../23-nvidia-driver-390_396.24-0ubuntu1~pop1_amd64.deb ...
Unpacking nvidia-driver-390 (396.24-0ubuntu1~pop1) ...
Selecting previously unselected package nvidia-390.
Preparing to unpack .../24-nvidia-390_390.67-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-390 (390.67-0ubuntu0~gpu18.04.1) ...
Selecting previously unselected package nvidia-prime.
Preparing to unpack .../25-nvidia-prime_0.8.8_all.deb ...
Unpacking nvidia-prime (0.8.8) ...
Selecting previously unselected package screen-resolution-extra.
Preparing to unpack .../26-screen-resolution-extra_0.17.3_all.deb ...
Unpacking screen-resolution-extra (0.17.3) ...
Selecting previously unselected package nvidia-settings.
Preparing to unpack .../27-nvidia-settings_396.24-0ubuntu0~gpu18.04.1_amd64.deb ...
Unpacking nvidia-settings (396.24-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-fbc1-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-fbc1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-prime (0.8.8) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Setting up libnvidia-cfg1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3) ...
Setting up nvidia-kernel-common-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
update-initramfs: deferring update (trigger activated)
Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-fallback.service → /lib/systemd/system/nvidia-fallback.service.
Setting up xserver-xorg-video-nvidia-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-kernel-source-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-common-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up dkms (2.3-3ubuntu9.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Setting up screen-resolution-extra (0.17.3) ...
Setting up libnvidia-compute-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-compute-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-dkms-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
update-initramfs: deferring update (trigger activated)
INFO:Enable nvidia
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
Loading new nvidia-396.24.02 DKMS files...
Building for 4.15.0-23-generic
Building for architecture x86_64
Building initial module for 4.15.0-23-generic
Secure Boot not enabled on this system.
Done.

nvidia:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-23-generic/updates/dkms/

nvidia-modeset.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-23-generic/updates/dkms/

nvidia-drm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-23-generic/updates/dkms/

nvidia-uvm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.15.0-23-generic/updates/dkms/

depmod...

DKMS: install completed.
Processing triggers for man-db (2.8.3-2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1) ...
Processing triggers for dbus (1.12.2-1ubuntu1) ...
Setting up libxnvctrl0:amd64 (396.24-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-decode-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-decode-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-utils-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-settings (396.24-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-gl-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-gl-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-compute-utils-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Warning: The home dir /nonexistent you specified can't be accessed: No such file or directory
Adding system user `nvidia-persistenced' (UID 103) ...
Adding new group `nvidia-persistenced' (GID 105) ...
Adding new user `nvidia-persistenced' (UID 103) with group `nvidia-persistenced' ...
Not creating home directory `/nonexistent'.
Setting up libnvidia-ifr1-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-ifr1-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-encode-396:amd64 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up libnvidia-encode-396:i386 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-driver-396 (396.24.02-0ubuntu0~gpu18.04.1) ...
Setting up nvidia-driver-390 (396.24-0ubuntu1~pop1) ...
Setting up nvidia-390 (390.67-0ubuntu0~gpu18.04.1) ...
Processing triggers for initramfs-tools (0.130ubuntu3pop2) ...
update-initramfs: Generating /boot/initrd.img-4.15.0-23-generic
Processing triggers for libc-bin (2.27-3ubuntu1) ...

and finally, the output from glxinfo | egrep "version":

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.6.0 NVIDIA 396.24.02
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 396.24.02
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 396.24.02
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix,
  • You have to totally purge before instaling new nVidia driver. list drivers available, same list as system settings, software updates, additional drivers or last tab ubuntu-drivers devices Mine is a bit older card an it only shows 390 & 340. did you also add the ppa for newest drivers? Did you only install from Ubuntu repository, not directly from nVidia? askubuntu.com/questions/1026179/how-to-install-a-gtx-1060 & askubuntu.com/questions/61396/… – oldfred Jun 7 '18 at 12:17
  • I have purged all the old drivers, and am using the PPA. I managed to get it to install eventually using aptitude instead of regular apt, but then I ran into problems with black screens after login. Annoyingly I didn't have that issue before with the older drivers. I'm beginning to think Bionic is a total disaster---I've had nothing but problems since I installed it. – Dylan Parry Jun 7 '18 at 12:27
  • Have you tried downloading the driver from the NVIDIA web page and installing it manually? I just had to go through that process for a much older driver - 304 - which is the only one that manages the temperature properly on an old laptop I have running Bionic. I did eventually get it to work. – Organic Marble Jun 7 '18 at 12:30
  • @OrganicMarble I haven't tried that, but will do so now. Thanks. – Dylan Parry Jun 7 '18 at 12:33
  • Here is a page that was helpful to me when I did it. You can ignore the patch steps, that was specific to the 304 driver. One thing this page leaves out is the necessity to kill the x session before running the install script. adufray.com/blog/2018/06/02/nvidia-304-127-on-bionic – Organic Marble Jun 7 '18 at 13:26
2

You can't install the 390 version of Nvidia drivers from Ubuntu repos, because the nvidia-390 package pulls the 396 drivers.

But the good news is that you can install the 390 driver from ppa:graphics-drivers/ppa

Run

sudo apt purge 'nvidia.*'
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-390
  • I've followed this, but still end up with 396 installed. If I do apt-cache showpkg nvidia-390 it shows that 390.67 is the latest version available, and that it is from the PPA, but when I install it I still get 396.24. Any ideas? – Dylan Parry Jun 8 '18 at 19:31
  • Please add output of apt policy nvidia-390 TO YOUR QUESTION. – Pilot6 Jun 8 '18 at 19:44
  • I've added that, and also the output from the actual installation and glxinfo showing that it's still using 396. – Dylan Parry Jun 8 '18 at 19:53
  • You probably installed a driver without using apt form a .run file. – Pilot6 Jun 8 '18 at 19:54
  • 1
    I think what's happened is that I have another PPA that is conflicting with it. I just noticed from the output of apt policy nvidia-driver-390 that it was getting the 396 driver via the System76 Pop Theme's PPA, although why on Earth it was doing that when it's only supposed to be a theme, I don't know. I have removed that PPA and it seems to be installing correctly now. – Dylan Parry Jun 8 '18 at 21:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.