Bumblebee for Optimus systems on Opensuse 15.1

Recently, I upgraded a laptop from Opensuse Leap 15.0 to Leap 15.1. I successfully followed the upgrade procedure described by the Linux Kamarada in

kamarada: how-to-upgrade-from-opensuse-leap-150-to-151/ .

The only problems I got had to do with the Optimus-design of my old laptop. When I followed my own description how to install and use Bumblebee as described in

Installation Opensuse Leap 15 auf Laptop – Grafik Probleme, Optimus

I always got an error message when trying to load the nvidia kernel module:

mytux:~ # sudo modprobe nvidia

modprobe: ERROR: could not insert 'nvidia': No such device

The reason was given by the command “dmesg”; the Nvidia device was no longer available on the PCI bus:

NVRM: The NVIDIA GPU 0000:01:00.0
               NVRM: (PCI ID: 10de:134d) installed in this system has
               NVRM: fallen off the bus and is not responding to commands.
[    3.312435] nvidia: probe of 0000:01:00.0 failed with error -1

The bbswitch-module could, however, be loaded without any problems.

Workaround

A workaround is described in here :

After having started KDE or Gnome issue the following commands as root in a terminal:

mytux:~ # echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
mytux:~ # echo 1 > /sys/bus/pci/devices/0000:00:02.0/rescan

Afterwards my Nvidia card (640M) was available on the bus again – and e.g. “primusrun glxgears” worked.

So, something with starting the dkms.service and the bumblebeed.service, switching off the Nvidia card by the bbswitch module during system startup and later on loading of the nvidia-module was failing. I suspected the bbswitch-module to be the cause …

Solution

In my case I could solve the problem by installing the RPM packets

bumblebee, dkms, bbswitch, bbswitch-kmp-default

from the standard Update repository of Opensuse Leap 15.1

https://download.opensuse.org/update/leap/15.1/oss/

instead of installing them from the Bumblebee-repository

https://download.opensuse.org/repositories/X11:/Bumblebee/openSUSE_Leap_15.1

Otherwise I followed the instructions in
Installation Opensuse Leap 15 auf Laptop – Grafik Probleme, Optimus .

I.e.: I installed only the packets

nvidia-bumblebee, nvidia-bumblebee-32bit

from the Bumblebee repository.

Do not forget to issue a “mkinitrd” after you have successfully tested e.g. “optirun glxgears” and “tee /proc/acpi/bbswitch <<< OFF". Then reboot and use Optimus as you were used to. I do not know what is wrong with the packets in the Bumblebee repository - but I hope this bug is fixed soon. It is a bit annoying when one has to play around with packets of different repositories.

Addendum, 03.08.2020: A problem with VirtualGL

The present Bumblebee repository of Opensuse contains a new version of the VirtualGL library (version 2.6.4). Do NOT install this RPM-file. It will break your optirun/primusrun with an error:

Error: undefined symbol: glXGetProcAddressARB

Although this type of error is discussed in various forums on the Internet I have no clue how to mend it.

Workaround: Use the original VirtualGL RPM of the Opensuse Leap 15.1 Update repository! Works on my system.

 

Installation Opensuse Leap 15 auf Laptop – Grafik Probleme, Optimus

Einer meiner Laptops ist in die Jahre gekommen (letzte BIOS-Generation; Optimus-System). Auf diesem System stand eine Neu-Installation von Opensuse Leap 15.0 an (kein Upgrade). Interessant ist dann immer wieder das Verhalten der Grafikarten – hier einer Nvidia und einer im Prozessor integrierten Intel-Karte. Schon früher gab es im Zuge von Upgrades immer wieder Probleme, die Bumblebee-Unterstützung zum Laufen zu bringen. Wegen der Neuinstallation musste ich die ersten Hürden diesmal schon zu Beginn der Installation überwinden. Ohne zusätzliche Maßnahmen lief danach auch der i915-Treiber für die in den Prozessor integrierte Intel-Grafik-Karte nicht so, wie ich das erwartet hätte. Bei der Bumblebee-Installation gab es ferner eine kleine, aber wichtige Neuerung im Zusammenhang mit bbswitch. Ohne deren Beachtung konnte ich optirun/primusrun für 3D-Anwendungen nicht zum Laufen bringen.

Ich stelle nachfolgend die wichtigsten Schritte für einen erfolgreichen Grafik-Setup auf einem solchen System zusammen.

“No KMS” bei den Vorgaben für die Textkonsole(n) am Startschirm für den SuSE-Installer

SuSE bietet auf dem Startschirm der Installation etliche Optionen für die Grafik-Einstellungen an (F3-Taste). Während ich beim ersten und letzten Punkt des aufklappenden Menüs maximale Auflösungen wählen konnte, musste ich bei der Textkonsole zwingend “Keine KMS” wählen.

Installer Size => 1920×1200
Text Console Size => Keine KMS (ggf. zwingend auf Optimus-System)
Video BIOS Size => 1920 x 1080

Tat ich das nicht, starb das System bei der HW-Erkennung mit udev (Stage 6/6 nach dem Laden des Kernels); der Installer landete im Nirwana (schwarzer Schirm mit Cursor) und weigerte sich, seine Arbeit fortzusetzen. Über die genaue Ursache des Problems mag ich hier nicht spekulieren (Optimus => Zugriff auf Nvidia-Karte ohne hinreichenden Treiber?). Siehe bei Interesse zu KMS und dem Suse-Installer die Links am Ende des Beitrags.

Durch Abschalten von KMS im Installer wird dem Kernel der Parameter “nomodeset” übergeben. Danach lief bei mir der grafische Installer in der gewünschten hohen Auflösung. Der Parameter “nomodeset” wird im Zuge der Installation in der Grub2-Konfiguration verankert (s. die Datei “/etc/default/grub” und die resultierenden Einträge in der “/boot/grub2/grub.cfg”).

