Home Wiki > SDB:NVIDIA-Treiber-Modulebau
Sign up | Login

SDB:NVIDIA-Treiber-Modulebau

tagline: Aus openSUSE

Für ältere Versionen von openSUSE oder deren Entwicklungsversionen, stehen im Paketdepot von NVIDIA keine passenden Pakete bereit. Deshalb, oder anderer Gründe wegen, können Sie hier die manuelle Methode der Treiber Module Erstellung wählen. Diese können Sie auch auf neuen Ausgaben von SUSE Linux durchführen, denn auch diese hat ein paar Vorteile.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Allgemeines

Treiber für Grafik-Hardware aus dem Hause NVIDIA sind nicht in einer openSUSE Ausgabe enthalten, weil diese Treiber Module proprietärer Art (Closed Source) sind und damit unter eingeschränktes Formate fallen. Standardmäßig ist eine openSUSE Ausgabe mit freien und universellen Treiber Modulen ausgerüstet! Wer immer sich andere, eben dieser proprietären Treiber bedienen will, muss selbst aktiv werden.

Vorbereitungen

  • Mit openSUSE 11.3 ändern sich für Nutzer von NVIDIA Hardware und proprietärer Software einige Vorgehensweisen. Dass seit openSUSE 11.2 auf SaX verzichtet wurde, was unter 11.3 seine Fortsetzung findet, sollte mittlerweile allseits bekannt sein. Aber nicht nur das, es wurde nun KMS (Kernel Mode Setting) zum Standard gemacht.
  • Dadurch werden standardmäßig bei der Installation einer openSUSE 11.3 per Hardwareerkennung Module aus dem freien Nouveau-Grafiktreiber gebaut. Das bedeutet, dass Anwender dieser Module hier unter Umständen nicht die volle Leistung ihrer Hardware ausschöpfen können, so bspw. auch auf 3D Unterstützung verzichten müssen.
  • Das bedeutet im Detail, wer die volle Power seiner Hardware ausnutzen will (u.a. auch 3D Unterstützung), an dieser Stelle selbst aktiv werden muss! Das heißt, dass Anwender, die proprietäre Software Treiber von NVIDIA verwenden wollen, so einiges beachten müssen: Siehe bspw. Versionshinweise openSUSE 11.3 für Details.

Kernel-Mode-Setting Deaktivieren

  • Kurzum, wer auf selbst kompilierte proprietäre NVIDIA Treiber zurückgreifen möchte, muss als erstes KMS (Kernel Mode Setting) deaktivieren, um proprietäre Treiber bauen, installieren und verwenden zu können. Dazu muss nach erfolgreicher Installation der openSUSE 11.3 beim Systemstart als Befehl:
nomodeset

mit gegeben werden.

  • Der Eintrag: nomodeset, muss dann dauerhaft in der Kernel-Boot-Kommandozeile: bspw über YaST → System → Bootloader: unter Abschnittsverwaltung → Bearbeiten: beim Menü: "Optionaler Parameter für Kernel-Befehlszeile" eingetragen werden.
  • Es kann aber unter Umständen dazu kommen, dass trotz Eintrag dennoch DRM-Module geladen werden. Dies lässt sich ganz einfach umgehen, indem durch einen festen Eintrag über YaST → System → Editor für /etc/sysconfig unter → Kernel → NO_KMS_IN_INITRD die Variable auf yes umgestellt wird.
  • Zur Aktivierung der vorangegangenen Konfiguration muss nun noch ein System-Neustart ausgeführt werden. Anschließend laut Beschreibung den proprietären Treiber installieren.
  • Trotz der o.g. Vorarbeit wurde die Erstellung der Module mit einer *Fehlermeldung abgebrochen. Es kann/muss je nach Hardware (sehr) wahrscheinlich mit einem Eintrag in der Blacklist zusätzlich dafür gesorgt werden, daß das nouveau Modul nicht mehr geladen wird.
Dazu wird mit erweiterten Nutzerrechten (root) ein Editor eurer Wahl (Kwrite, Kate etc) geöffnet und unter /etc/modeprobe.d/50-blacklist.conf am Ende der dort vorhandenen Liste folgendes: blacklist nouveau angefügt. Danach diese abspeichern und den Editor beenden. Nun mit der Installation des Treibers fortfahren.
*Fehlermeldung: so wurde die Installation des Treibers mit entsprechender Fehlermeldung (Fehlermeldung Sinngemäß: .... "andere oder fremde Module geladen usw" ...) verweigert, und trotz vorher ausgeführter Einträge dennoch nicht ausgeführt. Erst als der Eintrag in der Blacklist folgte, ist die Installation erfolgreich gewesen!

