NVIDIA-PRIME: Kann nicht auf Intel umschalten


10

Immer wenn ich von meiner GPU (GTX 1060) zu meiner IgPU (Intel 530) wechsle, kann ich nicht booten. Der Ladebildschirm bleibt mit der folgenden Meldung hängen:

[Fehlgeschlagen] NVIDIA Persistence Daemon konnte nicht gestartet werden. Weitere Informationen finden Sie unter 'systemctl status nvidia-persistenced.service'.

Ich kann jedoch booten, wenn ich wieder zur Nvidia-GPU wechsle und zu meiner IgPU wechsle, ohne dass ein Neustart vorübergehend funktioniert. Ich verwende Kubuntu 16.10 und nur mein internes Laptop-Display. Das ist die Ausgabe, wenn ich zu meinem igpu wechsle:

sudo prime-select intel
Info: the current GL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: the current EGL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: selecting nvidia-378-prime for the intel profile
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

sudo prime-select nvidia
Info: the current GL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: the current EGL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: selecting nvidia-378 for the nvidia profile
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

Ergebnis von lspci -k | grep -EA2 'VGA | 3D'

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
        DeviceName:  Onboard IGD
        Subsystem: CLEVO/KAPOK Computer HD Graphics 530
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060] (rev a1)
        Subsystem: CLEVO/KAPOK Computer Device 6a03
        Kernel driver in use: nvidia

Ich habe über eine Woche lang versucht, dieses Problem selbst zu lösen, und habe keine Ahnung, was ich tun soll. Alles, was ich versucht habe, ist fehlgeschlagen.

Kannst du mir bitte Helfen?

UPDATE 5.2.2017:

Ich habe es heute erneut getestet und festgestellt, dass das Umschalten auf die Intel-GPU mit 375 und 378 überhaupt nicht funktioniert. Durch das Abmelden wird der Bildschirm eingefroren. Warum hat es einmal funktioniert? Wenn ich nach dem Löschen der alten Treiber alle Treiber erneut installiere und anschließend Prime-Select-Informationen verwende (ohne Neustart!), Aktualisiert Prime-Select die Prime-Profile nicht -> Es wird eines der alten Nicht-NVIDIA-Profile (Mesa-Profile) ausgewählt anstelle von nvidia) und es funktioniert. Sobald ich jedoch zu einem NVIDIA-Profil wechsle oder neu starte, werden die Hauptprofile aktualisiert und es funktioniert nicht mehr. Also denke ich, dass etwas mit den EGl-Alternativen für die Intel-GPU nicht stimmt? Entschuldigung für jegliche Unannehmlichkeiten.

UPDATE 12.2.2017:

Gestern habe ich die nvidia-prime Software geändert und den Fehler behoben. Ich werde bald (wahrscheinlich nächste Woche) meine geänderte Version veröffentlichen und hier einen Link einfügen, aber ich stoße immer noch auf ein Problem: Wenn ich meinen PC nach der Ausführung herunterfahre sudo prime-select intel:

ksmserver stürzt ab (ich benutze Kubuntu, wahrscheinlich kein Problem mit Ubuntu)

-> Der PC kann nicht vollständig heruntergefahren werden und die alten (falschen) Update-Alternativen für die Intel-GPU werden wiederhergestellt

-> Ich kann nicht booten.

Wenn ich jedoch sudo prime-select intelnach dem Herunterfahren im Wiederherstellungsmodus ausgeführt werde, funktioniert alles in Ordnung und ich kann die Intel-GPU verwenden.

UPDATE 17.2.2017:

Ich habe meine Problemumgehung veröffentlicht und versuche immer noch, den Fehler in den offiziellen Repositories zu beheben. Dies ist jedoch wahrscheinlich ein Fehler in Update-Alternativen, daher muss ich als nächstes dort einen Fehlerbericht veröffentlichen.

In der Zwischenzeit viel Spaß bei meiner Problemumgehung! Ich hoffe es funktioniert auch bei dir. Bei Fragen hinterlassen Sie bitte einen Kommentar.

UPDATE 26.2.2017

