返回主页

♣Hello Osaki♣

偶尔分享动漫

解决centos下安装显卡驱动出现的unable to find the kernel source tree等关于内核版本问题

如果看过我之前的文章,应该对Ubuntu下的显卡驱动以及CUDA安装比较了解了,但是那篇文章有点过时了,最近安装CUDA时,英伟达已经做的很不错了,给出了安装前的配置界面,同时也留下了一些自定义参数,对于nouveau等开源驱动也默认自动去掉了,省了很多麻烦。

但是另一个问题也存在:旧版本的Linux内核与驱动匹配问题比较难解决,实际这个问题也不算是英伟达的锅····

问题现象:驱动安装失败,安装log文件提示说源码树未发现或者版本不匹配

解决办法:很大程度上我们安装的kernel-devel与kernel-headers与实际内核版本不匹配,这里指的是自动安装的情况。比如下图:

 

 这种情况很容易出现,尤其是你在一个低版本的Linux发行版上安装kernel-devel与kernel-headers时。我不建议按照上图那样直接yum uninstall 或者remove!其实我们大可手动下载安装匹配版本的kernel-devel与kernel-headers。

去这个网站:https://pkgs.org/download/kernel-headers搜索与你内核匹配的kernel-headers,可能搜索到第三方编译的二进制文件,不要紧,大胆用就行。

去这个网站:https://pkgs.org/download/kernel-devel搜索与你内核匹配的kernel-devel,同样可能搜索到第三方的二进制文件,不要紧,大胆用。

不出意外,你应该找到了跟你内核匹配的RPM包,我们直接安装就可以:

rpm -Uvh 你下载的包

安装后,你的电脑上应该会有两套kernel-devel,一个是yum install自动从软件源里安装的不与实际内核匹配的,另一个是手动安装的。

我们的目的是让英伟达的安装程序正确调用kernel-devel,这就要在安装前指定源码树位置,还记得我刚刚提到的配置界面吗?我没有截图,但细心的你应该知道在哪个界面~~~

至于安装位置,https://pkgs.org/download/kernel-devel已经给出,一般是在/usr/src/kernels/目录下,如果你细心看,这个目录下应该会有两个版本,就是对应上述两个kernel-devel

FAQ:

Q:为什么不把之前的自动安装的版本卸载掉?

A:据说重启时会出现内核恐慌,还是留着吧,反正只在安装驱动等需要加载到内核的模块过程中才会调用,不过,有一个缺点,就是害怕其他驱动编译时不能自己指定目录,这样一来还是可能出错···

解决的办法可以创建软连接,不过我没有尝试。

posted @ 2020-09-22 14:53  渔情禅心  阅读(13794)  评论(2编辑  收藏  举报