Fertige Treiber Module

  • Wer einfach, bequem und ohne die o.g. Vorarbeiten zum proprietären NVIDIA-Grafikkarten-Treiber kommen möchte, kann auch die schon fertig gepackten Treiber Module verwenden. In den dafür vorgesehenen Depots/Quellen zum hinzufügen in Portal:YaST liegen für aktuelle openSUSE Ausgaben fertig gepackte NVIDIA-Treiber-Module vor und können verwendet werden. Es werden die oben genannten Konfigurationen (Eintrag: /etc/sysconfig/kernel & Initrd) automatisch (Installationsscript) bei der Installation der fertig gepackten Pakete ausgeführt.
    • In seltenen Fällen, vor allem bei Neu-Installationen, kann es dennoch passieren, dass o.g.Blacklisten noch zusätzlich ausgeführt werden muss.

Unterstützte Treiber

  • Standardtreiber
  • Legacy-Treiber für GeForce 5/FX
  • Legacy-Treiber für GeForce 2 bis 4
  • Legacy-Treiber für TNT bis GeForce 2
  • Vorteile:
    • Es funktioniert auch mit Kernel die sie aus anderen Quellen bezogen oder selber gebaut haben.
    • Eventuell sind neue Treiber Versionen auf der Nvidia-Seite wesentlich eher verfügbar als im Paketdepot.
  • Nachteile:
    • Nach einer Aktualisierung oder einem Wechsel des Kernels müssen Sie das Modul jedes mal wieder von Hand installieren.
    • Für diese Methoden müssen die GCC sowie make installiert und die Linux Kernel konfiguriert, also ebenfalls installiert, sein.

Installationsablauf

1. Vergewissern Sie sich, dass die Pakete

  • gcc,
  • make,
  • kernel-source und
  • kernel-*-devel

passend zu Ihrem Kernel installiert sind; beispielsweise mit folgendem Befehl:

$ rpm -q gcc kernel-source make kernel-$(uname -r | awk -F"-" '{print $3}')-devel

Falls dem nicht so ist, dann installieren Sie sie bitte nun alles fehlende nach.

2. Laden Sie sich passend zur vorhandenen Architektur (32/64Bit) und Grafikkarte(-Chipsatz den entsprechend korrekten Treiber von der NVIDIA-Seite (Downlaod) herunter.
3. Melden Sie sich über Loggout ab und beenden Sie die aktuelle Sitzung.
4. Im Anmeldebildschirm drücken Sie die Tastenkombination

Strg-Alt-F1

um in die Konsole zu gelangen.
5. Melden Sie sich dort als root mit Befehl:

$ su

an, und wechseln Sie dann mit

# init

in Runlevel drei für die weitere Prozedur.
6. Starten Sie mit folgendem Befehl das Installationsprogramm:

# sh /Pfad/zum/Treiber/NVIDIA-Linux-x86-275.21.run -q

Passen Sie dabei den Dateinamen an ihre Treiber Version an.

Beachten Sie, dass es unterschiedliche Treiber für neuere und ältere Grafikchips und x86 und x86_64 gibt.

8. Seit openSUSE 11.2 wird jedoch auf SaX2 verzichtet, siehe siehe OS-11.2-Versionshinweise), was bedeutet das mit Befehl:

# nvidia-xconfig


die Konfiguration ausgeführt wird. Es wird bei der Ausführung eine neue Xorg.conf erstellt, was für den Betrieb einer grafische Oberfläche notwendig ist. Die endgültige Konfiguration des Bildschirms wird mit erweiterten Nutzerrechten (root) und Befehl:

# nvidia-settings

ausgeführt
9. Nach der Konfiguration kehren Sie mit:

# init 5

wieder in den grafischen Modus zurück.
10. Falls alles glatt gelaufen ist, sollte beim Starten ein NVIDIA-Logo angezeigt werden, was schon mal ein gutes Zeichen wäre.

  • Wenn der Kernel aktualisiert oder aus sonstigen Gründen gewechselt wurde, müssen Sie das Kernel-Modul des Treibers für den neuen Kernel erneut bauen lassen.
    • Mit dem Schalter -K können Sie den Treiber veranlassen, lediglich ein neues Modul für den aktuell verwendeten Kernel zu bauen. Für das ausführen der Befehlssyntax sind erweiterte Nutzerrechte (root) nötig, was dann etwa so aussieht:
      sh /Pfad/zum/Treiber/NVIDIA-Linux-x86-169.09-pkg1.run -K
  • Treiber Module aktualisieren
    • Um die Manuell erstellten Treiber Module zu aktualisieren, wird wie bei der Installationsprozedur hier ebenfalls in den Runlevel 3 gewechselt, ruft dort dann
      nvidia-installer --update
      auf und folgt dann der vorgegebenen 'Update-Routine' des Installers.

