Schlechte Performance mit Nvidia-GPU trotz Bumblebee

Hinweis: In dem Thema Schlechte Performance mit Nvidia-GPU trotz Bumblebee gibt es 46 Antworten auf 5 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Das mit optirun -vv war natürlich Unsinn von mir…

    Quellcode

    1. journalctl -rb | grep bumble
    2. Sep 09 21:22:55 linux-maxim.suse kernel: CPU: 2 PID: 2365 Comm: bumblebeed Tainted: G O 4.13.0-2.gf518598-default #1
    3. Sep 09 21:22:55 linux-maxim.suse bumblebeed[2365]: [ 7.012933] [INFO]/usr/sbin/bumblebeed 3.2.1 started

    In /etc/bumblebee/bumblebee.conf sind folgende Pfade angegeben:
    LibraryPath=/usr/lib64/nvidia:/usr/lib/nvidia
    XorgModulePath=/usr/lib64/nvidia/xorg/,/usr/lib64/xorg/modules

    Das Komma ist wahrscheinlich ein Fehler, oder? Leider hat eine Korrektur zum Doppelpunkt samt reboot nichts gebracht.…

    Quellcode

    1. ll /usr/lib64/xorg/modules/drivers/
    2. insgesamt 352
    3. -rwxr-xr-x 1 root root 23696 18. Mai 00:17 fbdev_drv.so
    4. -rwxr-xr-x 1 root root 73936 18. Jul 10:21 modesetting_drv.so
    5. -rwxr-xr-x 1 root root 225944 18. Mai 00:18 nouveau_drv.so
    6. -rwxr-xr-x 1 root root 27800 18. Mai 00:18 vesa_drv.so
    7. ll /usr/lib64/nvidia/xorg/modules/updates/drivers/
    8. insgesamt 8708
    9. -rwxr-xr-x 1 root root 8916208 7. Sep 17:54 nvidia_drv.so
    Dateien

    Für den Inhalt des Beitrages 112503 haftet ausdrücklich der jeweilige Autor: Eldrad Ulthran

  • Bei mir ist etwas anders in bumblebee.conf
    LibraryPath=/usr/X11R6/lib64:/usr/X11R6/lib

    und im anderen Pfad sollten Kommas für die Liste benutzt werden:
    XorgModulePath=/usr/lib64/nvidia/xorg/modules,/usr/lib64/xorg/modules

    Und die Ursache für dein Problem könnte im Verzeichnis /usr/lib64/xorg/modules/drivers/ liegen:
    Bei dir fehlen die Dateien intel_drv.so, nv_drv.so und nvidia_drv.so

    bumbleebee versucht über XorgModulePath diese Treiber zu finden, kann sue aber nicht finden.

    Hast du alle Pakete installiert, die mit xf86... anfangen?
    z.B. xf86-video-intel. In diesem Paket ist der Treiber intel_drv.so?

    Für den Inhalt des Beitrages 112507 haftet ausdrücklich der jeweilige Autor: Usuario

  • Der Pfad /usr/X11R6/lib64 existiert bei mir zwar, ist aber leer. Das Komma hab ich wiederhergestelllt.
    Es gibt sehr viele verfügbare xf86-Pakete, von denen bei weitem nicht alle installiert sind (siehe Output von zypper se xf86). Einige davon brauche ich definitiv nicht, wie z.B. video-amdgpu. Ich habe nachträglich xf86-video-intel und xf86-video-nv installiert, sodass in /usr/lib64/xorg/modules/drivers/ zwei neue Dateien liegen: nv_drv.so und intel_drv.so. nvidia_drv.so liegt hingegen im Ordner /usr/lib64/nvidia/xorg/modules/updates/drivers/, sodass es ja auch gefunden werden müsste, oder?
    Die Fehlermeldung zum intel-module verschwunden, ansonsten fällt die GPU immer noch vom Bus…

    Quellcode

    1. grep EE /var/log/Xorg.0.log.old
    2. [ 840.923] Current Operating System: Linux linux-maxim.suse 4.13.0-2.gf518598-default #1 SMP PREEMPT Fri Sep 8 11:31:42 UTC 2017 (f518598) x86_64
    3. (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    4. [ 841.991] (EE) evdev: TPPS/2 IBM TrackPoint: Unable to query fd: Inappropriate ioctl for device
    5. [ 842.020] (EE) PreInit returned 2 for "TPPS/2 IBM TrackPoint"
    Dateien
    • xf86-search.txt

      (8,29 kB, 2 mal heruntergeladen, zuletzt: )
    • dmesg.txt

      (64,38 kB, 2 mal heruntergeladen, zuletzt: )

    Für den Inhalt des Beitrages 112522 haftet ausdrücklich der jeweilige Autor: Eldrad Ulthran

  • Schaut nicht so gut aus.
    Es deutet auf ein Hardwareproblem oder ein Problem mit den nvidia-treiber hin.

    Du kannst aber noch versuchen:

    in der /etc/modprobe.d/50-bbswitch.conf setzt du load_state=-1
    und dann rebooten.
    Wenn es nicht klappt setz wieder load_state=1 zurück.

    Das war ein alter Bug, vielleicht ist er wiederauferstanden.

    Wenn das nicht geklappt hat kannst noch versuchen folgende Zeile in die /etc/rc.d/boot.local zu schreiben:
    /usr/bin/nvidia-smi --persistence-mode=1
    und dann rebooten.

    Viel Glück!

    Für den Inhalt des Beitrages 112528 haftet ausdrücklich der jeweilige Autor: Usuario

  • Ich hatte auch gesehen, dass die meisten google-Treffer zum "fallen off the bus" auf einen Hardwarefehler hinwiesen. Da jedoch der Fehler nicht unter 42.2, sondern erst 42.3 auftrat, schloss ich das aus: Die GPU wird ja wohl kaum durch eine Installation eines OS beschädigt werden.

    Lustigerweise funktioniert nun optirun. Folgendes ist passiert: Ich hatte vor ein paar Tagen in /var/lib/dkms/nvidia/kernel-4.12.11-1.gbf7fb08-default-x86_64/log/make.log folgenden Eintrag gelesen: /usr/src/linux-4.12.11-1.gbf7fb08/Makefile:946: "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
    Dies hatte ich installiert, aber nicht daran gedacht, dkms nochmal alle Module bauen zu lassen. Gerade eben wurde das Update auf Kernel 4.13.1 verfügbar, außerdem habe ich nochmal penibel überprüft, dass alle bumblebee-Pakete aus dem korrekten Repository installiert sind. Tatsächlich gab es einige (z.B. primus), bei denen Yast die falsche Version aus den Standard-Repos ausgewählt hatte. Nach diesem Update baute dkms alle Module neu, und siehe da: Inklusive aller unserer bisherigen Änderungsversuche funktioniert optirun glxspheres und zeichnet ein weiches Bild.
    Was mich etwas wundert ist folgendes: Wenn die "VGL Compression: proxy" gesetzt ist, kriege ich nur 87 frames/s: wenn ich das in bumblebee.conf auf jpeg ändere, erhalte ich 109 fps. Eingebaut ist eine GTX 9040MX. Im Vergleich dazu hat KosstAmojan einst seinen Output gepostet (siehe Post #9), wo er mit einer älteren GTX 840M auf knapp 170fps gekommen ist:

    Quellcode

    1. optirun -vv glxspheres
    2. [ 1871.910843] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
    3. [ 1871.911560] [INFO]Configured driver: nvidia
    4. [ 1871.911894] [DEBUG]optirun version 3.2.1 starting...
    5. [ 1871.911926] [DEBUG]Active configuration:
    6. [ 1871.911956] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
    7. [ 1871.911994] [DEBUG] X display: :8
    8. [ 1871.912076] [DEBUG] LD_LIBRARY_PATH: /usr/lib64/nvidia:/usr/lib/nvidia
    9. [ 1871.912109] [DEBUG] Socket path: /var/run/bumblebee.socket
    10. [ 1871.912128] [DEBUG] Accel/display bridge: auto
    11. [ 1871.912143] [DEBUG] VGL Compression: jpeg
    12. [ 1871.912175] [DEBUG] VGLrun extra options:
    13. [ 1871.912192] [DEBUG] Primus LD Path: /usr/lib64/primus:/usr/lib/primus
    14. [ 1871.912281] [DEBUG]Using auto-detected bridge virtualgl
    15. [ 1872.702741] [INFO]Response: Yes. X is active.
    16. [ 1872.702761] [INFO]Running application using virtualgl.
    17. [ 1872.702877] [DEBUG]Process vglclient started, PID 17652.
    18. [ 1872.702959] [DEBUG]Hiding stderr for execution of vglclient
    19. [ 1872.706031] [DEBUG]SIGCHILD received, but wait failed with No child processes
    20. [ 1872.706149] [DEBUG]Process vglrun started, PID 17654.
    21. Polygons in scene: 62464 (61 spheres * 1024 polys/spheres)
    22. Visual ID of window: 0x21
    23. Context is Direct
    24. OpenGL Renderer: GeForce 940MX/PCIe/SSE2
    25. 109.279828 frames/sec - 121.956288 Mpixels/sec
    26. [ 1876.429563] [DEBUG]SIGCHILD received, but wait failed with No child processes
    27. [ 1876.429585] [DEBUG]Socket closed.
    28. [ 1876.429598] [DEBUG]Killing all remaining processes.
    Alles anzeigen
    Neues dmesg siehe Anhang.

    Einerseits bin ich erleichtert, dass es funktioniert, andererseits kann ich nicht sagen, warum…
    Dateien
    • dmesg.txt

      (78,86 kB, 0 mal heruntergeladen)

    Für den Inhalt des Beitrages 112529 haftet ausdrücklich der jeweilige Autor: Eldrad Ulthran

  • Berichtigung schrieb:

    Falsche Prios in der Repo-Liste.
    Würde ich wetten.
    Teilweise richtig: Bei dkms hat tatsächlich die höhere Prio von packman reingegrätscht. Die Bumblebee-Repos hatte ich bei 99 belassen, jedoch hat Yast nicht erkannt, dass bei z.B. primus die Version 0+git2015… (Bumblebee/Kernel) neuer ist als 20131226… (Standard) – trotz erlaubtem Herstellerwechsel.

    Was ich noch vergessen hatte: Sucht bumblebee im XorgModulePath auch alle Unterverzeichnisse durch? Der vollständige Pfad zu nvidia_drv.so ist nämlich /usr/lib64/nvidia/xorg/modules/updates/drivers/, was ich erst nachträglich in bumblebee.conf dazugeschrieben hatte.

    Für den Inhalt des Beitrages 112575 haftet ausdrücklich der jeweilige Autor: Eldrad Ulthran

www.cyberport.de