Desktop-SW KDE Plasma 5 über Pattern installieren und Nouveau-Treiber blacklisten

Um die Kontrolle über die Installation zu behalten, empfiehlt es sich, schrittweise vorzugehen und nicht sofort einen grafischen Desktop zu installieren. Erledigen kann man das im Installer bzw. nach der Installation in YaST durch Abwahl bzw. Auswahl bestimmter Paketgruppen und “Schemata“, von denen SuSE etliche anbietet. Im Installer wählt man geeignete Pakte für eine kleinere Installation aus – z.B. für eine einfache Server-Basis-Installation. Bootet unser System danach erfolgreich in den Multiuser-Modus (mit 6 aktiven Textkonsolen; Wechsel mit Ctrl-Alt-F1 bis Ctrl-Alt-F6), so können wir z.B. einen KDE-Desktop unter YaSTs “Software Management” mittels des Schemas “KDE Plasma5 Desktop Environment” installieren.

Ich gehe dabei gemäß folgender Schritte vor:

1) Installieren des KDE 5 Plasma Schemas
Installieren des KDE Plasma Schemas über YaST >> “Software installieren und löschen” >> Anzeigen >> Schemata >> “KDE Plasma 5 Desktop Environment”.
Wir prüfen, dass das Paket “Mesa-dri-nouveau” nicht installiert wurde. Wenn doch, deinstallieren wir es.

2) Nouveau-Treiber “blacklisten
Öffnen der Datei “/etc/modprobe.d/50-blacklist.conf“. Hinzufügen folgender Zeilen am Ende (ggf. mit erläuternden Kommentaren):

blacklist nouveau
options
nouveau modeset=0

3) mkinitrd
Ausführen von “sudo mkinitrd” an einem Terminal. Dies ist notwendig, um evtl. nouveau-Treiber-Komponenten auch aus dem “initramfs” zu entfernen.

4) Reboot und Wechsel in das “graphical.target” von systemd
Nach einem Reboot sollte es möglich sein, in den Grafikmodus zu wechseln; dort wird einem der grafische Login-Schirm (bei KDE: SDDM) angeboten. Landet man am Ende des Hochfahrens nicht direkt auf dem grafischen Terminal (Ctrl-Alt-F7), weil das systemd “default.target” noch das “multiuser.target” ist, muss man auf einem Konsolen-Terminal als User root “init 5” absetzen. Später, wenn KDE Plasma korrekt läuft, kann man dann z.B. über Yasts “Services Manager” das “default.target” von systemd ändern. (Wer das lieber auf der Kommandozeile macht, sollte sich mit den Kommandos “systemctl get-default” und “systemctl set-default” befassen.)

Das Arbeiten mit dem grafischen Desktop ging dann in meinem Fall leider überhaupt nicht flüssig; man merkt das bereits am trägen Aufbau des Login-Schirms – vor allem aber nach einem Login und der Darstellung des KDE-Desktops. Es fehlt die 2D-Grafik-Beschleunigung, da der i915-Treiber für die in den Prozessor integrierte Graka noch nicht richtig funktioniert. Der erfordert offenbar KMS, das wir ja aber bei der Installation abschalten mussten (s.o.). Das können wir nun korrigieren.

Kernelparameter “nomodeset” entfernen, mkinitrd, Reboot und Laden des i915-Moduls prüfen

Wir unterbinden jetzt die Übergabe des Parameters “nomodeset” an den Kernel über die Grub2-Konfiguration. Dazu editieren wir die Datei “/etc/default/grub” und entfernen dort den Wert “nomodeset” im Eintrag für “GRUB_CMDLINE_LINUX_DEFAULT”. Der Eintrag sieht danach etwa wie folgt aus:

GRUB_CMDLINE_LINUX_DEFAULT=’splash=silent quiet showopts resume=/dev/mapper/cr-swap’

Um das wirksam zu machen, setzen wir erneut “mkinitrd” ab und initiieren dann einen Reboot-Vorgang (init 6). Bevor wir uns im Anschluss am SDDM-Login-Schirm einloggen, überprüfen wir an einem Konsolen-Terminal, ob das i915-Modul ordnungsgemäß geladen ist; das sollte dann etwa so aussehen:

 
mytux:~ # lsmod | grep "i915\|video"
i915                 1953792  7
i2c_algo_bit           16384  1 i915
drm_kms_helper        200704  1 i915
drm                   438272  5 i915,drm_kms_helper
video                  45056  2 msi_wmi,i915

Am grafischen Terminal (Ctrl-Alt-F7) ist dann ein erster Zwischenerfolg zu vermelden: Das Arbeiten mit dem Desktop geht nun flüssig. Für 2D-beschleunigtes KDE reicht die integrierte Intel Graka völlig aus 🙂 .

Bumblebee installieren

Wir wollen nun die Optimus-Konfiguration für 3D-Anwendungen nutzen. Wie schon früher für Leap 42.3 beschrieben (s.
Upgrade Laptop to Opensuse 42.3, Probleme mit Bumblebee und VMware WS 12.5, Workarounds )
gilt, dass man nur das Repository unter “http://download.opensuse.org/repositories/X11:/” für seine Distribution nutzen sollte:

https://download.opensuse.org/repositories/X11:/Bumblebee/openSUSE_Leap_15.0/

Sonst gar nichts! Das Nvidia-Community-Repository ist normalerweise nicht erforderlich.

Im Gegensatz zu Leap 42.3 gehen wir mit folgenden Schritten vor, nachdem wir das Bumblebee-Repository unter YaSTs “Software Management” eingebunden haben:

Schritt 1 – Paketinstallation: Wir installieren die folgenden Pakete:

VirtualGL, bumblebee, dkms, bbswitch, bbswitch-kmp-default

