Gentoo Logo

Gentoo Linux nVidia Guide

Inhalt:

1.  Einführung

Die nVidia-Treiber im Portage-Baum werden von nVidia veröffentlicht und werden gegen den Linux-Kernel gebaut. Sie beinhalten einen binären Klumpen, welcher den schweren Teil der Arbeit verrichtet - die Karte ansprechen. Die Treiber bestehen aus zwei Teilen: ein Kernelmodul und ein X11-Treiber. Beide Teile befinden sich in ein und demselben Paket. Aufgrund der Weise, in der nVidia die Pakete gepackt hat, müssen Sie erst einige Entscheidungen treffen, bevor Sie den Treiber installieren.

Das Paket nvidia-drivers, enthält die neuesten Treiber von nVidia mit Unterstützung für alle Karten und einigen verfügbaren Versionen, davon abhängig, wie alt Ihre Karte ist. Es benutzt eine Eclass, um zu erkennen, welche Art von Karte Sie benutzen, so dass es die richtige Version installiert.

2.  Treiber-Kompatibilität

Welche Version?

Das Paket nvidia-drivers unterstützt die volle Palette aller erhältlichen nVidia-Karten. Es sind mehrere Versionen verfügbar, je nachdem, welche Karte(n) Sie besitzen.

Neuere Karten wie die GeForce 9, 8, 7 und 6 sollten die neuesten Treiber verwenden.

Ältere Karten wie die GeForce FX 5-Serie sollten die 173.x Treiber, zum Beispiel nvidia-drivers-173.14.15, verwenden. Für diese Karten sollten Sie >=x11-drivers/nvidia-drivers-174.00 in Ihrer Datei /etc/portage/package.mask maskieren. Das verhindert, dass neuere Versionen des Treibers, welche inkompatibel zu Ihrer Karte sind, installiert werden.

Alte Karten wie die GeForce 3 oder GeForce 4-Serie erfordern die 96.x-Treiber. Für diese Karten sollten Sie >=x11-drivers/nvidia-drivers-97.00 in Ihrer Datei /etc/portage/package.mask maskieren.

Die ältesten NV2x-basierte Karten (wie TNT, TNT2, GeForce und GeForce 2) benötigen die alten 71.x-Treiber (z.B. nvidia-drivers-71.86.01). Für diese Karten sollten Sie >=x11-drivers/nvidia-drivers-87.00 in der Datei /etc/portage/package.mask maskieren.

Sie können die Treiberkompatibilität für Ihre Karte prüfen, um festzustellen, welcher Treiber sie unterstützt, indem Sie die README auf der zugehörigen x86 oder x86-64 Release-Seite lesen.

3.  Konfigurieren Ihrer Karte

Kernelkonfiguration

Wie oben erwähnt, installiert und läuft der nVidia-Kerneltreiber anhängig von Ihrem aktuellen Kernel. Er wird als Modul erstellt, also macht es Sinn, dass Ihr Kernel das Laden von Kernelmodulen unterstützt. Wenn Sie genkernel all verwendet haben, um Ihren Kernel zu konfigurieren, ist dies bereits geschehen. Wenn nicht, überprüfen Sie die Konfiguration Ihres Kernels noch einmal genau um sicherzustellen, dass die Unterstützung dafür aktiviert ist:

Befehlsauflistung 3.1: Laden von Kernelmodulen erlauben

Loadable module support --->
  [*] Enable loadable module support

Sie müssen außerdem Memory Type Range Register in Ihrem Kernel aktivieren:

Befehlsauflistung 3.2: MTRR aktivieren

Processor and Features --->
  [*] MTRR (Memory Type Range Register) support

Wenn Sie eine AGP-Grafikkarte haben, können Sie außerdem noch optional agpgart Unterstützung zu Ihrem Kernel hinzufügen, entweder einkompiliert oder als Modul. Wenn Sie agpgart nicht im Kernel verwenden, dann werden die Treiber ihre eigene agpgart Implementierung, genannt NvAGP verwenden. Auf einigen Systemen ist die Leistung dieser besser als die des agpgarts aus dem Kernel, und auf anderen ist die Leistung schlechter. Sie werden dies selbst auf Ihrem eigenen System beurteilen müssen, um die beste Leistung zu erzielen. Wenn Sie sich unsicher sind, was Sie tun sollen, verwenden Sie das kernelinterne agpgart:

Befehlsauflistung 3.3: Aktivieren von agpgart

Device Drivers --->
Graphics Support --->
-*- /dev/agpgart (AGP Support) --->

Notiz: Auf amd64 kontrolliert IOMMU die agpgart-Einstellung.

