NVIDIA-Linux-x86_64-304.137.run fails on centos 7 latest update

I just updated my centos 7
system and tried to install the nvidia driver and it failed. Has worked fine prior to the update.

Linux wdcentos72 3.10.0-862.3.3.el7.x86_64 #1 SMP Fri Jun 15 04:15:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Here is the nvidia-install.log file showing the problem.

Does anyone else have this issue?

cat nvidia-installer.log
nvidia-installer log file ‘/var/log/nvidia-installer.log’
creation time: Mon Jun 25 18:16:54 2018
installer version: 304.137

PATH: /root/perl5/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

nvidia-installer command line:
./nvidia-installer

Unable to load: nvidia-installer ncurses v6 user interface

Using: nvidia-installer ncurses user interface
→ Tagging shared libraries with chcon -t textrel_shlib_t.
→ License accepted.
→ Installing NVIDIA driver version 304.137.
→ There appears to already be a driver installed on your system (version: 304.137). As part of installing this driver (version: 304.137), the existing driver will be uninstalled. Are you sure you want to continue? (‘no’ will abort installation) (Answer: Yes)
→ Performing CC sanity check with CC=“cc”.
→ Performing CC version check with CC=“cc”.
→ Kernel source path: ‘/lib/modules/3.10.0-862.3.3.el7.x86_64/source’
→ Kernel output path: ‘/lib/modules/3.10.0-862.3.3.el7.x86_64/build’
→ Performing rivafb check.
→ Performing nvidiafb check.
→ Performing Xen check.
→ Cleaning kernel module build directory.
executing: ‘cd ./kernel; make clean’…
→ Building kernel module:
executing: ‘cd ./kernel; make module SYSSRC=/lib/modules/3.10.0-862.3.3.el7.x86_64/source SYSOUT=/lib/modules/3.10.0-862.3.3.el7.x86_64/build’…
NVIDIA: calling KBUILD…
make -C /lib/modules/3.10.0-862.3.3.el7.x86_64/build
KBUILD_SRC=/usr/src/kernels/3.10.0-862.3.3.el7.x86_64
KBUILD_EXTMOD=“/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel” -f /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/Makefile
modules
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (
echo >&2;
echo >&2 " ERROR: Kernel configuration is invalid.“;
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.”;
echo >&2 " Run ‘make oldconfig && make prepare’ on kernel src to fix it.“;
echo >&2 ;
/bin/false)
mkdir -p /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/.tmp_versions ; rm -f /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/.tmp_versions/*
make -f /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/scripts/Makefile.build obj=/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel
cc -Wp,-MD,/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/.nv.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include -I/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include -Iarch/x86/include/generated -I/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include -Iinclude -I/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/uapi -Iinclude/generated/uapi -include /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/kconfig.h -I/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -std=gnu89 -O2 -m64 -mno-mmx -mno-sse -mpreferred-stack-boundary=3 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -Wframe-larger-than=2048 -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DC
ONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -mfentry -DCC_USING_FENTRY -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel -Wall -MD -Wsign-compare -Wno-cast-qual -Wno-error -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING="304.137" -Wno-unused-function -Wuninitialized -mno-red-zone -mcmodel=kernel -UDEBUG -U_DEBUG -DNDEBUG -DMODULE -D"KBUILD_STR(s)=#s” -D"KBUILD_BASENAME=KBUILD_STR(nv)" -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/.tmp_nv.o /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c
In file included from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/cpumask.h:4:0,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/msr.h:10,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/processor.h:20,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/cpufeature.h:7,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/thread_info.h:22,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/thread_info.h:54,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/preempt.h:9,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/spinlock.h:50,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/seqlock.h:35,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/time.h:5,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/uapi/linux/timex.h:56,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/timex.h:56,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/sched.h:17,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/utsname.h:5,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:40,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/cpumask.h: In function ‘cpumask_parse’:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/cpumask.h:634:26: warning: signed and unsigned type in conditional expression [-Wsign-compare]
int len = nl ? nl - buf : strlen(buf);
^
In file included from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/rh_kabi.h:13:0,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/sched.h:5,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/utsname.h:5,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:40,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/asm-generic/qrwlock.h: In function ‘queued_write_trylock’:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/asm-generic/qrwlock.h:93:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
cnts, cnts | _QW_LOCKED) == cnts);
^
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/compiler.h:152:40: note: in definition of macro ‘likely’
# define likely(x) __builtin_expect(!!(x), 1)
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:105:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/cpufreq.h: In function ‘cpufreq_next_valid’:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/cpufreq.h:534:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while ((*pos)->frequency != CPUFREQ_TABLE_END)
^
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/cpufreq.h:535:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((*pos)->frequency != CPUFREQ_ENTRY_INVALID)
^
In file included from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/rh_kabi.h:13:0,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/sched.h:5,
from /usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/utsname.h:5,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:40,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/uaccess_64.h: In function ‘copy_from_user’:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/arch/x86/include/asm/uaccess_64.h:62:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (likely(sz == -1 || sz >= n))
^
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/compiler.h:152:40: note: in definition of macro ‘likely’
# define likely(x) __builtin_expect(!!(x), 1)
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h: In function ‘NV_GET_USER_PAGES’:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1892:13: warning: passing argument 1 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default]
return get_user_pages(start, nr_pages, flags, pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1381:6: note: expected ‘struct task_struct *’ but argument is of type ‘long unsigned int’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1892:13: warning: passing argument 2 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default]
return get_user_pages(start, nr_pages, flags, pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1381:6: note: expected ‘struct mm_struct *’ but argument is of type ‘long unsigned int’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1892:13: warning: passing argument 4 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]
return get_user_pages(start, nr_pages, flags, pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1381:6: note: expected ‘long unsigned int’ but argument is of type ‘struct page **’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1892:13: warning: passing argument 5 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]
return get_user_pages(start, nr_pages, flags, pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1381:6: note: expected ‘int’ but argument is of type ‘struct vm_area_struct **’
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1892:13: error: too few arguments to function ‘get_user_pages’
return get_user_pages(start, nr_pages, flags, pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1381:6: note: declared here
long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h: In function ‘NV_GET_USER_PAGES_REMOTE’:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1919:45: warning: passing argument 6 of ‘get_user_pages_remote’ makes integer from pointer without a cast [enabled by default]
pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1377:6: note: expected ‘int’ but argument is of type ‘struct page **’
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1919:45: warning: passing argument 7 of ‘get_user_pages_remote’ from incompatible pointer type [enabled by default]
pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1377:6: note: expected ‘struct page **’ but argument is of type ‘struct vm_area_struct **’
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:0:
/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:1919:45: error: too few arguments to function ‘get_user_pages_remote’
pages, vmas);
^
In file included from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv-linux.h:82:0,
from /tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.c:13:
/usr/src/kernels/3.10.0-862.3.3.el7.x86_64/include/linux/mm.h:1377:6: note: declared here
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^
make[4]: *** [/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel/nv.o] Error 1
make[3]: *** [module/tmp/selfgz18105/NVIDIA-Linux-x86_64-304.137/kernel] Error 2
make[2]: *** [sub-make] Error 2
NVIDIA: left KBUILD.
nvidia.ko failed to build!
make[1]: *** [module] Error 1
make: *** [module] Error 2
→ Error.
ERROR: Unable to build the NVIDIA kernel module.
ERROR: Installation has failed. Please see the file ‘/var/log/nvidia-installer.log’ for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
root@I7:/mnt/y#

My graphics card is the Quadro FX560 which I forgot to mention

The legacy 304 driver is not supported any more since end of last year. EOL. You might find some user created patches in this forum, otherwise switch to nouveau.

I have a couple questions regarding the response.

I assume buying a newer video card would have software to support it. Is that correct?

The reason I went to the NVIDIA driver, several years ago, was the nouveau driver was quite buggy at that time. It would constantly hang in window manager. Does anyone know if the nouveau driver has improved to become stable?

The state of nouveau depends on the type of card you’re using, so there’s no general answer. You can only try and report back.
Your assumption is that user applications actually have to support a specific graphics card? That’s incorrect. User applications demand a specific feature set (OpenGL level, Vulkan) and the graphics (driver) has to support that. New gpus will of course support the latest feature sets.

Addendum: if you’re using the stereo capabilities of the Quadro, you will of course have to replace it with another stereo capable card.