Jo, aber auch anderer Treiber, der 375er hatte schon seit ein paar Wochen eine Version, die mit 4.9.x ohne Patches funktionierte, für den 340er gab es bis vor ein paar Stunden eben noch nichts und ich hatte mich dann halt auf die Suche gemacht.
Bin gerade dabei meine "hausgemachten" RPMs für den 340.101 zusammen zu schustern, mal schauen, was passiert.
//Edit:
Das war komplizierter als gedacht.
Zuerst die gute Nachricht:
Der 340.101 baut gegen kernel 4.9.0 ohne Patches.
Jetzt die schlechte:
Das Modul lässt sich genau so wenig laden wie in Beitrag #2 dieses Threads beschrieben (selbe Fehlermeldung).
Und nun wurde es seltsam, ich hatte nur die neuen Dateien drübergebügelt, modul nvidia entladen und beim Versuch das Kernelmodul nvidia.ko neu zu laden hat es dann geknallt. Das hat eigentlich seit Jahren bei jedem Update des Treibers ohne Ärger funktioniert, also dachte ich dass etwas am Treiber faul sein musste.
Nun denn, also habe ich zunächst wieder ein Downgrade auf (meinen gepatchten) 340.98 versucht, aber auch da liess sich das Modul nicht mehr laden, der Puls ging leicht hoch, das gefiel mir gar nicht.
Letzte Rettung, "Reboot tut gut"?
Und ja, nach einem Neustart ließ sich dann zumindest wieder das "alte" Modul (340.89 gepatcht) laden und ich habe das Spielchen nochmal versucht, also alles auf 340.101 "hochgezogen" aber dieses mal mit Neustart des Systems.
Und wieder hat es mächtig gekracht, Modul kann nicht geladen werden, irgendwas läuft beim Zusammenspiel mit drm.ko und der Registrierung des Modules im proc-Dateisystem falsch.
OK, dann eben als nächsten Versuch den dritten Teil des Patches für 340.98 in die Sourcen des 340.101 eingebaut
Code:
--- nv-drm.c.orig 2016-09-20 02:01:20.000000000 +0200
+++ nv-drm.c 2016-12-14 15:19:06.484533335 +0100
@@ -115,7 +115,11 @@
};
static struct drm_driver nv_drm_driver = {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
.driver_features = DRIVER_GEM | DRIVER_PRIME,
+#else
+ .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
+#endif
.load = nv_drm_load,
.unload = nv_drm_unload,
.fops = &nv_drm_fops,
Kernelmodul neu gebaut, System komplett neu gestartet und siehe da .....
Code:
[ 44.001176] [drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 0
[ 44.001200] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 340.101 Thu Dec 1 15:52:31 PST 2016
und
Code:
glxinfo | grep nvidia
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
OpenGL core profile version string: 3.3.0 NVIDIA 340.101
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL version string: 3.3.0 NVIDIA 340.101
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL ES profile version string: OpenGL ES 2.0 NVIDIA 340.101 340.101
uname -a
Linux OlleKiste 4.9.0-1.g8c92422-default #1 SMP PREEMPT Mon Dec 12 15:54:28 UTC 2016 (8c92422) x86_64 x86_64 x86_64 GNU/Linux
Schlussfolgerung, der letzte Teil des Patches wird auch für den 340.101 benötigt, damit er unter 4.9 überhaupt läuft.
Was ne schwere Geburt und es wird nun wohl Zeit den Threadtitel zu ändern.
Greetz,
RM