Achtet bitte darauf, dass ihr die zueinander passenden Versionen aus dem Bumblebee-
Repository (und nicht aus dem Leap-15-Update Repository) installiert. Nützlich ist auch das Paket “Mesa-demo-x”, das die Testprogramme “glxgears” und “glxspheres” als Testprogramme beinhaltet. Wir prüfen zudem, dass die Pakete “x11-tools” und “xf86-video-nv” installiert sind. Wenn nicht: Installieren!

Schritt 2 – Aktivierung dkms: Wir aktivieren nun den “dkms”-Service mittels der Kommandos “systemctl enable dkms; systemctl start dkms”. Im Gegensatz zur Leap 42.3-Installation schadet dieser Service diesmal nicht 🙂 ; er garantiert später vielmehr die Neukompilation der Module bei Kerneländerungen oder Modul-Reinstallationen.

Schritt 3 – Gruppe “bumblebee” anlegen: Dann legen wir (z.B. mit YaSTs “User and Group Management”) eine User-Gruppe “bumblebee” an. Bei mir geschah dies bei der Bumblebee-Installation leider nicht automatisch. Dieser Gruppe ordnen wir dann diejenigen User zu, die später “optirun” und “primusrun” für den Start von 3D-Applikationen verwenden dürfen (ggf. auch root).

Schritt 4 – Wichtige Modifikation der Datei “etc/modprobe.d/50-bbswitch.conf”
Ein entscheidender Schritt ist nun, dass wir die Datei “etc/modprobe.d/50-bbswitch.conf” editieren; sie sollte einen Eintrag von genau der Form

options bbswitch load_state=-1 unload_state=1

beinhalten. Wichtig ist das “-1” bei load_state !!

Schritt 5 – Aktivieren des bumblebee-Services

systemctl enable bumblebeed.service
systemctl start bumblebeed.service

Das “d” am Ende von “bumblebeed” ist wichtig; es handelt sich um einen Dämon.

Wir prüfen dann, ob das bbswitch-Module ordnungsgemäß erzeugt wurde. Ein “find / -name “*bbswitch*” sollte etwa Folgendes zeigen:

 
mytux:~ # find / -name "*bbswitch*"
/usr/share/doc/packages/bbswitch
/usr/lib/modules-load.d/bbswitch.conf
/sys/module/bbswitch
/etc/modprobe.d/50-bbswitch.conf
/etc/modprobe.d/50-bbswitch.conf.rpmsave
/proc/acpi/bbswitch
/lib/modules/4.12.14-lp150.11-default/updates/bbswitch.ko
/lib/modules/4.12.14-lp150.12.28-default/weak-updates/updates/bbswitch.ko

“bbswitch.ko” sollte für alle installierten Kernelvarianten vorhanden sein; zwingend aber für den aktuell verwendeten Kernel. Treten hier Fehler auf, so hat dies ggf. damit zu tun, dass schon früher einmal nvidia-Module (über andere Repositories) erzeugt wurden. Die entsprechenden RPM-Pakete sind zu löschen; danach muss man manuell nach nvidia-Kernel-Modulen suchen und diese ebenfalls manuell löschen. Anschließend sollte man die bbswitch-Pakte reinstallieren.

Wir probieren dann aus, ob sich das erzeugte bbswitch-Modul mittels

modeprobe bbswitch

laden lässt. Dies sollte fehlerfrei möglich sein.

Nvidia-Treiber installieren

