Kernel

適用於 3.2.9 核心的 NVidia 驅動程序

  • March 13, 2012

我將我的 OpenSUSE 12.1 64 位核心從 3.1.9 升級到 3.2.9,當我重新啟動時,X-windows 拒絕啟動,我進入了 shell。我嘗試使用 手動執行它startx,但仍然不行。

我設法通過刪除 NVidia 驅動程序使 X-windows 工作(我有最新版本)。當我嘗試重新安裝它時,安裝程序抱怨驅動程序是使用 GCC 4.5 編譯的,因此與使用 GCC 4.6 編譯的核心不兼容。我認為可以安全地假設這就是它最初不起作用的原因……

從 bumblebee 儲存庫安裝 NVidia 驅動程序(最初我是NVIDIA-Linux-x86_64-295.20.run從 NVidia 站點的安裝程序安裝的)也不起作用(這次我只是黑屏,必須使用故障安全模式來刪除該驅動程序)。

現在,我知道 Linux 的 NVidia 驅動程序不是開源的,所以我無法自己編譯它,但有沒有其他方法可以讓它與最新的核心一起工作,還是我必須等待 NVidia發布 GCC 4.6 編譯核心的新版本?

更新

我已經郵寄給 NVidia,他們的技術支持注意到我理解錯誤消息錯誤。NVidia 驅動程序是使用 GCC 4.6 編譯的——它是使用 GCC 4.5 編譯的 Linux 核心。

所以,解決方案很明確 - 我需要編譯自己的核心……

有一個解決方案肯定會完成這項工作,但它可能會很痛苦。用編譯安裝kernel你需要的GCC 4.5,然後安裝NVidia driver.

這將是困難的,因為編譯一個自己kernel的幾乎從來都不是一件容易的事,即使configfile是可以達到的。可能您的系統包含需要kernel編譯GCC 4.6的組件 - 這些組件將無法正常工作或根本無法工作。

這里安全的選擇是將問題報告給NVidia舊的,然後等待kernel

我問了一個從這個問題中出現的問題here


更新:上述問題的答案已經到來,它的重要部分是:

您可以修補二進製文件中的版本字元串。這將欺騙核心載入模組,但有導致內部資料結構數據損壞的風險。

引用自:https://unix.stackexchange.com/questions/34043