Kann nicht auf dedizierter Grafikkarte ausgeführt werden; kein erzwungenes Einschalten mit VGA-Umschaltung und Fehler bei Verwendung von DRI_PRIME

Kann nicht auf dedizierter Grafikkarte ausgeführt werden; kein erzwungenes Einschalten mit VGA-Umschaltung und Fehler bei Verwendung von DRI_PRIME

Ich verwende Xubuntu 18.04 auf meinem Dell Inpiron 15 7548. Das Gerät verfügt über eine integrierte HD 5500-Grafik und eine dedizierte AMD R7-Karte. Ich habe mehrmals versucht, auf meine dedizierte Karte zuzugreifen, habe es aber immer aufgegeben. Daher würde ich dem Problem wirklich gerne auf den Grund gehen, damit ich meine Hardware tatsächlich nutzen kann.

Zunächst einmal werden beide Karten problemlos erkannt:

narameh@Hydrogen:~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] (rev ff)

Ich habe versucht, Dells eigene Anleitung zur Verwendung von Switcheroo zu befolgen, um das gesamte System einfach auf die dedizierte Karte umzustellen. Diese finden Sie hier: https://www.dell.com/support/article/uk/en/ukbsdt1/sln298475/a-guide-to-hybrid-video-on-dell-pcs-with-an-ubuntu-operating-system?lang=en

Hier ist eine Ausgabe:

VGA-Umschaltung ist aktiviert:

narameh@Hydrogen:~$ grep -i switcheroo /boot/config-*
/boot/config-4.15.0-50-generic:CONFIG_VGA_SWITCHEROO=y
/boot/config-4.15.0-51-generic:CONFIG_VGA_SWITCHEROO=y

Switch-Datei vorhanden:

narameh@Hydrogen:~$ sudo ls -l /sys/kernel/debug/vgaswitcheroo/switch
-rw-r--r-- 1 root root 0 Jun 12 16:07 /sys/kernel/debug/vgaswitcheroo/switch

Standardzustand:

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0

Das Tutorial geht davon aus, dass es entweder Pwr oder Off ist, aber da dies ein Hybridsystem sein soll, ist es bei mir DynOff. Wenn ich also versuche, die getrennte GPU gemäß den Anweisungen einzuschalten, passiert nichts, da sie nicht wirklich getrennt, sondern nur dynamisch ausgeschaltet wird. Dies muss als Root geschehen, sonst kann ich aufgrund fehlender Berechtigungen kein Echo ausführen.

narameh@Hydrogen:~$ sudo su
root@Hydrogen:/home/narameh# echo ON > /sys/kernel/debug/vgaswitcheroo/switch
root@Hydrogen:/home/narameh# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :DynOff:0000:08:00.0

Als nächstes habe ich versucht, mit DRI_PRIME etwas auf meiner AMD-Karte laufen zu lassen, um zu sehen, ob ich es überhaupt zum Einschalten bringen kann. Ich kann es für eine Sekunde, indem ich

DRI_PRIME=1 glxinfo

in einem Terminalfenster und Spamming

narameh@Hydrogen:~$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch

im anderen. Allerdings spuckt das erste Terminal dann jede Menge Fehler aus und wir gehen zurück zu DynOff. Pastebin der Fehlerausgabe:https://pastebin.com/gJ4StVLS

Als ich den Fehlercode gegoogelt habe, bin ich auf dieses Thema mit einem ähnlichen Problem gestoßen:https://www.linuxquestions.org/questions/slackware-14/current-14-2-and-dri-3-and-dri_prime-ain%27t-working-4175578108/ Weitere Informationen zu den Aktivitäten dieses Posters finden Sie hier:https://kaosx.us/docs/hybrid_gfx/

Wenn ich die Schritte dort durchführe, erhalte ich Folgendes

DRI scheint in Ordnung zu sein:

narameh@Hydrogen:~$ cat /var/log/Xorg.0.log | grep DRI
[    45.527] (II) RADEON(G0): [DRI2] Setup complete
[    45.527] (II) RADEON(G0): [DRI2]   DRI driver: radeonsi
[    45.527] (II) RADEON(G0): [DRI2]   VDPAU driver: radeonsi
[    46.672] (II) modeset(0): [DRI2] Setup complete
[    46.672] (II) modeset(0): [DRI2]   DRI driver: i965
[    46.672] (II) modeset(0): [DRI2]   VDPAU driver: i965
[    46.704] (II) GLX: Initialized DRI2 GL provider for screen 0


