27. marts 2002 - 10:21Der er
5 kommentarer og 1 løsning
NVdriver kompilering
Hello! Jeg er igang med at installere nvidias drivere på min debian box. Jeg har kompileret kernel headers men den fejler nu når jeg kører make på NVIDIA_kernel den giver en CC mismatch fejl. Noget med at jeg bruger en anden compiler til at kompilere driveren med end den jeg brugte til at kompilere kerne. HVordan løses dette?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
A: You should compile the NVdriver kernel module with the same compiler version that was used to compile your kernel. Some Linux kernel data structures are dependent on the version of gcc used to compile it; for example, in include/linux/spinlock.h:
... * Most gcc versions have a nasty bug with empty initializers. */ #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
If the kernel is compiled with gcc 2.x, but gcc 3.x is used when the open files in NVdriver are built (or vice versa), the size of rwlock_t will vary, and things like ioremap will fail.
To check what version of gcc was used to compile your kernel, you can examine the output of:
cat /proc/version
To check what version of gcc is currently in your $PATH, you can examine the output of:
gcc -v
Selvfølgelig noget øv hvis man ikke vil nedgraderer sin gcc bare for de drivere.
Det var gcc 2.7.2.3 der kompilerede kerne men gcc 2.9.et.ellerandet den bruger til at kompilere nvidia drivere. Hvordan "downgrader" jeg den? Jeg undskylder de mange spørgsmål men jeg er linux n00b :)
Hvad med at recompilere din kerne er det ikke nemmere hvis du har opgraderet din compiler..normalt burde man rekompilere din kerne hvis man opgradere compiler.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.