2

When trying to install nvidia proprietary driver on my 20.04 LTS host I ran into a problem that it would not install when using DKMS. It complained about mismatach between gcc version used for the kernel (9.3.0) and current gcc version (9.4.0). The problem occurred after upgrading to the latest kernel version. When running gcc --version it reports 9.4.0 but apt show gcc reports 9.3.0.

gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0

apt show gcc Package: gcc Version: 4:9.3.0-1ubuntu2

lsb_release -a LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal

uname -a Linux xenon 5.4.0-104-generic #118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

It seems to me that the problem is that the gcc package is 9.3.0 as shown by apt but reports 9.4.0.

Any suggestions ?


As said in a comment I cant see older gcc version. My sources.list file may be the problem ? It looks like this :

###### Ubuntu Main Repos
deb http://archive.ubuntu.com/ubuntu/ focal main restricted multiverse universe
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted multiverse universe
###### Ubuntu Update Repos
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted multiverse universe
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted multiverse universe
deb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted multiverse universe
deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted multiverse universe
Zanna
  • 70,465

1 Answers1

0

I was able to bypass this problem by temporarily downgrading gcc to 9.3, then I could compile the nVidia driver:

Using aptitude, I downgraded and then held g++-9, which automatically held its related packages. You could also use "apt-mark hold" if you prefer it.

Here are the packages that are now temporarily in a held state on my system:

[HOLD, DEPENDENCIES] cpp-9:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] g++-9:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] gcc-9:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] gcc-9-base:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] libasan5:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] libgcc-9-dev:amd64 9.3.0-10ubuntu2
[HOLD, DEPENDENCIES] libstdc++-9-dev:amd64 9.3.0-10ubuntu2

Once new kernels for your system are compiled with gcc 9.4 (i.e., use:

cat /proc/version

to check) or when you no longer need to recompile the nVidia driver, you should be able to release the held 9.4 gcc upgrades and install them on your system.

EDIT: Per your request, here is an /etc/apt/sources.list you can use:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted

Major bug fix updates produced after the final release of the

distribution.

deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted deb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted

N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu

team. Also, please note that software in universe WILL NOT receive any

review or updates from the Ubuntu security team.

deb http://archive.ubuntu.com/ubuntu/ focal universe deb-src http://archive.ubuntu.com/ubuntu/ focal universe deb http://archive.ubuntu.com/ubuntu/ focal-updates universe deb-src http://archive.ubuntu.com/ubuntu/ focal-updates universe

N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu

team, and may not be under a free licence. Please satisfy yourself as to

your rights to use the software. Also, please note that software in

multiverse WILL NOT receive any review or updates from the Ubuntu

security team.

deb http://archive.ubuntu.com/ubuntu/ focal multiverse deb-src http://archive.ubuntu.com/ubuntu/ focal multiverse deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse deb-src http://archive.ubuntu.com/ubuntu/ focal-updates multiverse

N.B. software from this repository may not have been tested as

extensively as that contained in the main release, although it includes

newer versions of some applications which may provide useful features.

Also, please note that software in backports WILL NOT receive any review

or updates from the Ubuntu security team.

deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu focal-security main restricted deb-src http://security.ubuntu.com/ubuntu focal-security main restricted deb http://security.ubuntu.com/ubuntu focal-security universe deb-src http://security.ubuntu.com/ubuntu focal-security universe deb http://security.ubuntu.com/ubuntu focal-security multiverse deb-src http://security.ubuntu.com/ubuntu focal-security multiverse

Please give aptitude a try. There is a manual and there are tutorials available on the web.

Sam
  • 851
  • That sounds great, but I dont know how to downgrade it ? Could you post the procedure please ? – storestyggeulv Mar 14 '22 at 02:45
  • I recommend using aptitude, because it offers kind of a command line gui. See the animation partway down in this answer for example: https://askubuntu.com/questions/900536/how-do-i-use-aptitude-to-downgrade-force-version-of-a-package – Sam Mar 14 '22 at 17:51
  • Aptitude should handle the dependencies for you automatically, – Sam Mar 14 '22 at 17:54
  • You can also try apt (which may not automatically handle dependencies as well). See this answer: https://askubuntu.com/questions/138284/how-to-downgrade-a-package-via-apt-get – Sam Mar 14 '22 at 17:57
  • Whether you use aptitude or apt, don't blindly accept the default actions (for example, if too many packages look like they'll be downloaded or removed) unless you check the list carefully. You want to end up with the downgraded and "held" list of packages shown in my original answer. – Sam Mar 14 '22 at 18:02
  • I have tried to follow the recommendations above. but the old gcc is simply not available it seems : – storestyggeulv Mar 14 '22 at 19:37