Centos安装Nvidia驱动解决内核版本不匹配问题
- 问题
- 分析
- 尝试
- 解决
写程序三分钟,配环境三小时,尤其是在一台全新机器/重装系统后。。。
已经解决的:
- 禁用nouveau驱动并重启电脑(参考这篇博客)
- 缺少cc,手动yum安装gcc和gcc-c++
问题
ERROR: Unable to find the kernel source tree for the currently running kernel. Please make sure you have installed the kernel source files for your kernel and that they are properly configured; on Red Hat Linux systems, for example,
be sure you have the ‘kernel-source’ or ‘kernel-devel’ RPM installed. If you know the correct kernel source files are installed, you may specify the kernel source path with the ‘–kernel-source-path’ command line option.
分析
根据这里和这里的分析,是实际系统内核和安装的kernel-devel与kernel-headers不一致导致的。两篇文章做的分别是调整kernel-devel与kernel-headers版本和调整系统内核版本。
尝试
通过yum distro-sync尝试更新内核,完成后重启电脑,但是仍然报一样的错误,此时
grub2-editenv list
和
uname -r
都显示了更新后的内核版本,与kernel-devel和kernel-headers也一致了,那么为什么呢?
再尝试
rpm-qa | grep kernel
发现之前的kernel还在.
删除,仍然报错!!!
尝试从https://pkgs.org/download/kernel-headers下载并安装,仍然报错。
指定kernel-source-path各种尝试,仍然报错!
解决
绝望之时,突然发现博客里面提到的这个链接中的命令:
yum install "kernel-devel-uname-r == $(uname -r)"
和之前都不一样,不再是安装kernel-headers后一起出现kernel-devel,而是直接安装kernel-devel。尝试之后发现居然真的开始安装了!这是安装前kernel-headers自带的:
这是安装后的:
不用重启再次安装,成功解决问题!!!