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 tty0
funktionierte 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-361
Treiber 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 lightdm
half 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, glxinfo
erhalte 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 intel
war 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 bumblebee
Folgendes getan und anschließend /etc/bumblebee/bumblebee.conf
alle Vorkommen von nvidia-current
in geändert nvidia-367
. Außerdem habe ich /etc/modprobe.d/bumblebee.conf
die Zeile eingefügt. Da es keine oder Pakete blacklist nvidia-367
gibt , die ich installieren könnte, habe ich sie nicht auf die schwarze Liste gesetzt.nvidia-367-updates
nvidia-experimental-367
Nach dem Neustart kann ich ausführen primusrun clinfo
und es gibt die Nvidia-Plattform aus. Das Ausführen von OpenCL-Programmen auf der Nvidia-GPU funktioniert auch bei Verwendung . Es gibt primusrun
jedoch 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 clinfo
und optirun glxinfo
beide 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 nvidia
anstelle 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 glxinfo
funktioniert es noch nicht .prime-select nvidia
optirun
Ich begann zu folgendieseAnweisungen. Ich habe i915
und bbswitch
zu hinzugefügt /etc/modules
. Ich habe sudo gpasswd -a $USER bumblebee
und 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 nvidia
gefolgt von ausführe, glxinfo
erhalte 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 glxinfo
oder primusrun glxinfo
die Informationen der Nvidia-GPU aus. optirun glxgears
und 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-nvidia
beschädigt .optirun
primusrun
Das einzige, was nicht funktioniert, ist prime-select nvidia
gefolgt 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/bbswitch
wieder 0000:04:00.0 ON
, was meiner Meinung nach darauf hinweist, dass meine Nvidia-GPU noch eingeschaltet ist. Beim Ausführen lspci | grep NVIDIA
wird 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 nvidia
Modul 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_modeset
und 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.conf
enthält mein options bbswitch load_state=0
und ich habe bbswitch load_state=0
am Ende von hinzugefügt /etc/modules
. Ich habe ausgeführt sudo update-initramfs -u
und anschließend neu gestartet, aber cat /proc/acpi/bbswitch
es wird immer noch angezeigt, dass die GPU eingeschaltet ist. Im Moment umgehe ich dies, indem ich ein Skript mit den rmmod
Befehlen zum Ausschalten der Nvidia-GPU verwende. Wenn Sie ein beliebiges Programm mit optirun
oder ausführen primusrun
, werden diese Treiber automatisch neu geladen.