narameh@Hydrogen:~$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x66 cap: 0x9, Source Output, Sink Offload crtcs: 3 outputs: 2 associated providers: 1 name:modesetting
Provider 1: id: 0x41 cap: 0x6, Sink Output, Source Offload crtcs: 2 outputs: 0 associated providers: 1 name:OLAND @ pci:0000:08:00.0
narameh@Hydrogen:~$ xrandr --setprovideroffloadsink 0x41 0x66
narameh@Hydrogen:~$ 

Beachten Sie, dass keine Fehler ausgegeben werden, sodass dieser Befehl einwandfrei zu funktionieren scheint. Wenn ich dann versuche, ihn auf einer der beiden Karten auszuführen, funktioniert das Intel-Onboard einwandfrei:

narameh@Hydrogen:~$ DRI_PRIME=0 glxinfo | grep "OpenGL vendor string"
OpenGL vendor string: Intel Open Source Technology Center

Aber AMD wirft immer noch die gleichen Fehler aus:https://pastebin.com/W56z6z3L

Am Ende führt der Benutzer im Thread seine Probleme auf ein fehlerhaftes Kernel-Commit zurück und führt ein Rollback durch. Da dies jedoch a) ein Thread aus dem Jahr 2016 ist und b) ich kein fortgeschrittener genug Benutzer bin, um an meinem Kernel herumzubasteln, ist das für mich keine Option.

Ich kann mehrere andere ähnliche Fehler finden, die mit Kernel-Versionen zusammenzuhängen scheinen (z. B.https://bugs.freedesktop.org/show_bug.cgi?id=102800auf Ubuntu 17.01 oder diesemhttps://bugs.freedesktop.org/show_bug.cgi?id=94874)

In beiden Themen wird empfohlen, radeon.nopm=0 zum Kernel-Boot hinzuzufügen, aber ich zögere, dies ohne Anleitung zu versuchen, da ich nicht genug darüber weiß, was ich tue.

Ich hoffe, dass aus diesem Beitrag klar wird, dass ich mir die Mühe gemacht habe, das Problem selbst zu lösen, aber ich stoße an die Grenzen meines Wissens und möchte mein System nicht durcheinanderbringen, indem ich Dinge ändere, die ich nicht verstehe oder nicht rückgängig machen kann, wenn ich am Ende deswegen mit einem schwarzen Bildschirm boote. Für die Hilfe von jemandem mit mehr Erfahrung wäre ich sehr dankbar.

tldr: diskrete AMD ist in DynOff kann nicht mit VGA_switcheroo erzwungen werden. DRI_PRIME kann mit diskreten Karten kommunizieren, aber Fehler mit wasscheintein Kernel-Problem? Der Benutzer ist mit seinem Wissen am Ende und hat Angst, Dinge kaputt zu machen. Hilfe ist willkommen.

EDIT: realisiert, einschließlich Kernel-Version usw. wäre nützlich:

    narameh@Hydrogen:~$ uname -r
    4.15.0-51-generic
    narameh@Hydrogen:~$ lspci -nnk | grep -i vga -A3
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
    Subsystem: Dell HD Graphics 5500 [1028:066f]
    Kernel driver in use: i915
    Kernel modules: i915
--
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] [1002:6604] (rev ff)
    Kernel driver in use: radeon
    Kernel modules: radeon, amdgpu

EDIT 2: Auch nützlich zu erwähnen ist, dass es in meinem BIOS keine Optionen zum Ein-/Ausschalten meiner GPUs gibt. Überhaupt keine videobezogenen Optionen.

Antwort1

Zu meiner völligen Verblüffung funktioniert es jetzt. Bedenken Sie, dass ich seit über einem Jahr immer wieder versuche, es zum Laufen zu bringen. Es hat nie geklappt. Heute habe ich beschlossen, nach dem Schreiben dieses Beitrags eine Pause einzulegen. Ich habe neugestartet, um meine BIOS-Optionen noch einmal zu überprüfen, und dann meine ungenutzten PPAs gelöscht. Dann habe ich DRI_PRIME=1 glxinfo ausgeführt, um zu sehen, ob ich noch mehr Informationen aus dem Fehlerprotokoll bekommen könnte, und es hat einfach... funktioniert. Ich habe ehrlich gesagt keine Ahnung, was passiert ist. Weder der Neustart noch das Löschen einiger ungenutzter PPAs hätten dies überhaupt beeinflussen sollen. WTF. Ich bin aber sehr froh, dass es jetzt funktioniert! Betrachten Sie dieses Problem als gelöst.

verwandte Informationen