Architektur-spezifische Bemerkungen

Wichtig: Bei x86 und AMD64 Prozessoren erzeugt der kernelinterne Treiber einen Konflikt mit dem Binärtreiber von nVidia. Wollen Sie Ihren Kernel für diese CPUs kompilieren, müssen Sie die kernelinterne Treiberunterstützung wie hier gezeigt komplett entfernen:

Befehlsauflistung 3.4: Den kernelinternen Treiber entfernen

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
< >   nVidia Framebuffer Support
< >   nVidia Riva support

Eine Framebufferalternative ist uvesafb, ein fortgeschrittener Framebuffer. Beachten Sie, dass Sie diesen wahlweise fest in Ihren Kernel oder als Modul kompilieren können. Das folgende Beispiel kompiliert uvesafb in den Kernel hinein.

Befehlsauflistung 3.5: uvesafb Unterstützung aktivieren

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
<*>   Userspace VESA VGA graphics support

Sie können auch VESA ausprobieren:

Befehlsauflistung 3.6: VESA-Unterstützung aktivieren

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
[*]   VESA VGA graphics support

Weitere Informationen können Sie in der Dokumentation zu Ihrem gewählten Framebuffer unter /usr/src/linux/Documentation/fb/ nachschlagen.

Weiter mit der Kernelkonfiguration

Das nvidia-drivers Ebuild erkennt automatisch Ihre Kernel-Version, basierend auf dem /usr/src/linux-Symlink. Bitte stellen Sie sicher, dass dieser Symlink auf die richtigen Quellen zeigt und dass Ihr Kernel richtig konfiguriert ist. Bitte beziehen Sie sich auf den Abschnitt "Konfiguration des Kernels" im Installations-Handbuch für Details zur Kernelkonfiguration.

Zuerst sollten Sie eselect emergen (sofern Sie dies noch nicht getan haben). Wenn Sie gentoo-sources-2.6.18-r4 benutzen, könnte die Auflistung Ihrer Kernel in etwa so aussehen:

Befehlsauflistung 3.7: Überprüfen Sie Ihren /usr/src/linux Symlink

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.18-gentoo-r4 *
  [2]   linux-2.6.20-gentoo-r7
  [3]   linux-2.6.20-gentoo-r8
(Stellen Sie sicher, dass der richtige Kernel mit einem Stern gekennzeichnet ist)

In der Ausgabe oben sehen Sie, dass der linux-2.6.18-gentoo-r4 Kernel mit einem Stern (*) versehen ist, um darzustellen, dass es der Kernel ist, auf den der Symlink zeigt.

Wenn der Symlink nicht auf die richtigen Quellen verweist, müssen Sie den Link aktualisieren, indem Sie die Nummer Ihrer gewünschten Kernelquellen wie im Beispiel oben auswählen.

Befehlsauflistung 3.8: Erstellen/Aktualisieren des /usr/src/linux Symlink

(Wählen Sie den richtigen Kernel aus)
# eselect kernel set 1

Installation der richtigen Treiber

Jetzt ist es an der Zeit die Treiber zu installieren.

Befehlsauflistung 3.9: Installieren der nVidia-Treiber

# emerge nvidia-drivers

Notiz: Die Treiber können mit einem gesetzten gtk USE-Flag installiert werden. Dadurch wird media-video/nvidia-settings installiert, ein handliches grafisches Werkzeug um einige Aspekte Ihrer nVidia-Karte zu überwachen und zu konfigurieren.

Wichtig: Jedes mal wenn Sie einen neuen Kernel kompilieren oder den aktuellen neu kompilieren, werden Sie emerge nvidia-drivers ausführen müssen, um die nVidia-Module neu zu installieren. Ein einfacherer Weg, um Module im Auge zu behalten, die von Ebuilds installiert werden (so wie nvidia-drivers), ist es sys-kernel/module-rebuild zu installieren. Sobald Sie es installiert haben, führen Sie einfach module-rebuild populate aus, um seine Datenbank mit einer Liste der Pakete, die erneut installiert werden müssen, zu bestücken. Sobald Sie einen neuen Kernel fertig kompiliert haben, führen Sie einfach module-rebuild rebuild aus, um die Treiber für Ihren Kernel neu zu bauen.

Wenn die Installion beendet ist, führen Sie modprobe nvidia aus, um das Kernelmodul in den Speicher zu laden. Falls dies ein Update ist, sollten Sie die vorherige Modul erst entfernen.

Befehlsauflistung 3.10: Laden des Kernelmoduls

# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia

Um zu verhindern, dass Sie das Modul bei jedem Systemstart manuell laden müssen, möchten Sie vielleicht, dass dies automatisch beim Booten Ihres Systems geschieht. Editieren Sie dazu /etc/modules.autoload.d/kernel-2.6 und fügen Sie nvidia hinzu. Vergessen Sie nicht, danach update-modules auszuführen.

Wichtig: Wenn Sie agpgart als Modul kompiliert haben, werden Sie es zu /etc/modules.autoload.d/kernel-2.6 hinzufügen müssen.

Befehlsauflistung 3.11: Ausführen von update-modules

# update-modules

Den X-Server konfigurieren

Wenn die passenden Treiber einmal installiert sind, müssen Sie Ihren X-Server konfigurieren, damit er den nvidia Treiber, anstatt des Standard nv Treibers, verwendet.

Öffnen Sie /etc/X11/xorg.conf mit Ihrem Lieblingseditor (wie nano oder vim) und gehen Sie zum Device Abschnitt. In diesem Abschnitt ändern Sie die Driver Zeile:

Befehlsauflistung 3.12: Ändern von nv zu nvidia in der X-Server Konfiguration

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  VideoRam   65536
EndSection

Dann gehen Sie zum Module Abschnitt und stellen sicher, dass das glx Modul geladen wird, während das dri Modul nicht geladen wird:

Befehlsauflistung 3.13: Aktualisieren des Modul Abschnitts

Section "Module"
  (...)
  # Load  "dri"
  Load  "glx"
  (...)
EndSection

Stellen Sie danach sicher, dass im Abschnitt Screen die DefaultDepth Einstellung auf 16 oder 24 gesetzt ist, oder dass Sie nur Display Unterabschnitte haben, dessen Depth auf 16 oder 24 gesetzt ist. Ohne dies werden die nVidia GLX Erweiterungen nicht starten.

Befehlsauflistung 3.14: Aktualisieren des Screen Abschnitts

  Section "Screen"
  (...)
  DefaultDepth 16
  Subsection "Display"
  (...)
  EndSection

Führen Sie eselect aus, damit der X-Server die GLX-Bibliotheken von nVidia verwendet:

Befehlsauflistung 3.15: Ausführen von eselect

# eselect opengl set nvidia

Hinzufügen von Benutzern zur Gruppe video

Sie müssen Ihren Benutzer zur Gruppe video hinzufügen, damit er Zugriff auf die nVidia-Gerätedateien hat:

Befehlsauflistung 3.16: Hinzufügen Ihres Benutzers zur Gruppe video

# gpasswd -a Ihr_User video

Es mag nicht absolut notwendig sein, wenn Sie kein udev verwenden aber es kann auch nicht schaden und macht Ihr System zukunftssicher.

Testen Ihrer Karte

Um Ihre nvidia Karte zu testen, starten Sie X und führen glxinfo, welches Teil des mesa-progs Pakets ist, aus. Es sollte ausgeben, dass Direct Rendering aktiviert ist:

Befehlsauflistung 3.17: Testen des Status von direct rendering

$ glxinfo | grep direct
direct rendering: Yes

Um Ihre FPS anzuzeigen, führen Sie glxgears aus.

NVidia-Unterstützung aktivieren

Einige Tools, wie mplayer und xine-lib, verwenden ein lokales USE-Flag, das "xvmc" heißt. Es aktiviert die Unterstützung für XvMCNVIDIA, hilfreich beim Abspielen von hochaufgelösten Videos. Fügen Sie "xvmc" zu Ihrer USE-Variable in /etc/make.conf hinzu oder als USE-Flag zu media-video/mplayer und/oder media-libs/xine-lib in /etc/portage/package.use hinzu.

Es gibt auch einige Anwendungen, die das USE-Flag nvidia benutzen. Aus diesem Grund möchten Sie dieses vielleicht auch zu Ihrer /etc/make.conf hinzufügen.

Dann führen Sie emerge -uD --newuse world aus, um die Anwendungen neu zu bauen, die von der Änderung des USE-Flags profitieren würden.

Das NVidia Settings Tool verwenden

nVidia stellt auch ein Tool für Einstellungen bereit. Dieses Tool erlaubt es Ihnen, Grafikeinstellungen zu ändern ohne den X Server neu zu starten und ist durch media-video/nvidia-settings in Portage verfügbar. Wie bereits erwähnt, wird dieses automatisch einbezogen, wenn Sie die Treiber mit gesetztem gtk USE-Flag in /etc/make.conf oder in /etc/portage/package.use installieren.

4.  Fehlerbehebung

2D auf Maschinen mit 4GB Speicher oder mehr zum Laufen bekommen

