470.86 driver errors and installation issues

Since upgrading PoP_os (21.04 ubuntu) and Xanmod (5.15.6) via the Pop!_Shop recently. The computer has stopped recognizing the Nvidia drivers, and attempting to install any (even older versions) throws an error during the process. Completely purging drivers and reinstalling doesn’t help. Neither does reinstalling the kernel.

make.log (22.9 KB)
nvidia-bug-report.log.gz (156.2 KB)

470.83 or 470.86 ? 470.84 does not exist

Oups. Terribly sorry for that miss. It’s driver version 470.86

There are alot of issues with .86 driver

Hmm, that’s a big shame. Though, my issue isn’t that I get a black screen. Rather, it doesn’t communicate with the card at all and instead runs the integrated one. Also prevents the use of nvidia-smi and the like. Furthermore, purging and reinstalling doesn’t work as it fails on the build step.

Did you do a manual install ? If not i made a nice guide for pop os. You can try the 495.44 driver

clang: error: unknown argument: ‘-fconserve-stack’

check if the system default compiler is gcc and g++ using:

update-alternatives --query cc
update-alternatives --query c++

Followed your guide to the letter and didn’t work. Though it did give a warning that the drivers were already installed before throwing a dkms error relating to the kernel, which is very weird as I had purged them it several times before starting, and no nvidia components were left on the computer

Gives the following:

Name: cc
Link: /usr/bin/cc
cc.1.gz /usr/share/man/man1/cc.1.gz
Status: manual
Best: /usr/bin/clang
Value: /usr/bin/gcc

Alternative: /usr/bin/clang
Priority: 100

Alternative: /usr/bin/gcc
Priority: 20
cc.1.gz /usr/share/man/man1/gcc.1.gz
Name: c++
Link: /usr/bin/c++
c++.1.gz /usr/share/man/man1/c++.1.gz
Status: auto
Best: /usr/bin/clang
Value: /usr/bin/clang

Alternative: /usr/bin/clang
Priority: 100

Alternative: /usr/bin/clang++
Priority: 10

Alternative: /usr/bin/g++
Priority: 20
c++.1.gz /usr/share/man/man1/g++.1.gz

As implied, you need to use gcc and g++ to compile the nvidia module.
Currently clang is used.
Read man update-alternatives for the change.

Huh. But shouldn’t those be handled automatically by the system regardless?

No idea how to change it to default. Had to use clang for some project.

--set name path

so like:
update-alternatives --set cc /usr/bin/gcc
update-alternatives --set c++ /usr/bin/g++

Nope. Setting these and then trying to update, still results in the same errors.

Did you use --query to check for commands success?
You could also use --config name to set it interactively.

This really need to be reported to the Pop_OS! developers if you haven’t already done so - if there’s a packaging issue then they’re the ones who can fix it.