Nun installieren wir die Pakete “nvidia-bumblebee, nvidia-bumblebee-32bit”. Dies sollte eine Weile dauern, da die Treiber runtergeladen und kompiliert werden müssen. Am Ende dieser Installation sollte ein “find / -name “*nvidia*” etwa Folgendes zeigen; der Output ist länglich, aber für einen Vergleich mit eurem eigenen System geeignet:

 
mytux:~ #
/usr/lib64/libnvidia-cfg.so.1
/usr/lib64/libnvidia-opencl.so.1
/usr/lib64/libnvidia-opencl.so.410.93
/usr/lib64/libnvidia-ml.so.1
/usr/lib64/libnvidia-glvkspirv.so
/usr/lib64/nvidia
/usr/lib64/nvidia/libnvidia-gtk3.so.410.93
/usr/lib64/nvidia/xorg/modules/extensions/libglxserver_nvidia.so
/usr/lib64/nvidia/xorg/modules/extensions/libglxserver_nvidia.so.410.93
/usr/lib64/libnvidia-compiler.so.410.93
/usr/lib64/vdpau/libvdpau_nvidia.so.1
/usr/lib64/vdpau/libvdpau_nvidia.so.410.93
/usr/lib64/libnvidia-
ptxjitcompiler.so.410.93
/usr/lib64/libnvidia-opencl.so
/usr/lib64/libnvidia-ml.so.410.93
/usr/lib64/libnvidia-tls.so.410.93
/usr/lib64/libnvidia-glvkspirv.so.410.93
/usr/lib64/xorg/modules/drivers/nvidia_drv.so
/usr/lib64/libnvidia-ptxjitcompiler.so.1
/usr/lib64/libnvidia-ml.so
/usr/lib64/libnvidia-fatbinaryloader.so.410.93
/usr/lib64/libnvidia-cfg.so.410.93
/usr/lib64/libnvidia-glcore.so.410.93
/usr/bin/nvidia-settings
/usr/bin/nvidia-smi
/usr/bin/nvidia-bug-report.sh
/usr/bin/nvidia-xconfig
/usr/share/pixmaps/nvidia-settings.png
/usr/share/nvidia
/usr/share/nvidia/nvidia-application-profiles-410.93-key-documentation
/usr/share/doc/nvidia-utils
/usr/share/doc/nvidia
/usr/share/doc/nvidia/nvidia                                                                                                                                        
/usr/share/doc/packages/nvidia-bumblebee                                                                                                                            
/usr/share/doc/packages/nvidia-bumblebee/README.nvidia-bumblebee                                                                                                    
/usr/share/doc/packages/nvidia-bumblebee-32bit                                                                                                                      
/usr/share/doc/packages/nvidia-bumblebee-32bit/README.nvidia-bumblebee-32bit
/usr/share/applications/nvidia-settings.desktop
/usr/share/vulkan/icd.d/nvidia_icd.x86_64.json
/usr/share/vulkan/icd.d/nvidia_icd.i586.json
/usr/share/man/man1/nvidia-xconfig.1.gz
/usr/share/man/man1/nvidia-settings.1.gz
/usr/share/man/man1/nvidia-smi.1.gz
/usr/share/licenses/nvidia-utils
/usr/share/licenses/kernel-firmware/LICENCE.nvidia
/usr/share/licenses/nvidia
/usr/share/licenses/nvidia/nvidia
/usr/src/linux-4.12.14-lp150.12.28/arch/arm64/boot/dts/nvidia
/usr/src/linux-4.12.14-lp150.12.28/drivers/video/fbdev/nvidia
/usr/src/linux-4.12.14-lp150.12.28/drivers/video/fbdev/nvidia/nvidia.c
/usr/src/linux-4.12.14-lp150.12.28/drivers/char/agp/nvidia-agp.c
/usr/src/linux-4.12.14-lp150.12.28/drivers/net/ethernet/nvidia
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/i2c/nvidia,tegra186-bpmp-i2c.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/iommu/nvidia,tegra20-gart.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/iommu/nvidia,tegra30-smmu.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/fuse/nvidia,tegra20-fuse.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-sgtl5000.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5677.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra20-das.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra30-hda.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra20-ac97.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra30-ahub.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra20-i2s.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/
bindings/sound/nvidia,tegra-audio-wm8753.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-rt5640.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max98090.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/misc/nvidia,tegra20-apbmisc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/cpufreq/nvidia,tegra124-cpufreq.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/usb/nvidia,tegra20-ehci.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/rtc/nvidia,tegra20-rtc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra210-pinmux.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra20-pinmux.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-pinmux.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-xusb-padctl.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra30-pinmux.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pinctrl/nvidia,tegra114-pinmux.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/thermal/nvidia,tegra124-soctherm.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/ata/nvidia,tegra124-ahci.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/dma/nvidia,tegra210-adma.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/dma/nvidia,tegra20-apbdma.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/mmc/nvidia,tegra20-sdhci.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/phy/nvidia,tegra20-usb-phy.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/bus/nvidia,tegra20-gmi.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/display/tegra/nvidia,tegra114-mipi.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/interrupt-controller/nvidia,tegra20-ictlr.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/input/nvidia,tegra20-kbc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/mailbox/
nvidia,tegra186-hsp.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra30-mc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra124-emc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra114-car.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra210-car.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra124-dfll.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra20-car.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/clock/nvidia,tegra30-car.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-actmon.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-mc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-emc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,nvec.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
/usr/src/linux-4.12.14-lp150.12.28/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-ahb.txt
/usr/src/nvidia-410.93
/usr/src/nvidia-410.93/nvidia
/usr/src/nvidia-410.93/nvidia/nvidia.Kbuild
/usr/src/nvidia-410.93/nvidia/nvidia-sources.Kbuild
/usr/src/nvidia-410.93/nvidia-modeset
/usr/src/nvidia-410.93/nvidia-modeset/nvidia-modeset-linux.c
/usr/src/nvidia-410.93/nvidia-modeset/nvidia-modeset-os-interface.h
/usr/src/nvidia-410.93/nvidia-modeset/nvidia-modeset.Kbuild
/usr/src/nvidia-410.93/nvidia-drm
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-encoder.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-priv.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm.Kbuild
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-fb.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-drv.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-gem-nvkms-memory.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-gem-user-memory.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-connector.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-helper.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-prime-fence.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-gem.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-gem.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-os-interface.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-utils.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-modeset.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-encoder.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-modeset.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-helper.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-ioctl.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-connector.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-utils.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-fb.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-crtc.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-conftest.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-dma-fence-helper.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-linux.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-crtc.h
/usr/src/nvidia-
410.93/nvidia-drm/nvidia-drm-gem-user-memory.h
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-drv.c
/usr/src/nvidia-410.93/nvidia-drm/nvidia-drm-prime-fence.h
/usr/src/nvidia-410.93/nvidia-uvm
/usr/src/nvidia-410.93/nvidia-uvm/nvidia-uvm-sources.Kbuild
/usr/src/nvidia-410.93/nvidia-uvm/nvidia-uvm.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia_icd.x86_64.json
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-settings
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-smi
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-xconfig.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia_drv.so
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia.icd
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-modprobe
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-installer.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-settings.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia_icd.json.template
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-fbc.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia/nvidia.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia/nvidia-sources.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset-linux.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset-os-interface.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-encoder.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-priv.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-fb.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-drv.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-connector.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-helper.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-prime-fence.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-os-interface.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-utils.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-modeset.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-encoder.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-modeset.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-helper.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-ioctl.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-connector.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-utils.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-fb.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-crtc.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-conftest.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-dma-fence-helper.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-linux.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-crtc.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-user-memory.h
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-drv.c
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-prime-fence.h
/usr/
src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm/nvidia-uvm-sources.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm/nvidia-uvm.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/libglxserver_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/10_nvidia_wayland.json
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-opencl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-glsi.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-settings
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-smi
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-xconfig.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia_drv.so
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia.icd
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-modprobe
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-installer.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-settings.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia_icd.json.template
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-fbc.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia/nvidia.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia/nvidia-sources.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset-linux.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset-os-interface.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-modeset/nvidia-modeset.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-encoder.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-priv.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-fb.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-drv.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-connector.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-helper.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-prime-fence.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-os-interface.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-utils.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-modeset.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-encoder.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-modeset.c
n/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-helper.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-ioctl.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-connector.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-utils.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-fb.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-crtc.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-conftest.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-dma-fence-helper.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-linux.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-crtc.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-gem-user-memory.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-drv.c
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-drm/nvidia-drm-prime-fence.h
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm/nvidia-uvm-sources.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/kernel/nvidia-uvm/nvidia-uvm.Kbuild
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libglxserver_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/10_nvidia_wayland.json
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-opencl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-glsi.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-modprobe.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-bug-report.sh
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-server
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-debugdump
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-application-profiles-410.93-rc
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-fbc.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-opencl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glsi.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-compiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libvdpau_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ptxjitcompiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-eglcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libGLESv2_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libGLESv1_CM_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ml.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glvkspirv.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libGLX_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libEGL_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ifr.so.410.93
n/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-fatbinaryloader.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-encode.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/tls/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-installer
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-rtcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-compiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-gtk3.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-gtk2.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libvdpau_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-wfb.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-ptxjitcompiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-eglcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-cbl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libGLESv2_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced-init.tar.bz2
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-settings.desktop
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libGLESv1_CM_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-control.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-application-profiles-410.93-key-documentation
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-ml.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-glvkspirv.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libGLX_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/html/nvidia-ml.html
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/html/nvidia-debugdump.html
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/html/nvidiasettings.html
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/html/nvidia-smi.html
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/html/nvidia-persistenced.html
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-smi.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libEGL_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-settings.png
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-control
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-xconfig
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-ifr.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-fatbinaryloader.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/10_nvidia.json
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-cfg.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-encode.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/tls/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-glcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/libnvidia-egl-wayland.so.1.1.0
/usr/src/NVIDIA-Linux-x86_64-410.93/NVIDIA-Linux-x86_64-410.93/nvidia-drm-outputclass.conf
/usr/src/NVIDIA-
Linux-x86_64-410.93/nvidia-modprobe.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-bug-report.sh
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-server
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-debugdump
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-application-profiles-410.93-rc
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-fbc.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-opencl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glsi.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-compiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libvdpau_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ptxjitcompiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-eglcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libGLESv2_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libGLESv1_CM_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ml.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glvkspirv.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libGLX_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libEGL_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-ifr.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-fatbinaryloader.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-encode.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/tls/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/32/libnvidia-glcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-installer
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-rtcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-compiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-gtk3.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-gtk2.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libvdpau_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-wfb.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-ptxjitcompiler.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-eglcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-cbl.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libGLESv2_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-persistenced-init.tar.bz2
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-settings.desktop
/usr/src/NVIDIA-Linux-x86_64-410.93/libGLESv1_CM_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-control.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-application-profiles-410.93-key-documentation
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-ml.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-glvkspirv.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libGLX_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/html/nvidia-ml.html
/usr/src/NVIDIA-Linux-x86_64-410.93/html/nvidia-debugdump.html
/usr/src/NVIDIA-Linux-x86_64-410.93/html/nvidiasettings.html
/usr/src/NVIDIA-Linux-x86_64-410.93/html/nvidia-smi.html
/usr/src/NVIDIA-Linux-x86_64-410.93/html/nvidia-persistenced.html
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-smi.1.gz
/usr/src/NVIDIA-Linux-x86_64-410.93/libEGL_nvidia.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-settings.png
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-cuda-mps-control
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-xconfig
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-ifr.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-fatbinaryloader.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/10_nvidia.json
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-cfg.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia_icd.i586.json
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-encode.so.410.93
/usr/src/NVIDIA-Linux-x86_
64-410.93/tls/libnvidia-tls.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-glcore.so.410.93
/usr/src/NVIDIA-Linux-x86_64-410.93/libnvidia-egl-wayland.so.1.1.0
/usr/src/NVIDIA-Linux-x86_64-410.93/nvidia-drm-outputclass.conf
/usr/src/kernel-modules/nvidia-340.107-default
/usr/src/kernel-modules/nvidia-uvm-340.107-default
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/nvidia.mod.c
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/.nvidia.ko.cmd
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/.nvidia.mod.o.cmd
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/.tmp_versions/nvidia.mod
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/.nvidia.o.cmd
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/nvidia.mod.o
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/nvidia.ko
/usr/src/kernel-modules/nvidia-uvm-340.107-default/rm/nvidia.o
/usr/src/kernel-modules/nvidia-390.87-default
/usr/src/linux-4.12.14-lp150.12.28-obj/x86_64/default/include/config/net/vendor/nvidia.h
/usr/lib/libnvidia-opencl.so.1
/usr/lib/libnvidia-opencl.so.410.93
/usr/lib/libnvidia-ml.so.1
/usr/lib/libnvidia-glvkspirv.so
/usr/lib/nvidia
/usr/lib/libnvidia-compiler.so.410.93
/usr/lib/vdpau/libvdpau_nvidia.so.410.93
/usr/lib/libnvidia-ptxjitcompiler.so.410.93
/usr/lib/udev/rules.d/99-bumblebee-nvidia-dev.rules
/usr/lib/libnvidia-ml.so.410.93
/usr/lib/libnvidia-tls.so.410.93
/usr/lib/libnvidia-glvkspirv.so.410.93
/usr/lib/libnvidia-ptxjitcompiler.so.1
/usr/lib/libnvidia-fatbinaryloader.so.410.93
/usr/lib/libnvidia-glcore.so.410.93
/etc/zypp/repos.d/download.nvidia.com-leap.repo
/etc/modprobe.d/50-nvidia-default.conf.rpmsave
/etc/bumblebee/xorg.conf.nvidia
/etc/apparmor.d/abstractions/nvidia
/etc/OpenCL/vendors/nvidia.icd
/lib/firmware/nvidia
/lib/firmware/LICENCE.nvidia
/lib/modules/4.12.14-lp150.11-default/kernel/drivers/net/ethernet/nvidia
/lib/modules/4.12.14-lp150.12.28-default/kernel/drivers/net/ethernet/nvidia
/lib/modules/4.12.14-lp150.12.28-default/updates/nvidia-modeset.ko
/lib/modules/4.12.14-lp150.12.28-default/updates/nvidia-drm.ko
/lib/modules/4.12.14-lp150.12.28-default/updates/nvidia-uvm.ko
/lib/modules/4.12.14-lp150.12.28-default/updates/nvidia.ko
/var/cache/zypp/solv/download.nvidia.com-leap
/var/cache/zypp/packages/download.nvidia.com-leap
/var/cache/zypp/raw/download.nvidia.com-leap
/var/lib/dkms/nvidia
/var/lib/dkms/nvidia/410.93/4.12.14-lp150.12.28-default/x86_64/module/nvidia-modeset.ko
/var/lib/dkms/nvidia/410.93/4.12.14-lp150.12.28-default/x86_64/module/nvidia-drm.ko
/var/lib/dkms/nvidia/410.93/4.12.14-lp150.12.28-default/x86_64/module/nvidia-uvm.ko
/var/lib/dkms/nvidia/410.93/4.12.14-lp150.12.28-default/x86_64/module/nvidia.ko

