Nvidia Treiber und Erfahrungen Thread

Ich mach hier einfach mal einen Sammelthread zu den neuesten Treiberversionen und Erfahrungen mit den Treibern auf. Hier wollen wir einfach mal alles reinschreiben, was es dazu zu sagen gibt. :slight_smile:

256.53 (stable release)

  • Fixed a bug that prevented XvMC from initializing in most cases.
  • Added support for xorg-server video driver ABI version 8, which will be included in the upcoming xorg-server-1.9 series of releases.
  • Fixed a bug that caused extremely slow rendering of OpenGL applications on X screens other than screen 0 when using a compositing manager.
  • Fixed a regression introduced after 256.35 that caused stability problems on GPUs such as GeForce GT 240.
  • Fixed a slow kernel virtual address space leak observed whenstarting and stopping OpenGL, CUDA, or VDPAU applications.
  • Fixed a bug that left the system susceptible to hangs when running two or more VDPAU applications simultaneously.

32bit:
NVIDIA DRIVERS 256.53 Certified
64bit:
NVIDIA DRIVERS 256.53 Certified

Installations HOWTO

proprietärer Treiber
Möglichkeit 1)

Um die Nvidia Module zu installieren benötigen wir ein paar weitere Pakete, die es uns ermöglichen, ein Kernemodul zu kompileren. Ruft dazu den YAST auf und geht auf Software installieren oder löschen. Stellt nun auf der linken Seite des Installationsmenüs den Filter auf Schemata . Scrollt nun weiter hinunter bis Ihr zum Abschnitt Entwicklung gelangt. Dort wählt folgende Pakete aus:

  • Grundlegende Entwicklungsumgebung
  • C/C++ - Entwicklung
  • RPM Build Umgebung
  • Linux-Kernel-Entwicklung

Wenn Ihr die Pakete installiert habt, dann ladet Euch die aktuellen Module für Eure Systemarchitktur ( 32 bit oder 64 bit ) unter http://www.nvidia.com herunter. Im Downloadbereich der Page findet Ihr auch die Linux Treiber.

Wenn Ihr die Datei heruntergeladen habt, müsst Ihr diese ausführbar machen. Öffnet ein Dolphin Fenster und rechtsklickt auf die entsprechende Datei. Danach auf Eigenschaften und** Berechtigungen**. Hier die Checkbox “ausführbar” anklicken und die neue Einstellung übernehmen.

Wechselt nur auf die Konsole mit

STRG+ALT+F1

und meldet Euch als root an. Dann wechselt mit cd /home/[USERNAME] in Euer Downloadverzeichnis.

Danach “schießen” wir den X-Server ab:

init 3

Drückt noch einmal auf Enter, damit Ihr wieder zum Eingabeprompt gelangt. Zeigt Euch Eure Dateien im Downloadverzeichnis an:

dir

Führt nun das Nvidia-Paket aus:

./NVIDIA-Linux-x86_64-177.13-pkg2.run

(den Namen müsst Ihr gemäß dem heruntergeladenen Paket anpassen).

Die nun angezeigte Lizenzvereinbarung müsst Ihr akzeptieren, um weiter zu kommen, also dann auf Accept . Als nächstes schlägt der Installer vor, dass er nach ein vorgefertigtes Modul sucht und es herunter läd. Dies verhindern wir mit einem “No” . Danach sagt uns der Installer, dass er jetzt ein eigenes Modul kompilieren muss. Das nicken wir mit einem “OK” ab. Wenn Ihr ein 64bit Modul kompiliert fragt der Installer, ob er noch die 32bit kompatiblen Bibliotheken mitinstallieren soll. Das wollen wir schon tun und wählen “Yes” . Wenn das fertig ist, möchte der Installer eine neue X-Konfigurationsdatei schreiben. Hierbei ergänzt er seine Settings. Wir lassen das mit einem “Yes” an dieser Stelle zu. Wenn mal ein neuerer Treiber installiert wird, kann man das durchaus verneinen. Danach beenden wir die Installation mit einem beherztem “OK” .

Gebt jetzt einfach ein

init 5

ein und drückt Enter. Dann startet der KDE4 wieder neu. Wenn Ihr nun das KDE4 Menü aufmacht und unter Programme -> System -> Weitere Programme nachseht, dann seht Ihr das Programm NVIDIA X-Server Settings. Startet dieses um die Einstellungen zu überprüfen.

http://www.gargi.org/stuff/opensuse11/nvidia_settings.png

Dann häng ich doch glatt mal meinen Linupedia-Artikel dran:
Einfache Nvidia-Installation

Kurze Anmerkung zur oberen Anleitung:
Bevor man mit init 3 den XServer beendet (oder schon am Besten bevor man auf tty wechselt) würde ich die grafische Sitzung beenden, damit keine Daten verloren gehen.

Das geht ja echt flott. Gestern kam die neue Version des Treibers heraus, heute ist das fertig kompilierte Paket schon auf dem NVIDIA ftp-Server.

Meine Erfahrungen mit den NVIDIA 256.44 und aktuell 256.53 Treiber sind durchwegs sehr positiv.
Das Update auf die neue Version funktioniert problemlos.

Das einzige was bei mir nicht funktioniert ist VDPAU, aber das wird auch noch…

Es gab schon ab und an mal RPMs im Repo, die kein VDPAU konnten.
Ich hab den Treiber manuell von der nVidia-Homepage installiert, da funktionierts jedenfalls…

Aktiv isses aber? Setz mal an der Konsole ein

vdpauinfo

ab und gugg mal was dabei rum kommt.

cu
Gargi

Gute Idee!
Ich dachte das ist automatisch aktiv…

Wenn ich im SMPlayer die Videoausgabe von **xv **auf **vdpau **stelle, geht ein CPU-Kern auf 100% und der Mauszeiger laesst sich nicht mehr bewegen.

Ich kann den vdpauinfo Befehl leider erst heute am Abend testen. Bin schon gespannt was angezeigt wird…

Hier findest Du übrigens auch ein vdpau Testing Tool: VDPAU testing tool - nV News Forums
Muss aber selbst kompiliert werden.

cu
Gargi

vdpauinfo zeigt eine Fülle an Informationen an:

display: :0.0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  256.53  Fri Aug 27 21:32:59 PDT 2010

Video surface:

name   width height types
-------------------------------------------
420     4096  4096  NV12 YV12 
422     4096  4096  UYVY YUYV 

Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                 0  8192  2048  2048
MPEG2_SIMPLE          3  8192  2048  2048
MPEG2_MAIN            3  8192  2048  2048
H264_MAIN            41  8192  2048  2048
H264_HIGH            41  8192  2048  2048
VC1_SIMPLE            1  8190  2048  2048
VC1_MAIN              2  8190  2048  2048
VC1_ADVANCED          4  8190  2048  2048
MPEG4_PART2_SP        3  8192  2048  2048
MPEG4_PART2_ASP       5  8192  2048  2048
DIVX4_QMOBILE         0  8192  2048  2048
DIVX4_MOBILE          0  8192  2048  2048
DIVX4_HOME_THEATER    0  8192  2048  2048
DIVX4_HD_1080P        0  8192  2048  2048
DIVX5_QMOBILE         0  8192  2048  2048
DIVX5_MOBILE          0  8192  2048  2048
DIVX5_HOME_THEATER    0  8192  2048  2048
DIVX5_HD_1080P        0  8192  2048  2048

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  Y8U8V8A8 V8U8Y8A8 
R10G10B10A2      16384 16384    y  Y8U8V8A8 V8U8Y8A8 

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     y
INVERSE_TELECINE                 y
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         y
HIGH QUALITY SCALING - L1        y
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y         1     4096
VIDEO_SURFACE_HEIGHT             y         1     4096
CHROMA_TYPE                      y  
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y  
CSC_MATRIX                       y  
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y  
LUMA_KEY_MAX_LUMA                y  

Schaut für mich soweit normal aus…
Vielleicht mag VDPAU den x264 Codec im mkv Container nicht.

Mal schaun was das VDPAU testing tool für Ergebnisse liefert.

Das VDPAU testing tool läuft bei mir extrem langsam, der Mauszeiger lässt sich während den Tests zeitweise nicht mehr bewegen.
Schon beim 1. Test (Basketball Spiel) hängt die Maus, beim Swiss HD Test musste ich sogar in tty1 wechseln und den qvdpautest Prozess killen, da nichts mehr reagiert hat…

Compositing ausgeschaltet? Hatte ich beim ersten Lauf auch :wink:

komisch… nach dem aus- und wieder einschalten der KWin Effekte läuft der Benchmark fehlerfrei.

Ergebnis:

qvdpautest 0.5.1
AMD Phenom(tm) II X6 1055T Processor
NVIDIA GPU GeForce GTX 460 (GF104) at PCI:1:0:0 (GPU-0)

VDPAU API version : 1
VDPAU implementation : NVIDIA VDPAU Driver Shared Library  256.53  Fri Aug 27 21:32:59 PDT 2010

SURFACE GET BITS: 1398.24 M/s
SURFACE PUT BITS: 1258.51 M/s

MPEG DECODING (1920x1080): 102 frames/s
MPEG DECODING (1280x720): 229 frames/s
H264 DECODING (1920x1080): 65 frames/s
H264 DECODING (1280x720): 135 frames/s
VC1 DECODING (1440x1080): 83 frames/s
MPEG4 DECODING (1920x1080): 71 frames/s

MIXER WEAVE (1920x1080): 254 frames/s
MIXER BOB (1920x1080): 355 fields/s
MIXER TEMPORAL (1920x1080): 166 fields/s
MIXER TEMPORAL + IVTC (1920x1080): 144 fields/s
MIXER TEMPORAL + SKIP_CHROMA (1920x1080): 208 fields/s
MIXER TEMPORAL_SPATIAL (1920x1080): 86 fields/s
MIXER TEMPORAL_SPATIAL + IVTC (1920x1080): 78 fields/s
MIXER TEMPORAL_SPATIAL + SKIP_CHROMA (1920x1080): 96 fields/s
MIXER TEMPORAL_SPATIAL (720x576 video to 1920x1080 display): 243 fields/s
MIXER TEMPORAL_SPATIAL + HQSCALING (720x576 video to 1920x1080 display): 159 fields/s

MULTITHREADED MPEG DECODING (1920x1080): 106 frames/s
MULTITHREADED MIXER TEMPORAL (1920x1080): 159 fields/s

Der SMPlayer will trotzdem nicht so Richtig. Xvid Filme in SD-Auflösung laufen, außer im Vollbild hängt es wieder.
Manche x264 Filme laufen, andere sind nur Schwarz, Vollbild hängt bei allen.

Aber Gut, die xv Ausgabe genügt mir, da alles flüssig läuft.

Vielen Dank für die Tipps!

Das klingt nach ein paar Inkompatibilitäten. Wichtig ist nur zu wissen, dass es grundsätzlich bei Dir läuft (was auch der Fall ist :wink: )

[tschuldigung für die englischen ausdrücke; bei mir läuft alles auf engl. und ich weiß nicht, wie die deutsche übersetzung genau aussieht.]

vor kurzem habe ich etwas herausgefunden, was für andere vermutlich selbstverständlich ist: wenn man in nVidia-settings mehrere monitore als “separate X screen” konfiguriert, multipliziert das den CPU verbrauch von Xorg. ist ja klar, “separate X…” bedeutet vermutlich, daß für jeden monitor ein eigener X-server läuft.

seitdem ich meine beiden monitore auf “twin view” umgestellt habe, sind die CPU werte durchweg im ‘grünen bereich’.

und nochwas: als ich noch mit “separate X…” und eingeschalteter “panoramaview” lief, konnte ich keine “window effects” einschalten. mit hilfe von google fand ich heraus, daß diese mit “twin view” funktionieren.


phani.

PS: was ist eigentlich der unterschied, oder der nutzen, für jeden monitor einen eigenen X-server zu starten? für mich sieht alles genauso aus, mit “twin view” oder “separate X…” + “panoramaview”. kann man die X-server dann unterschiedlich konfigurieren um sie in SSH mit X-forwardng oder virtuellen maschinen zu verwenden, oder was?

on the openSUSE mailing list (Re: [opensuse] Re: kernel 2.6.36 speeds things up) Philipp Thomas posted the patch below, which makes a small change to one file in the nvidia driver source (the ~.run file, extracted with “sh ~.run -x”).

for me—openSUSE 11.3 (x86_64) Kernel: 2.6.36-rc3-10-default, KDE Development Platform: 4.5.1 (KDE 4.5.1)—this patch works great. the patched driver compiles & works well–until now; have been using it only for a few hours.

**Re: [opensuse] Re: kernel 2.6.36 speeds things up**
From: Philipp Thomas <pth@xxxxxxx>
Date: Tue, 7 Sep 2010 14:11:13 +0200
Message-id: <20100907121113.GC6529@xxxxxxxxxxxxxxxx>
* phanisvara das (phani00@xxxxxxxxx) [20100905 20:50]:

> didn't work for me. "kernelmodule could not be built," or similar. in the log 
> file, it suggests doing things to the kernel source configuration. 

The patch I used is attached.

Philipp

--- kernel/nv.c.original 2010-09-07 13:55:25.770456446 +0200
+++ kernel/nv.c 2010-09-07 14:08:34.681351694 +0200
@@ -423,7 +423,9 @@ static struct pci_driver nv_pci_driver =
static struct file_operations nv_fops = {
.owner = THIS_MODULE,
.poll = nv_kern_poll,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
.ioctl = nv_kern_ioctl,
+#endif
#if defined(HAVE_UNLOCKED_IOCTL)
.unlocked_ioctl = nv_kern_unlocked_ioctl,
#endif


phani.

ach du käse, jetzt habe ich hier auf englisch geschrieben. hier ist die deutsche übersetzung des oberen teils; die untere hälfte ist ja ein patch:

auf der openSUSE mailing-list (?) ist ein beitrag von Philipp Thomas (Re: [opensuse] Re: kernel 2.6.36 speeds things up), dem er ein patch für den nvidia-driver 256.53 beifügte. damit kann man diesen treiber auch mit kernel 2.6.36 kompilieren und benutzen.

(um das patch anzuwenden, muß die ~.run datei extrahiert werden: “sh ~.run -x”. dann im verzeichnis kernel/ patchen.)

für mich funktioniert das ausgezeichnet–allerdings erst seit ein paar stunden. meine konfiguration:

openSUSE 11.3 (x86_64), Kernel: 2.6.36-rc3-10-default, KDE 4.5.1


phani.

Ich würde sehr gerne den neuen Kernel 2.6.36-rc3 oder 2.6.35.4 testen (u.a. auch wegen meiner AMD X6 CPU).

Ich hatte letzte Woche testweise das Index of /repositories/Kernel:/HEAD/openSUSE_11.3 Repo eingebunden und den Kernel mit einem zypper dup aktualisiert.

Der neue Kernel wollte leider nicht starten, aber zum Glück war der 2.6.34 Kernel noch vorhanden.
(Ich werde in Zukunft Kernel-Updates in einer VM testen… Sicher ist Sicher)

Welches Kernel Repo ist für openSUSE 11.3 und Kernel 2.6.35.4 oder 2.6.36-rc3 empfehlenswert?
Index of /repositories/Kernel:

Gibt es eine empfohlene/sichere Vorgehensweise für die Installation?

ich habe das gleiche repo verwendet.

würde das nicht mit “zypper dup” machen. je nachdem welche repos du eingebunden hast, können da viele unangenehme sachen passieren–falls du nicht den “zypper dup” befehl mit --from oder --repo weiter qualifizierst. ich finde es am einfachsten, yast dafür zu verwenden, doch vorsicht: auf diese weise wird der vorige kernel vermutlich gelöscht. es gibt eine möglichkeit, .rpm pakete zu verwenden und das zu verhindern, habe ich aber noch nicht genau nachgelesen. war immer recht zuversichtlich, daß der neue kernel funktionieren würde–und hab’ natürlich noch eine andere laufende oS installation auf einem anderen HDD.

in yast kannst du sehr schön auswählen, welche paket-versionen du installieren willst, und die auswahl auch wieder rückgängig machen, wenn fehler oder zu viele warnungen auftauchen. suche einfach nach deinem kernel (kernel-desktop oder -default, nehme ich an), dann sieh unten unter “versionen” nach und wähle die neueste aus, wenn du das willst. oben dann das kernel paket auf “update” stellen (weiß nicht, wie das auf deutsch heißt), und dann sollten die anderen pakete automatisch ausgewählt werden. wenn probleme auftauchen, sind da meistens lösungsvorschläge dabei; wenn einer davon funktioniert, fein, wenn nicht, dann die sache abblasen & nochmal von vorne anfangen.

das hat für mich einige male gut funktioniert. vermutlich solltest du aber auf sachkundigeren rat als meinen warten…


phani.