Installationserfolg überprüfen

Wenn Ihnen beim Start ein NVIDIA-Logo angezeigt wird ist das schon mal ein gutes Zeichen. Sie können auch einfach mal eine OpenGL-Anwendung starten. Äußerst interessant ist auch die Ausgabe des Befehls glxinfo; darin sollten die Namen Nvidia sowie die Treiber Version vorkommen, sowie direct rendering: Yes.

Dies können Sie einfach überprüfen, indem Sie eine Konsole öffnen und den folgenden Befehl eingeben:

$ glxinfo | grep render


Als Ausgabe erhalten Sie beispielsweise

   direct rendering: Yes
   OpenGL renderer string: GeForce 8500 GT/PCI/SSE2
       GL_NV_conditional_render, GL_NV_copy_depth_to_color, GL_NV_copy_image,
       GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,

Sie können sich die wichtigsten Zeilen auch mit den folgenden Kommandos ausgeben lassen:

$ glxinfo | grep direct
$ glxinfo | grep vendor
$ glxinfo | grep version


Der Nvidia-Treiber bringt nun ein passendes Einstellwerkzeug namens nvidia-settings gleich mit, das vom Systemverwalter root zu nutzen ist, um Systemweite Veränderungen vornehmen zu können.

Nach der Installation des 3D-Treibers kann es passieren, das die Bildschirmauflösung nicht mehr ganz passt. Der Nvidia-Treiber bringt nun ein passendes Einstellwerkzeug namens nvidia-settings gleich mit, das vom Systemverwalter root zu nutzen ist, um Systemweite Veränderungen vornehmen zu können.

  • Öffnen Sie eine Konsole und geben Sie die folgenden Befehle ein:
erde@sonne:~>su -
erde:~ # nvidia-settings


Ein neues Fenster öffnet sich, in dem die Einstellungen für Monitor und Grafikkarte festgelegt werden können:

NVIDIA-Einstellwerkzeug

Um die Einstellungen permanent zu machen, klicken Sie bitte auf <Save to X Configuration File>. Die Einstellung im neu auftauchenden Fenster:

Datei xorg.conf anpassen

können Sie mit Klick auf Save übernehmen.

Eine Korrektur von Farbe und Gamma-Einstellung des Monitors können Sie anstelle über die KDE-Werkzeuge auch über <X Server Color Correction> vornehmen:

Farbe und Gamma-Einstellung des Monitors anpassen

Nach Beendigung des Programms mit Quit können Sie das Terminal Fenster wieder mit exit schließen.

Deinstallation

Wenn der Treiber unlösbare Probleme bereitet, oder diese entfernt werden soll um einen anderen Treiber wie bspw. Nouveau zu nutzen, kann der vorhandene Treiber auch wieder deinstalliert werden. Je nachdem wie und auf welchem Weg der Treiber installiert wurde, muss dieser auch wieder entfernt werden.

  • Wenn de Treiber manuell installiert wurde, kann dieser über die Installationsdatei wieder deinstalliert werden. Dazu kann die Datei mit erweiterten Nutzerrechten (root) aufgerufen (der Name der Datei hängt von ihrer Treiber Version ab) werden:
# /Pfad/zur/Datei/NVIDIA-Linux-Architektur_Treiberversion.run --uninstall


Es ist ratsam, dass der X-Server während der Deinstallation nicht läuft. Sie sollten also vorher in den Runlevel 3 wechseln.
  • Oder im Textmodus den Treiber deinstallieren,

kann beim Systemboot im Bootprombt:

init 3

gestartet, mit 'Nutzer-Loggin' Nutzer anmelden,

anschließend 'Erweiterte Nutzerrechte' mit:

# su

erlangen, Passwortanforderungen erfüllen.

Mit Befehl:

$ nvidia-installer --uninstall


Dialogmanager folgend den Treiber deinstallieren. Mit Befehl:

$ reboot

System neu Starten.

Probleme & Lösungen


Siehe weiter