Wenn Sie Probleme mit der nVidia Beschleunigung von 2D-Anwendungen haben, ist es wahrscheinlich, dass Sie nicht in der Lage sind, einen Bereich für write-combining mittels MTRR einzurichten. Um das zu überprüfen, sehen Sie sich den Inhalt von /proc/mtrr an:

Befehlsauflistung 4.1: Überprüfen, ob write-combining aktiviert ist

# cat /proc/mtrr

Jede Zeile sollte "write-back" oder "write-combining" enthalten. Wenn Sie eine Zeile mit "unreachable" darin sehen, müssen Sie eine Einstellung im BIOS ändern, um das zu beheben.

Booten Sie neu und gehen Sie ins BIOS. Suchen Sie dann die MTRR-Einstellungen (evtl. unter "CPU Settings"). Ändern Sie diese Einstellung von "continuous" zu "discrete" und booten Sie wieder Linux. Sie werden nun keine "uncachable" Einträge mehr finden und die 2D Beschleunigung sollte ohne Probleme funktionieren.

Wenn ich versuche das Kernelmodul zu laden, erhalte ich ein "no such device"

Dies tritt normalerweise auf, wenn Sie keine passende Grafikkarte haben. Stellen Sie sicher, dass Sie eine nVidia-basierte Grafikkarte haben. Sie können dies mit lspci überprüfen.

Wenn Sie sicher sind, dass Sie eine nVidia-Karte besitzen, sollten Sie Ihr BIOS überprüfen und schauen ob die Anweisung Assign IRQ to VGA gesetzt ist.

5.  Expertenkonfiguration

Dokumentation

Das nVidia Treiberpaket kommt auch mit einer umfassenden Dokumentation. Diese ist unter /usr/share/doc installiert und kann mit folgendem Befehl betrachtet werden:

Befehlsauflistung 5.1: Betrachten der NVIDIA-Dokumentation

$ less /usr/share/doc/nvidia-drivers-*/REAMDE.gz

Kernelmodul Parameter

Das nvidia Kernelmodul akzeptiert eine Reihe von Parametern (Optionen) die Sie nutzen können um das Verhalten des Treibers zu optimieren. Die meisten sind in der Dokumentation aufgeführt. Um die Werte dieser Parameter hinzuzufügen oder zu verändern bearbeiten Sie die Datei /etc/modprobe.d/nvidia.conf. Vergessen Sie nicht update-modules nach Veränderungen an dieser Datei auszuführen und bedenken Sie, dass Sie das nvidia Modul neu laden müssen bevor die neuen Einstellungen Wirkung zeigen.

Befehlsauflistung 5.2: Einstellen der nVidia Optionen

(Bearbeiten Sie /etc/modprobe.d/nvidia.conf in Ihrem Lieblingseditor)
# nano -w /etc/modprobe.d/nvidia.conf
(Aktualisierung der Modul-Informationen)
# update-modules
(Entladen des nvidia Moduls...)
# modprobe -r nvidia
(...und es wieder laden)
# modprobe nvidia

Erweiterte X-Konfiguration

Der GLX-Layer hat eine Fülle von Optionen, die konfiguriert werden können. Diese kontrollieren die Einstellungen des TVAusgangs, Dual Display, Monitor Frequenz Erkennung, usw. Wie erwähnt, alle verfügbaren Optionen sind detailliert in der Dokumentation.

Wenn Sie wünschen eine dieser Optionen zu nutzen, müssen Sie sie in dem entsprechenden Device Abschnitt Ihrer X Konfigurationsdatei eintragen (normalerweise /etc/X11/xorg.conf). Zum Beispiel, angenommen man möchte das Splash Logo deaktivieren:

Befehlsauflistung 5.3: Erweiterte nVidia-Konfiguration in der X-Konfiguration

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  Option     "NoLogo" "true"
  VideoRam   65536
EndSection


Drucken

Aktualisiert 5. August 2009

Zusammenfassung: Viele Gentoo-Nutzer haben einen nVidia-Chipsatz in ihrem System. NVidia bietet spezielle Linuxtreiber um die Geschwindigkeit Ihrer Karte zu erhöhen. Dieser Text informiert Sie, wie die Treiber zu installieren und zu konfigurieren sind.

Sven Vermeulen
Autor

Joshua Saddler
Autor

M Curtis Napier
Bearbeiter

Chris Gianelloni
Bearbeiter

Torsten Evers
Übersetzer

Sebastian Westermayer
Übersetzer

Tobias Heinlein
Übersetzer

Jens Grüntjes
Übersetzer

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Online Kredit Index
Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.