直到我最近一次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
- 英偉達-304
- nvidia-304-更新
- Nvidia-當前
- nvidia 設定
谷歌搜尋這讓我這頁面,建議在核心版本 3.13(我正在使用的版本)上出現錯誤時向驅動程式添加補丁並重新編譯它。在哪裡可以找到驅動程式的原始程式碼來重新編譯它?我以為 nvidia 驅動程式是閉源的,但該論壇上的人似乎不是 nvidia 開發人員。我很樂意編譯軟體包和 with make
,但如果有人對編譯驅動程式有建議,我將不勝感激。
編輯:我想我遇到了同樣的問題這人。
答案1
您需要修補的檔案儲存在/usr/src/nvidia-??/nv-acpi.c
(在我的系統中,nvidia-331
路徑是/usr/src/nvidia-331-331.38/nv-acpi.c
)。司機本身是閉源的,但該檔案屬於驅動程式/內核交互。
由於您同時擁有 304 和 304 更新,因此請確保您修補 Bumblebee 使用的更新(如果有疑問,請同時修補兩者)。
然後重建內核模組運行
$ sudo dpkg-reconfigure nvidia-304
$ sudo dpkg-reconfigure nvidia-304-updates
正如您所猜測的,這只是一個臨時修復。如果您更新其中任何一個軟體包,您的變更就會消失。為了避免這種情況阻止這些軟體包的更新。