Am wichtigsten sind die Einträge für die Module (Endung “.ko”) unter “lib/modules/EURE_AKTUELLE_KERNEL_VERSION”. Einige dieser Module sind für CUDA und die Nutzung der Grafikkarte als schnelles Rechenwerkzeug relevant.

Ihr seht an meinem Output u.a. auch, dass der Treiber die Version 410.93 hat. Der funktioniert für Geforce-Karten (ab Geforce 400). Diese Version wird sich mit künftigen Updates aus dem Bumblebee-Repository ändern. Ihr müsst deshalb vorab prüfen, ob eure Nvidia-Karte dafür geeignet ist (z.B. über die Nvidia-Web-Seite und die dortigen Treiber-Beschreibungen). Eine Beschreibung für den Fall, dass ihr einen älteren Treiber benötigt, erspare ich mir. Ich habe im Moment leider keine Zeit für entsprechende Tests.

In jedem Fall probieren wir nun aus, ob sich das nvidia-Modul laden lässt: Das Kommando “modprobe nvidia” sollte sich anstandslos durchführen lassen.

Erneutes mkinitrd

Nach einem Reboot wird die nvidia-Karte womöglich angeschaltet und das nvidia-Modul bereits geladen (Check Kommando “lsmod | grep “*nvidia*\|video”). Es gibt nun unterschiedliche Möglichkeiten, ein Booten ohne nvidia-Modul zu ermöglichen. Die
einfachste Möglichkeit besteht in folgenden Schritten:

