解決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:據說重啟時會出現內核恐慌,還是留着吧,反正只在安裝驅動等需要加載到內核的模塊過程中才會調用,不過,有一個缺點,就是害怕其他驅動編譯時不能自己指定目錄,這樣一來還是可能出錯···

解決的辦法可以創建軟連接,不過我沒有嘗試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM