So installieren Sie Nvidia-Treiber auf einem Dell Latitude-Laptop – Ubuntu 16.04

So installieren Sie Nvidia-Treiber auf einem Dell Latitude-Laptop – Ubuntu 16.04

Nach dem Upgrade von Ubuntu 15.10 auf 16.04.1, beide 64-Bit, steckte ich in einer Endlosschleife fest – jedes Mal lightdm, wenn ich mich bei anmeldete, wurde der Bildschirm nach der Anmeldung schwarz und kehrte dann zum Anmeldebildschirm zurück. Die Anmeldung bei tty0funktionierte einwandfrei. Ich habe einen Del Latitude 3350-Laptop mit einem Core i5 5200U und einer Nvidia GeForce 830M. Das Upgrade entschied, dass ich die nvidia-361Treiber brauchte, bevor ich verwendet hatte nvidia-352. Viele der Anweisungen, die ich früh fand, erwähnten Secure Boot in meinem UEFI-BIOS, aber das war bereits deaktiviert (ich kann mich nicht erinnern, ob ich es ausgeschaltet hatte, als ich den Laptop bekam, oder ob es so von Dell geliefert wurde). Eine Neuinstallation und/oder Neukonfiguration lightdmhalf nicht. Sie wiesen mich zumindest darauf hin, die Nvidia-Treiber zu deinstallieren, aber das ist nur eine Teillösung. Dies ist kein Duplikat anderer Fragen, die ich auf askubuntu gesehen habe, da die Schritte, die bei anderen funktionierten, bei mir nicht funktionierten. Die möglicherweise am nächsten kommende Anleitung istWie installiere ich vernünftige Grafiktreiber für Nvidia Optimus-Hardware auf *Ubuntu 16.04?. Das macht die Nvidia-GPU jedoch nicht für mich nutzbar, ich musste Bumblebee installieren. Außerdem enthält dieser Leitfaden einen Link zu [Bumblebee auf einem Lenovo T440p [NVidia GT 730M] mit XUbuntu/Ubuntu 16.04 LTS]{http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1} außer dass ich nach Befolgen dieser Anweisungen tatsächlich auch keinen funktionierenden Bumblebee hatte.

Nach langem Googeln fand ich heraus, dass die Teillösung darin bestand, die Nvidia-Treiber zu deinstallieren. Schließlich fand ichdieseAnweisungen, die mich bis zu dem Punkt brachten, an dem ich mich anmelden konnte.

Ein wichtiger Hinweis, bevor Sie fortfahren: Es scheint, dass Sie die Treiber über die Registerkarte „Zusätzliche Treiber“ in den Systemeinstellungen installieren müssen intel-microcode. Ich hatte sie bereits installiert (wahrscheinlich aus den Tagen von Ubuntu 15.10), also habe ich nie getestet, was passiert, wenn sie nicht installiert sind.

Ich habe die folgenden Befehle verwendet, um Bumblebee und die Nvidia-Treiber zu entfernen und anschließend die Nvidia-Treiber neu zu installieren. Beachten Sie, dass Sie das Grafiktreiber-Repository hinzufügen müssen, um die neuesten Nvidia-Treiber zu erhalten:

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

Dies führte zur Installation der folgenden Pakete:

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

Dann habe ich es getan rm .nvidia-settings-rc.

An dieser Stelle wird in den Anweisungen gesagt, dass ich einige Programme ausführen soll, die die GPU verwenden. Wenn ich sie ausführe clinfo(ich verwende die GPU für die OpenCL-Entwicklung), funktioniert alles einwandfrei. Andere OpenCL-Programme funktionieren ebenfalls einwandfrei. Wenn ich sie jedoch ausführe, glxinfoerhalte ich die folgende Ausgabe:

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

Ich habe die Anweisungen befolgt, damit ich Bumblebee zum Laufen bekomme. sudo prime-select intelwar nötig, weil ich sonst nach dem Neustart wieder in die Endlosschleife für die Anmeldung komme. Nach dem Neustart habe ich sudo apt install bumblebeeFolgendes getan und anschließend /etc/bumblebee/bumblebee.confalle Vorkommen von nvidia-currentin geändert nvidia-367. Außerdem habe ich /etc/modprobe.d/bumblebee.confdie Zeile eingefügt. Da es keine oder Pakete blacklist nvidia-367gibt , die ich installieren könnte, habe ich sie nicht auf die schwarze Liste gesetzt.nvidia-367-updatesnvidia-experimental-367

Nach dem Neustart kann ich ausführen primusrun clinfound es gibt die Nvidia-Plattform aus. Das Ausführen von OpenCL-Programmen auf der Nvidia-GPU funktioniert auch bei Verwendung . Es gibt primusrunjedoch einen Fehler:primusrun glxinfo

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

Die Verwendung von optirun„for anything“ führt zu einem ähnlichen Fehler, z. B., optirun clinfound optirun glxinfobeide führen zu:

[  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.

Ich habe versucht, die Zeile in und die Zeile in Bridge=zu Bridge=primusändern PMMethod=auto. Das hat nicht geholfen.PMMethod=bbswitch/etc/bumblebee/bumblebee.conf

Wie bekomme ich Bumblebee- und Nvidia-Treiber zum Laufen? Es scheint, als ob keine einzige Anleitung funktioniert. Bonus: Wie bekomme ich Nvidia-Treiber zum Laufen, wenn ich sie prime-select nvidiaanstelle von Bumblebee verwende?

Antwort1

Mit den Lösungen, die ich bisher gefunden habe, funktioniert Bumblebee (größtenteils) und es besteht die Möglichkeit, die Nvidia-GPU manuell auszuschalten, wenn sie nicht verwendet wird. Bei Verwendung von anstelle von glxinfofunktioniert es noch nicht .prime-select nvidiaoptirun

Ich begann zu folgendieseAnweisungen. Ich habe i915und bbswitchzu hinzugefügt /etc/modules. Ich habe sudo gpasswd -a $USER bumblebeeund ausgeführt sudo systemctl enable bumblebeed. Diese beiden Befehle scheinen erfolgreich abgeschlossen worden zu sein. Nach dem Neustart bleibt das Problem das gleiche. Wenn ich sudo prime-select nvidiagefolgt von ausführe, glxinfoerhalte ich immer noch den Fehler couldn't find RGB GLS visual or fbconfig.

An diesem Punkt habe ich mich für die Installation entschieden bumblebee-nvidia– die Anweisungen, auf die ich in meiner Frage verwiesen habe, sagten, dies nicht zu tun, der obige Link enthielt es jedoch. Überraschenderweise hat dies meine Probleme größtenteils behoben. Jetzt druckt die Verwendung von optirun glxinfooder primusrun glxinfodie Informationen der Nvidia-GPU aus. optirun glxgearsund optirun glxheads(und auch die Verwendung von primusrun) funktioniert einwandfrei. Ein Wort der Warnung: Bei einem früheren Versuch, dieses Problem zu beheben, hat die Installation / bumblebee-nvidiabeschädigt .optirunprimusrun

Das einzige, was nicht funktioniert, ist prime-select nvidiagefolgt von glxinfo. Dann erhalte ich immer noch die Fehlermeldung, dass das Modul „mouse“ nicht geladen werden konnte. Außerdem erhalte ich beim Ausführen immer cat /proc/acpi/bbswitchwieder 0000:04:00.0 ON, was meiner Meinung nach darauf hinweist, dass meine Nvidia-GPU noch eingeschaltet ist. Beim Ausführen lspci | grep NVIDIAwird zurückgegeben 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2), was die PCIe-Adresse meiner Nvidia-GPU bestätigt.

Das Stromversorgungsproblem, das auf beruhte dmesg | grep bbswitch, bestand darin, dass das nvidiaModul das Ausschalten der GPU verhinderte. Das manuelle Ausschalten der Nvidia-GPU ist möglich, indem Sie sudo rmmod nvidia_drm, sudo rmmod nvidia_uvm, sudo rmmod nvidia_modesetund sudo rmmod nvidia, gefolgt von ausführen sudo tee /proc/acpi/bbswitch <<<OFF. Das war allerdings nicht so toll, also suchte ich nach einer automatischen Methode, damit das funktioniert.

Um das Problem zu beheben, dass Bumblebee meine Nvidia-GPU nicht ausschaltet, habe ich die Anweisungen ausprobiertvom Hummelprojektaber ohne Erfolg. Genauer gesagt /etc/modprobe.d/bbswitch.confenthält mein options bbswitch load_state=0und ich habe bbswitch load_state=0am Ende von hinzugefügt /etc/modules. Ich habe ausgeführt sudo update-initramfs -uund anschließend neu gestartet, aber cat /proc/acpi/bbswitches wird immer noch angezeigt, dass die GPU eingeschaltet ist. Im Moment umgehe ich dies, indem ich ein Skript mit den rmmodBefehlen zum Ausschalten der Nvidia-GPU verwende. Wenn Sie ein beliebiges Programm mit optirunoder ausführen primusrun, werden diese Treiber automatisch neu geladen.

verwandte Informationen