最近折腾 nvidia 驱动的一些问题

我笔记本的显卡配置为 Intel HD 3000+nvidia GT 540M,我配置了 bumblebee,以便在必要时能使用独显运行某些程序。

然而,似乎自从 Linux 3.13 内核正式发布之后,我的 nvidia 驱动就再也没能正常加载过。而在之前的 3.12 内核和 3.13 RC 版内核中,nvidia 驱动都是可以正常加载的。我不懂开发,因此我也无法调查究竟从 3.13 正式版内核开始源代码进行了哪些更改,导致 nvidia 驱动再次挂掉。

在一开始,运行 optirun 时的具体错误信息是 glamor 模块中有未定义的符号。但是在搜索过互联网之后,我发现在启用 bumblebee 的情况下,是不应该会加载这个模块的。我用的发行版是 Gentoo,因此我对 xf86-video-intel 这个包禁用了 glamor 的 USE 标记。然而问题并没有就此解决,nvidia 驱动仍然无法加载。查看 dmesg,找到错误信息,然后进行搜索,似乎是内核的 ACPI HANDLER 导致的问题,但是我在编译 nvidia 驱动时已经应用过对应的 patch 了,看来依然是条死胡同。

目前看来,我只有两个选择,要么放弃 nvidia 的闭源驱动,全面使用开源的 nouveau+Intel 驱动。而且从 3.13 内核开始,开源驱动已经能实现动态启用或关闭独显了。或者,退回之前没有问题的 3.12 内核。

要想既使用新内核,又能让独立显卡正常工作看来是不现实的,我也终于理解为何 Arch 至今都没升级 3.13 内核了。