Wir entladen folgende Module gem. ihrer Abhängigkeiten mittels “rmmod”:

nvidia_drm, nvidia_uvm, nvidia_modeset, nvidia

Wir führen dann testweise folgendes Kommandos durch, um die nvidia-Karte abzuschalten:

tee /proc/acpi/bbswitch >>>OFF

Auf meinem Laptop ändert sich dabei die Farbe des Power-Buttons von Rot auf Blau; vielleicht gibt es bei euch eine ähnliche Reaktion/anzeige.

Im Anschluss führen wir erneut “mkinitrd” durch.

Tests 3D-Beschleunigung

Nach einem Reboot sollte das nvidia-Kernel-Modul nicht geladen sein. Wir loggen uns in unseren KDE-Desktop ein. An einem Terminal-Fenster probieren wir “modprobe nvidia; lsmod | grep “nvidia\|video”. Wer will, kann das Modul dann auch wieder entladen.

An einem Terminalfenster setzen wir nun das Kommando “optirun glxspheres” ab. Wir sollten in einem sich öffnenden Fenster eine schnelle Abfolge der konzentrische Kreise aus 3D-Elementen bekommen. Die Rate sollte > 200 Mpixel/sec und > 200 Frames/sec ausweisen. Bei mir sind es annähernd 250 frames/sec (GT 645M).

Links

wiki.archlinux.org/index.php/kernel _mode _setting
https://fedoraproject.org/wiki/Features/KernelModesetting
https://de.wikipedia.org/wiki/Mode-Setting
https://doc.opensuse.org/documentation/ leap/startup/html/book.opensuse.startup/cha.boot_parameters.html
https://forums.opensuse.org/showthread.php/508996-Install-with-UEFI-Bios-and-no-KMS-support

Upgrade auf Opensuse Leap 15.0 – Probleme mit Nvidia-Treiber aus dem Repository und mit VMware WS 12.5.9

Opensuse Leap 15.0 ist nun schon eine Weile auf dem Markt. Zeit, von Leap 42.3 umzusteigen. Also ein Upgrade durchführen. Geht das problemfrei?

Upgrade von PCs/Workstations

Ich habe Upgrades inzwischen an einem Laptop und auf zwei Linux-Workstations durchgeführt. Ich spreche nachfolgend also nicht über echte Opensuse-basierte Server-Systeme. Die gute Nachricht für Leute, die ihre PCs / Workstations bislang unter Opensuse Leap 42.3 mit ext4 und LVM betrieben haben, ist:

Man kann ohne allzu große Schwierigkeiten auf Leap 15.0 upgraden. Das gilt auch, wenn man eine Reihe von Zusatz-Repositories für bestimmte SW eingesetzt hat (in meinem Fall für Produkte aus den Packman-, Security-, Network-, Forensic-, PHP, Java-, …. -Repositories, die Opensuse eben so anbietet).

Einschränkungen:
Da Leap 15.0 bzgl. BTRFS ein paar neue Features mitbringt, traue ich mich nicht, dieses Statement so auch für Systeme zu machen, bei denen das Root-Filesystem auf BtrFS aufsetzt. Auch Laptops mit Optimus-Systemen habe ich noch nicht umgestellt.

