[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Module noyau "hello world": "kernel-module version mismatch"



J'essaie actuellement de faire fonctionner le petit module "Hello,
World" du livre "Linux Device Drivers, 2nd Edition"[1], qui est très
simple:

    #define MODULE
    #include <linux/module.h>

    int init_module(void) {
        printk("<1>Hello, world\n");
        return 0;
    }

    void cleanup_module(void) {
        printk("<1>Goodbye cruel world\n");
    }

Je compile avec "gcc -c hello.c", puis, sous root, je tente ceci:

# insmod ./hello.o
./hello.o: kernel-module version mismatch
        ./hello.o was compiled for kernel version 2.4.19-686
        while this kernel is version 2.4.18-k7.

Je ne comprends pas pourquoi gcc aurais compilé pour la version 2.4.19
alors que je roule 2.4.18. Où dois-je regarder pour régler le problème? 

Quelques infos pouvant être utiles:

# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20011002 (Debian prerelease)

# uname -a
Linux cortex 2.4.18-k7 #1 Sun Apr 14 13:19:11 EST 2002 i686 AMD
Athlon(tm) Processor AuthenticAMD GNU/Linux

Je vois bien la référence à module.h, qui semble être
/usr/include/linux/module.h, et qui m'amène jusqu'à
/usr/include/linux/autoconf.h, mais je ne vois pas vraiment où et quoi
changer...

Toute aide serait grandement appréciée :)

Nicolas


[1] http://www.xml.com/ldd/chapter/book/index.html