Wie @whizzzkid betonte, bleibt die NVIDIA-Grafikkarte nach dem Anwenden meines Patches weiterhin aktiv. Heute konnte ich dieses Problem jedoch beheben. Ich werde wahrscheinlich meine Antwort aktualisieren, um nächste Woche meinen zweiten Patch aufzunehmen. Hier sind einige Tests, die ich durchgeführt habe:

Nvidia: 43-45W

Intel (nvidia on): 29-31W

Intel (NVIDIA AUS): 15-17W


Bitte bearbeiten Sie Ihre Frage und fügen Sie die Ausgabe des lspci -k | grep -EA2 'VGA|3D' Terminalbefehls hinzu.
Pilot6

Oh, ich sehe die 10xx nicht mam Ende haben, auch wenn sie mobil sind.
Pilot6

Vermutlich nvidia-primeunterstützt diese noch nicht.
Pilot6

Das Interessante ist, dass es funktioniert, solange ich nicht neu starte. Ich kann die igpu verwenden, wenn ich mich abmelde und wieder anmelde. Aber sobald ich neu starte, funktioniert es nicht mehr. Und die Nvidia GPU funktioniert und wird vom Treiber unterstützt.
C11235

1
Ich habe Powertop verwendet, um den Stromverbrauch zu überwachen. Der Stromverbrauch wird nur angezeigt, wenn Sie den Akku als Stromquelle verwenden. Weitere Informationen finden Sie in dieser Frage oder auf dieser Manpage .
C11235

Antworten:


3

Hier ist mein Fix / Workaround für den Fehler:

Wenn Sie Hummel anstelle von nvidia-prime verwenden möchten, sehen Sie sich die Antwort von @whizzzkid unten an.

Getestet mit Kubuntu 16.10 64-Bit unter Verwendung von KDE Plasma Version 7.5 und KDE Frameworks Version 5.26.0. Die folgenden Schritte funktionieren für mich. Ich hoffe, dass sie auch für Sie arbeiten, aber ich kann das nicht garantieren und übernehme keine Verantwortung, wenn sie es nicht tun. Aber ich helfe Ihnen gerne, wenn Sie einen Kommentar hinterlassen.

In meinem Fall war das Problem, dass die Update-Alternative / usr / lib / nvidia-XYZ-prime / überhaupt nicht funktionierte. Es soll Anrufe an den Intel-Mesa-Treiber umleiten, hat es aber aus irgendeinem Grund nicht getan. Also ist es wahrscheinlich doch ein Fehler in Update-Alternativen? Ich habe immer noch keinen Ort gefunden, an dem ein Fehler für Update-Alternativen gemeldet werden kann. Bitte kommentieren Sie, ob Sie mir helfen können.

Grundsätzlich habe ich nvidia-prime ein wenig modifiziert, um die Update-Alternativen direkt auf den Intel-Mesa-Treiber anstatt auf / usr / lib / nvidia-XYZ-prime / zu ändern.

Wichtig:

Bevor Sie einen dieser Schritte ausführen, stellen Sie sicher, dass Sie wissen, wie Sie auf Ihrem PC auf den Wiederherstellungsmodus zugreifen. Wenn Sie aufgrund dieses Handbuchs nicht mehr booten können, können Sie die Änderungen im Wiederherstellungsmodus mit den Befehlen im letzten Abschnitt dieses Handbuchs rückgängig machen. Weitere Informationen finden Sie auf dieser Website zum Zugriff auf den Wiederherstellungsmodus .

Wenn Sie ein 32-Bit- Betriebssystem verwenden, müssen Sie in Schritt 4 und im Abschnitt So machen Sie alle diese Änderungen rückgängig , alle Befehle auslassen, die x86_64 enthalten .


Schritt 1:

Installieren Sie meinen Patch mit einer einfachen Methode, die von @whizzzkid in seiner Antwort unten bereitgestellt wird:

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Schritt 2:

Wenden Sie meinen zweiten Patch an, um den Stromverbrauch im Intel-Modus zu reduzieren:

Überprüfen Sie, welche NVIDIA-Treiberversion Sie haben. Zum Beispiel mit dem folgenden Befehl:

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  378.13  Tue Feb  7 20:10:06 PST 2017
GCC version:  gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)

In diesem Fall ist nvidia-XYZ nvidia-378. Siehe diesen Stackoverflow-Thread .

Erstellen Sie eine Bash-Datei mit den folgenden Inhalten, z. B. poweroff.sh