Vorgehensweise für das Upgrade
Man folgt für das Upgrade am besten der unter
https://kamarada.github.io/en/2017/08/03/how-to-upgrade-from-opensuse-leap-422-to-423/
beschriebenen grundsätzlichen Schrittfolge. Der genannte Artikel beschreibt zwar den Wechsel von Leap 42.2. auf Leap 42.3. Die angegebenen Schritte lassen sich aber ganz analog auch auf ein Upgrade auf von Leap 42.3 auf Leap 15.0 anwenden. Natürlich muss man “Leap 42.2” bzw. “Leap 42.3” in den Vorgaben sinngemäß durch “Leap 42.3” bzw. “Leap 15.0” ersetzen.

Das Upgrade von KDE/Gnome und SSDM/GDM3 funktioniert. Auch Apache2- und MySQL-Dienste werden auf den neuesten Stand gebracht und laufen dann mit den alten Konfigurationen weiter. KVM/Gäste ließen sich in der erneuerten KVM/QEMU/libvirt/spice-Umgebung problemfrei starten. Nach dem Upgrade des System-Kerns bindet man die benötigten zusätzlichen Repositories ein und zieht seine Spezialanwendungen und Multimedia-Anwendungen nach. Bzgl. Multimedia primär über Packman; nur im Einzelfall greife ich auf Pakete anderer Multimedia-Repos zu. Unter Leap 15 unterstützt auch eine Implementierung von JAVA 10 etwa Eclipse Photon bei entsprechender Konfiguration sehr stabil. Das Weiterentwickeln von SW mit Hilfe von Eclipse ist also gesichert. Einzig manche Default GTK3-Styles muss man ändern, um sowohl LibreOffice 6 als auch Eclipse Photon mit Dark Scheme ohne Augenprobleme nutzen zu können (s. hierzu frühere Artiekl im Blog).

Natürlich gibt es im Einzelfall aber doch ein paar knifflige Hürden. Nachfolgend zwei, die mir den Umstieg erschwert haben:

Nvidia-Probleme

Für ein KDE-basiertes System “mytux1”, auf dem ich schon bislang die Nvidia-Treiber aus dem Opensuse-Nvidia-Repository genutzt hatte, funktionierte der Wechsel auf Leap 15.0 anstandslos. Man landet bei der Vorgehensweise des oben erwähnten Artikels zwar zunächst (erwartungsgemäß) im Konsolen-Modus. Dort muss man über die ASCII-Variante von YaST Oberfläche das Nvidia-Repository
https://download.nvidia.com/opensuse/leap/15.0
zum YaST-Software-Management hinzufügen und anschließend die passenden Treiber für sein Nvidia-Kartenmodell installieren. SDDM und KDE5 Plasma kamen nach einem Reboot dieses Systems auf Anhieb hoch.

Schwierigkeiten bereitete aber ein anderes KDE-basiertes System “mytux2”, für das ich seit Jahren aktuelle proprietäre Treiberversionen von der Nvidia Web-Site heruntergeladen und manuell über den Nvidia-Installer installiert hatte. Auf diesem System führte der Versuch einer ersten Treiberinstallation aus den Opensuse-Nvidia-Repositories ins Nirwana:

Beim Hochfahren
flackerte zunächst das Konsolen-Terminal mit dem angezeigten Prompt; in diesem Modus sind kontrollierte Eingaben kaum möglich. Das ist mir übrigens nicht zum ersten Mal bei Upgrades passiert. Zur Vorsorge ist es sehr nützlich, vor dem Upgrade den SSHD-Service zu aktivieren (systemctl enable ….). Man kann sich dann beim Hochfahren nach dem Upgrade wenigstens von anderen Systemen aus einloggen und ein “init 3” absetzen, damit sich die Anzeige “beruhigt”.

Nun hat man zwei Möglichkeiten: Download einer aktuellen Treiber-Version von der Nvidia-Website und manuelle Installation. Oder aber: Zuschalten des Nvidia-Repositories und Installation der Treiber über RPM-Pakete und YaST. Ich habe zuerst Letzteres versucht. Systemd initiierte dann nach einem Restart auch den Wechsel zum graphischen “Target” und versuchte erkennbar X und SDDM zu starten; das Ganze endete aber in einem schwarzen Schirm mit Mauszeiger. Und nicht mit der Anzeige des SDDM-Login-Schirm …

In einigen Internet-Beiträgen zu ähnlichen Problemen wird empfohlen, den User “sddm”, unter dem der Login- und Display-Manager SDDM für KDE Plasma-Nutzer ausgeführt wird, zu einem Mitglied der Gruppe “video” zu machen. Das half in meinem Fall aber gar nichts.

Was war da faul?

Zunächst besorgte ich mir zum Vergleich den aktuellen Treiber manuell von der Nvidia-Website; in der gleichen Version wie im Nvidia-Repository hinterlegt. Und siehe da: die manuelle Installation (inkl. Kompilation etc.) über den Nvidia-Installer (also das “run”-Skript ) funktionierte! Allerdings kam eine Warnung, dass die vorhandene “libglvnd“-Installation nicht vollständig sei. Man wird dann vom Nvidia-Installer gefragt, ob er die Installation aus eigenen Ressourcen korrigieren solle. Ich habe dem zugestimmt. Danach kamen SDDM und KDE Plasma anstandslos hoch. Durchatmen: wenigstens die manuelle Installation führt zum Erfolg. Es gibt also kein fundamentales Problem zwischen Leap 15 und den Nvidia-Treibern. Was aber, wenn man aus bestimmten Gründen zu den Opensuse-Nvidia-Repos wechseln will?

Eine komplette Deinstallation des Nvidia-Treibers über das zugehörige Run-File per

bash /extras/Updates/nvidia/NVIDIA-Linux-x86_64-390.87.run –uninstall

