直到最近apt-get upgrade
,我都在使用 bumblebee 来管理我的 nvidia 显卡,而且它运行完美 - 使用primusrun
,我可以获得高达 700 fps 的速度glxgears
。然而现在,当我尝试时primusrun glxgears
,我收到此错误:
primus: fatal: Bumblebee daemon reported: error: Could not load GPU driver
所以我查看了一下dmesg
,发现是这样的:
[33359.665924] nvidia: Unknown symbol acpi_os_wait_events_complete (err 0)
通过使用dpkg
,我看到我已经安装了这些 nvidia 包:
- 大黄蜂-nvidia
- NVIDIA-304
- nvidia-304-更新
- nvidia-当前
- nvidia-设置
谷歌搜索让我这页面,建议为驱动程序添加补丁,如果内核版本 3.13(我使用的是该版本)出现错误,请重新编译驱动程序。我在哪里可以找到驱动程序的源代码来重新编译它?我以为 nvidia 驱动程序是闭源的,但论坛上的人似乎不是 nvidia 开发人员。我擅长使用 编译软件包和make
,但如果有人能提供编译驱动程序的建议,我将不胜感激。
编辑:我想我遇到了同样的问题这人。
答案1
您需要修补的文件存储在/usr/src/nvidia-??/nv-acpi.c
(在我的系统中,nvidia-331
路径为/usr/src/nvidia-331-331.38/nv-acpi.c
)。驱动程序本身是闭源的,但该文件属于驱动程序/内核交互。
由于您同时拥有 304 和 304-updates,请确保修补 Bumblebee 使用的那个(如有疑问,请修补两者)。
然后重建内核模块运行
$ sudo dpkg-reconfigure nvidia-304
$ sudo dpkg-reconfigure nvidia-304-updates
正如您所猜测的,这只是一个临时解决方案。如果您更新任何这些软件包,您的更改就会消失。为了避免这种情况阻止这些软件包的更新。