我将 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 内核。
所以,解决方案很明确 - 我需要编译我自己的内核......
答案1
有一个解决方案肯定可以完成这项工作,但可能会很痛苦。编译并安装kernel
您需要的GCC 4.5
,然后安装NVidia driver
.
这会很困难,因为编译自己的代码kernel
几乎从来都不容易,即使configfile
可以实现。可能您的系统包含需要kernel
编译的组件GCC 4.6
- 这些组件将无法正常工作,或根本无法工作。
这里安全的选择是将问题报告给NVidia
旧的,然后等待kernel
。
我问了一个从这个问题中产生的问题这里。
更新:上述问题的答案已经到了,其重要的部分是这样的:
您可以修补二进制文件中的版本字符串。这将欺骗内核加载模块,但存在导致内部数据结构数据损坏的风险。