und eine anschließende Installation des gleichen Treibers per Opensuse-Nvidia-Repo führte leider wieder ins Nirwana.

Auffällig war bei der manuellen Deinstallation allerdings eine Meldung zu nicht ordnungsgemäß herstellbaren Links im Verzeichnis “/usr/lib64”. Dort liegen bekanntermaßen *.so-Libraries. Ein genaues Studium der im Zuge der verschiedenen Installationen angelegten Links in diesem Verzeichnis brachte dann die Lösung:

Nach einer funktionierenden manuellen Installation des Treibers von der Nvidia-Website gab es dort folgende relevante Einträge :

mytux2:/usr/lib64 # la | grep libGL
-rw-r--r--   1 root root       656 Sep 21 18:46 libGL.la
lrwxrwxrwx   1 root root        10 Sep 21 18:46 libGL.so -> libGL.so.1
lrwxrwxrwx   1 root root        14 Sep 21 18:46 libGL.so.1 -> libGL.so.1.7.0
-rwxr-xr-x   1 root root    665720 Sep 21 18:45 libGL.so.1.7.0
....

Das Vergleichssystem “mytux1” zeigte hingegen folgende Konstellation:

mytux1:/usr/lib64 # la | grep libGL
lrwxrwxrwx   1 root root        14 Sep  4 21:40 libGL.so -> libGL.so.1.0.0
lrwxrwxrwx   1 root root        14 Sep  4 21:40 libGL.so.1 -> libGL.so.1.0.0
-rwxr-xr-x   1 root root    588160 Apr 25 03:09 libGL.so.1.0.0

Andere Versionsnummern, aber eine ähnliche Verlinkung.

Nach dem manuellen Uninstall per “bash /extras/Updates/nvidia/NVIDIA-Linux-x86_64-390.87.run –uninstall ” auf “mytux2”
und einem Installieren der Treiberdateien aus den Opensuse-Nvidia-Repositories für Leap 15.0 ergab sich hingegen folgendes Bild:

mytux2:/usr/lib64 # la | grep libGL       
lrwxrwxrwx   1 root root        14 Sep 21 19:52 libGL.so -> libGL.so.1.0.0
lrwxrwxrwx   1 root root        14 Sep 21 19:52 libGL.so.1 -> libGL.so.1.2.0
-rwxr-xr-x   1 root root    588160 Apr 25 03:09 libGL.so.1.0.0
lrwxrwxrwx   1 root root        14 Sep 21 19:52 libGL.so.1.2 -> libGL.so.1.2.0
-rwxr-xr-x   1 root root    430760 Nov 21  2016 libGL.so.1.2.0
...  

Hier war zwischenzeitlich offenbar etwas Altes aus dem Jahre 2016 restauriert worden! Woher der Nvidia-Uninstaller das auch immer genommen haben mag… Dass der Nvidia Installer/Uninstaller damit zu tun hatte, ergab sich aus der Tatsache, dass die Datei “libGL.so.1.2.0” sich keinem RPM-Repository zuordnen ließ, die libGL.so.1.0.0 aber schon :

mytux2:/usr/lib64 # rpm -qf libGL.so.1.0.0
libglvnd-1.0.0-lp150.1.1.x86_64

Wer immer da wann was im “libGL/libglvnd”-Umfeld verbrochen hatte; dieser Schaden ließ sich beheben. Offenbar ist für die Repository basierten Treiber nur die “libGL.so.1.0.0” maßgeblich. Ich habe daher eine Umsetzung der Links vorgenommen und die “libGL.so.1.2.0” gelöscht. (Auch die manuelle Treiberinstallation nutzt diese Bibliothek ja nicht …; s.o.).

mytux:/usr/lib64 # la | grep libGL
lrwxrwxrwx   1 root root        14 Sep 21 19:52 libGL.so -> libGL.so.1.0.0
lrwxrwxrwx   1 root root        14 Sep 21 23:27 libGL.so.1 -> libGL.so.1.0.0
-rwxr-xr-x   1 root root    588160 Apr 25 03:09 libGL.so.1.0.0
lrwxrwxrwx   1 root root        14 Sep 21 23:27 libGL.so.1.2 -> libGL.so.1.0.0

Die Dateien aus dem Opensuse-Nvidia-Repository habe ich dann zur Sicherheit nochmal überinstalliert. Und siehe da, danach lief alles. Den Link “libGL.so.1.2” konnte ich schließlich auch ohne Schaden wegschmeißen.

Merke: Eine Historie mit Wechseln von Nvidia-Treiber-Installationen aus dem Opensuse-Repository und manuellen Installationen per Nvidia-Installer-Daten bleibt nicht immer verwerfungsfrei. Ein Blick in die Links unter “/usr/lib64” ist hilfreich.

Problem mit VMware WS 12.5.9 unter Leap 15.0

Auf einem meiner Systeme läuft eine relativ aktuelle VMware WS 14.1.1-Umgebung. Die überlebte das Upgrade auf Leap 15.0 anstandslos. Die Module wurden im Hintergrund neu kompiliert und erfolgreich gestartet.

Auf einem anderen System lief aber die WS 12.5.9. Die ließ sich zunächst nicht dazu bewegen zu starten. Die Module für den “Virtual Machine Monitor” wie das “Virtual Network” konnten nicht erfolgreich kompiliert werden. Hier hatten findige Menschen aber dankenswerterweise schon vorgearbeitet; das Problem ist bekannt und gelöst. Die notwendigen Schritte, die auch auf meinem System zum Erfolg führten findet ihr hier

https://communities.vmware.com/message/2777306#2777306

Addendum, 25.03.2020: The steps described in the referenced community article work on Leap 15.1, too.

Viel Spaß dann mit Opensuse Leap 15 ! ZU Leap 15 und Optimus bald mehr, wenn ich Zeit finde …