Linux 15.004 Themen, 106.699 Beiträge

NVIDIA-Treiber kompilieren

format c: / 1 Antworten / Flachansicht Nickles

Ich habe Mandrake 9.0 und eine Geforce2 MX:


möchte OpenGL haben:


vor dem Compilieren kommt aber eine Fehlermeldung "Falsche Compilerversion"


Was kann ich da tun?


- - Unten ist ein Auszug aus der NVIDIA-Readme:


Frage: Das Kompilieren des NVdriver Kernelmoduls erzeugt diese Fehlermeldung.


Sie haben wahrscheinlich das NVdriver Kernelmodul mit einen Compiler kompiliert,


der nicht mit dem übereinstimmt, der für das Kompilieren des Running Kernel


verwendet wurde. Das kann völlig in Ordnung sein, kann jedoch auch zu


unvorhergesehenen Ereignissen und Systemabstürzen führen.


Wenn Sie wissen, was Sie tun und diese Prüfung umgehen möchten, können Sie dies


durch die Einstellung von IGNORE_CC_MISMATCH erreichen.


Setzen Sie in allen anderen Fällen die CC Umgebungsvariable auf den Namen des


Compilers, der zur Kompilierung des Kernels verwendet wurde.


Antwort: Sie sollten das NVdriver Kernelmodul mit der gleichen Compilerversion


kompilieren, die zur Kompilierung Ihres Kernels eingesetzt wurde. Einige Linux


Kernel Datenstrukturen sind von der gcc Version abhängig, die bei dessen


Kompilierung verwendet wurden, z.B. in include/linux/spinlock.h:


...


* Die meisten gcc Versionen haben einen üblen Bug mit leeren Initialisierern.


*/


#if (__GNUC__ > 2)


typedef struct { } rwlock_t;


#define RW_LOCK_UNLOCKED (rwlock_t) { }


#else


typedef struct { int gcc_is_buggy; } rwlock_t;


#define RW_LOCK_UNLOCKED (rwlock_t) { 0 }


#endif


Wird der Kernel mit gcc 2.x kompiliert aber gcc 3.x wird verwendet, wenn die


geöffnete Datei im NVdriver erstellt werden (oder umgekehrt), variiert die Größe


von rwlock_t und Dinge wie ioremap schlagen fehl.


Wenn Sie checken möchten, welche Version zur Kompilierung Ihres Kernels


verwendet wurde, überprüfen Sie die Ausgabe von:


cat /proc/version


Wenn Sie checken möchten, welche gcc Version in Ihrem$PATH verwendet wurde,


überprüfen Sie die Ausgabe von:


gcc -v

bei Antwort benachrichtigen