如何在 Dell Latitude 筆記型電腦上安裝 Nvidia 驅動程式 - Ubuntu 16.04

如何在 Dell Latitude 筆記型電腦上安裝 Nvidia 驅動程式 - Ubuntu 16.04

從 Ubuntu 15.10 升級到 16.04.1(均為 64 位元)後,我陷入了無限登入循環 - 每次登入時lightdm,登入後螢幕都會變黑,然後返回登入畫面。登入tty0效果很好。我有一台 Del Latitude 3350 筆記型電腦,配備 Core i5 5200U 和 Nvidia GeForce 830M。在nvidia-361我使用nvidia-352.我早期遇到的許多說明都提到了我的 UEFI BIOS 中的安全啟動,但它已經關閉了(我不記得我是在拿到筆記型電腦後立即將其關閉還是從戴爾以這種方式發貨) 。重新安裝和/或重新配置lightdm沒有幫助。他們至少向我指出了卸載 Nvidia 驅動程式的方向,但這只是部分解決方案。這與我在 askubuntu 上看到的其他問題並不重複,因為對其他人有效的步驟對我不起作用。可能最接近的指南是如何在 *Ubuntu 16.04 上為 Nvidia Optimus 硬體安裝健全的圖形驅動程式?。然而,這並不能讓 Nvidia GPU 對我有用,我必須安裝 Bumblebee。此外,該指南還連結到[使用 XUbuntu/Ubuntu 16.04 LTS 的 Lenovo T440p [NVidia GT 730M] 上的 Bumblebee]{http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1除了遵循這些說明實際上也讓我失去了一個可以工作的大黃蜂。

經過多次谷歌搜尋後,我發現部分解決方案是卸載 Nvidia 驅動程式。我最終發現這些說明使我能夠登入。

在繼續之前需要注意的重要一點是,您似乎需要intel-microcode使用“系統設定”中的“其他驅動程式”標籤安裝驅動程式。我已經安裝了它們(可能從 Ubuntu 15.10 天開始),所以我從未測試過如果不安裝它們會發生什麼。

我使用以下命令刪除 Bumblebee 和 Nvidia 驅動程序,然後重新安裝 Nvidia 驅動程式。請注意,您需要新增圖形驅動程式儲存庫才能取得最新的 Nvidia 驅動程式:

sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
sudo apt-get --purge autoremove
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install nvidia-367 nvidia-prime nvidia-settings

這導致安裝以下軟體包:

bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra

然後我就這麼做了rm .nvidia-settings-rc

此時,指令說要執行一些使用 GPU 的程式。如果我運行clinfo(我確實使用 GPU 進行 OpenCL 開發),則一切正常。其他 OpenCL 程式也可以正常運作。但是,如果我運行glxinfo我會得到以下輸出:

name of display: :0
Error: couldn't find RGB GLX visual or fbconfig

我繼續按照說明進行操作,以便讓 Bumblebee 運行。sudo prime-select intel是需要的,因為否則,重新啟動後,我會回到無限登入循環。重新啟動後,我進行了sudo apt install bumblebee編輯/etc/bumblebee/bumblebee.conf以將所有實例更改nvidia-currentnvidia-367.我還進行了編輯/etc/modprobe.d/bumblebee.conf以包含該行blacklist nvidia-367。由於沒有任何nvidia-367-updates軟體包nvidia-experimental-367可供我安裝,因此我沒有將它們列入黑名單。

重新啟動後,我可以運行primusrun clinfo並列印 Nvidia 平台。使用primusrun.但是,primusrun glxinfo給我一個錯誤:

primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

用於optirun任何東西都會給我一個類似的錯誤,例如optirun clinfo並且optirun glxinfo都給出:

[  462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

[  462.796725] [ERROR]Aborting because fallback start is disabled.

我嘗試將行更改Bridge=Bridge=primus並將行更改PMMethod=autoPMMethod=bbswitchin /etc/bumblebee/bumblebee.conf。那沒有幫助。

我如何讓 Bumblebee 和 Nvidia 的驅動程式在這裡工作,似乎沒有一套指令可以工作?額外獎勵:使用prime-select nvidiaBumblebee 代替時如何讓 Nvidia 驅動程式充分運作?

答案1

到目前為止,我找到的解決方案使 Bumblebee 能夠正常工作(大部分),並提供了一種在不使用時手動關閉 Nvidia GPU 的方法。我還沒有開始glxinfo工作,prime-select nvidia而是使用optirun.

我開始關注這些指示。我添加了i915bbswitch/etc/modules.我跑了,sudo gpasswd -a $USER bumblebee然後sudo systemctl enable bumblebeed。這兩個命令似乎已成功完成。重啟後,問題依舊。如果我sudo prime-select nvidia這樣做glxinfo,我仍然會收到錯誤couldn't find RGB GLS visual or fbconfig

此時我決定安裝bumblebee-nvidia- 我在問題中鏈接到的說明說不要安裝,但是上面的鏈接確實包含了它。令人驚訝的是,這基本上解決了我的問題。現在,執行optirun glxinfoprimusrun glxinfo列印出 Nvidia GPU 的資訊。optirun glxgears而且optirun glxheads(也使用primusrun)效果很好。需要注意的是,在先前的迭代中,透過嘗試解決此問題,安裝了bumblebee-nvidia損壞的optirun/ primusrun

唯一不起作用的是prime-select nvidia後面跟著glxinfo.然後我仍然收到有關無法加載模組“滑鼠”的錯誤。另外,如果我運行,cat /proc/acpi/bbswitch我會不斷收到0000:04:00.0 ON,我相信這表明我的 Nvidia GPU 仍在運行。運行lspci | grep NVIDIA返回04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2)確認了我的 Nvidia GPU 的 PCIe 位址。

根據 的電源問題dmesg | grep bbswitch是此nvidia模組阻止 GPU 關閉。可以透過運行sudo rmmod nvidia_drmsudo rmmod nvidia_uvm和,然後運行 來sudo rmmod nvidia_modeset手動關閉 Nvidia GPU 。雖然不太好,所以我開始尋找一種自動方法來完成這項工作。sudo rmmod nvidiasudo tee /proc/acpi/bbswitch <<<OFF

為了解決 Bumblebee 沒有關閉我的 Nvidia GPU 的問題,我嘗試了以下說明來自大黃蜂項目但沒有成功。具體來說,我的/etc/modprobe.d/bbswitch.confcontainsoptions bbswitch load_state=0和我添加bbswitch load_state=0到 的末尾/etc/modules。我確實運行了sudo update-initramfs -u,然後重新啟動,但cat /proc/acpi/bbswitch仍然顯示 GPU 已開啟。目前,我正在透過使用帶有命令的腳本rmmod來關閉 Nvidia GPU 來解決這個問題。運行任何帶有這些驅動程式的程式optirunprimusrun自動重新載入這些驅動程式。

相關內容