#!/bin/bash
line=$(</etc/prime-discrete)
if [ "$line" == "off" ] 
   then
   rmmod nvidia-drm
   rmmod nvidia-modeset
   rmmod nvidia
   bash -c 'echo OFF > /proc/acpi/bbswitch'
fi 

Erstellen Sie eine zweite Bash-Datei mit den folgenden Inhalten, z. B. poweron.sh, und ersetzen Sie XYZ durch die Versionsnummer Ihres nvidia-Treibers.

#!/bin/bash
modprobe nvidia-XYZ
modprobe nvidia-XYZ-modeset
modprobe nvidia-XYZ-drm
modprobe nvidia-XYZ-uvm
echo ON > /proc/acpi/bbswitch

Im Intel-Modus müssen Sie das erste Skript nach der Anmeldung mit sudo und das zweite vor der Abmeldung mit sudo ausführen (andernfalls stürzt Ihr Laptop wahrscheinlich ab, wie in meinem Fall). Ich führe sie einfach mit aus sudo bash FILENAME.

Bisher konnte ich diese Skripte beim Anmelden und vor dem Abmelden nicht automatisch als Root automatisch starten. Es könnte jedoch mit Upstart möglich sein, wie @Fiximan betonte. Ich könnte diese Antwort irgendwann in der Zukunft erneut aktualisieren, wenn ich es schaffe.


(wahrscheinlich) KDE Plasma spezifische Fehler:

Es gibt immer noch einen Fehler, den ich in KDE Plasma nicht beheben konnte: Immer wenn ich von Nvidia zu Intel wechsle, nachdem ich den PC im NVIDIA-Modus gestartet habe, stürzt ksmserver ab und der PC wird unbrauchbar. Ich muss ihn durch Drücken ausschalten den Netzschalter für ca. 5-10 Sekunden. Dies führt manchmal dazu, dass die Update-Alternativen in nvidia-prime anstelle von Intel-Mesa geändert werden, was beim Start zu einem schwarzen Bildschirm führt .

Wenn Sie vom ksmserver-Fehler betroffen sind, tragen Sie bitte zum offiziellen Fehlerbericht auf bugs.kde.org bei .

Das Problem, dass der PC nicht heruntergefahren werden kann, kann jedoch vermieden werden, indem vor dem Herunterfahren immer der Intel-Modus ausgewählt wird , auch wenn Sie den NVIDIA-Modus verwenden. Wenn Sie dies tun, funktioniert alles wie gewünscht und Sie müssen Ihren PC nicht durch langes Drücken des Netzschalters ausschalten, außer nachdem Sie diese Anleitung im NVIDIA-Modus angewendet haben.

Eine einfache Problemumgehung für den Black-Screen-Beim-Start-Fehler besteht darin, die nicht funktionierenden Update-Alternativen vollständig zu entfernen:

Schritt 1:

Sie können nach dem Aufrufen des Wiederherstellungsmodus erneut auf Ihren PC zugreifen, die Root-Befehlsshell auswählen und die folgenden 2 Befehle ausführen:

mount -o remount,rw /
prime-select nvidia

Schritt 2:

Führen Sie die folgenden Befehle aus:

sudo update-alternatives --remove i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf

So machen Sie alle diese Änderungen rückgängig

Führen Sie einfach die folgenden Befehle aus:

sudo rm /usr/bin/prime-select
sudo mv /home/YOUR-USERNAME/prime-select.backup /usr/bin/prime-select
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603

1
Überprüfen Sie meine Antwort unten.
Whizzzkid

Hey Mann, vielen Dank dafür! Wenn ich Ihr Poweroff-Skript ausführe, hängt mein Com nur (vor dem Abmelden). Gibt es noch einen Fix?
Wboy

Leider kenne ich keine andere Lösung. Das funktioniert in meinem Fall. Ihr Problem tritt auch in meinem Fall auf, wie ich schrieb, aber nur beim ersten Mal. Wie ich geschrieben habe, müssen Sie vor dem Abmelden wieder zu Intel wechseln. Dann tritt dieser Fehler nicht auf. (Zumindest in meinem Fall).
C11235

Hi @ C11235 Danke für das Update. Ich möchte Sie etwas fragen: Das erste Mal, wenn ich den nvidia-Treiber als Standard installiere, wird in nvidia festgelegt. Wann sollte ich dann das Skript ausführen? und was meinst du mit login als root?
Glats

Leider war dieser Teil meiner Antwort etwas vage. Ich meinte, dass Sie sich anmelden und dann das Skript als root ausführen (z. B. mit sudo). Sie sollten das Skript ausführen, wenn Sie gerade angemeldet und bereits in den Intel-Modus gewechselt sind. Dadurch wird die NVIDIA-GPU vorübergehend vollständig deaktiviert. Die zweite sollte vor dem Abmelden im Intel-Modus ausgeführt werden.
C11235

2

Der Patch von @ C11235 funktioniert, jetzt kann ich zwischen NVIDIA und Intel wechseln, aber dies reduziert den Stromverbrauch nicht. : - / was bedeutet, dass beide noch laufen.

Übrigens ist dies ein einfacher Weg, dies zu tun.

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Vielen Dank! Leider hast du recht, siehe meine aktualisierte Frage. Stört es Sie, wenn ich meine Antwort aktualisiere, um Ihre einfachere Installationsmethode einzuschließen?
C11235

@ C11235 oh ja sicher. Ich konnte das alles herausfinden: gist.github.com/whizzzkid/37c0d365f1c7aa555885d102ec61c048 Ich laufe gerade mit 5,8 W im Leerlauf.
Whizzzkid

Okay das ist super! Ich habe Ihre Anweisungen überprüft und die Ursache für den verringerten Stromverbrauch ist dieselbe wie in meinem Fall. Ich habe ein Skript geschrieben, das bbswitch verwendet, um die NVIDIA-GPU zu deaktivieren, wenn Prime-Select den Intel-Modus umschaltet. In meinem Fall ist dies praktischer, da ich einen externen Monitor habe und fast ausschließlich den NVIDIA-Modus verwende. Deshalb wollte ich NVIDIA-Prime anstelle von Hummel verwenden. Außerdem soll die Leistung bei Verwendung von nvidia-prime besser sein als bei Verwendung von Hummeln.
C11235

2

Lösung für das Nicht-Booten nach dem Wechsel zur Intel-Videokarte:
Hinzufügen von Kernel-Boot-Parametern:

acpi_osi=! acpi_osi="Windows 2009"

Der Grund für dieses Problem: Fehler # 156341 im Kernel Lösungsquelle
: Link

einige detaillierter, vielleicht wird es leichter zu verstehen sein:

sudo echo -e "GRUB_CMDLINE_LINUX_DEFAULT='acpi_osi=! acpi_osi='Windows 2009''"  | sudo tee -a /etc/default/grub
sudo update-grub

In der aktuellen Form ist Ihre Antwort nicht so gut wie sie sein könnte. Könnten Sie überprüfen, wie man eine gute Antwort schreibt , und erwägen, Ihre Antwort zu erweitern
J. Starnes

Das hat bei mir tatsächlich funktioniert, aber die Antwort könnte verbessert werden. Ich werde die Verbesserung vorschlagen
Vladyslav Matviienko

1

Mögliches Problem mit dem 2. Fix: Letzter Befehl der "Poweroff" -Skript-Eingabeaufforderungen

    bash: /proc/acpi/bbswitch: No such file or directory

Anscheinend wird das bbswitch-Modul nicht einmal geladen, wenn ich im Intel-Modus neu starte (das Ändern des Modus wird erst wirksam, wenn ich neu starte, weiß nicht, ob dies normal ist). Es gibt also keine bbswitch-Datei und keine Möglichkeit, die nvidia-GPU auszuschalten.

Ich benutze:

  • MSI-Laptop (GL72 7RDX)
  • Integrierte GPU: Intel® HD Graphics 630 (Kaby Lake GT2)
  • separate GPU: Geforce GTX 1050
  • Betriebssystem: Ubuntu 16.04 lts

Lösung für dieses Problem:

Bearbeiten Sie die Datei / etc / modules (mit Root-Rechten) und fügen Sie die Zeile hinzu

    bbswitch

Jetzt ist bbswitch auch dann funktionsfähig, wenn ich im Intel-Modus boote, und der zweite Fix von C11235 funktioniert einwandfrei.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.