IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Erreur d'inclusion


Sujet :

Linux

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Par défaut Erreur d'inclusion
    Bonsoir à tous.

    J'essaye de créer un petit module linux (un simple Hello Kernel). Mais lors de la compilation j'obtiens des erreurs qui me rappellent des conflits d'inclusion.

    Voici en gros mon code (recopié ici)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #include <linux/module.h>
    #include <linux/init.h>
     
    static int __init mon_module_init(void)
    {
      printk(KERN_DEBUG "Hello World !\n");
      return 0;
    }
     
    static void __exit mon_module_cleanup(void)
    {
      printk(KERN_DEBUG "Goodbye World!\n");
    }
     
    module_init(mon_module_init);
    module_exit(mon_module_cleanup);

    Ma ligne de compilation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -D__KERNEL__ -I /usr/src/linux-headers-2.6.17-11-generic/include/ -DMODULE -Wall -O2 -c HelloKernel2.c -o HelloKernel.o
    Et les erreurs que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    malves@bonobo ~/Work/Drivers/HelloKernel $ gcc -D__KERNEL__ -I /usr/src/linux-headers-2.6.17-11-generic/include/ -DMODULE -Wall -O2 -c HelloKernel2.c -o HelloKernel.o
    In file included from /usr/src/linux-headers-2.6.17-11-generic/include/asm/thread_info.h:16,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/thread_info.h:21,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/preempt.h:9,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/spinlock.h:49,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/capability.h:45,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/sched.h:44,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/module.h:9,
                     from HelloKernel2.c:10:
    /usr/src/linux-headers-2.6.17-11-generic/include/asm/processor.h:76: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)
    /usr/src/linux-headers-2.6.17-11-generic/include/asm/processor.h:76: error: requested alignment is not a constant
    In file included from /usr/src/linux-headers-2.6.17-11-generic/include/linux/sched.h:49,
                     from /usr/src/linux-headers-2.6.17-11-generic/include/linux/module.h:9,
                     from HelloKernel2.c:10:
    /usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:33:3: error: #error You lose.
    /usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
    /usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
    /usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
    [...]
    Je ne sais pas trop d'ou cela peut venir étant donné que j'ai l'impréssion que ce sont des conflits d'inclusions dans les headers sur systemes. Je me trompe ?

    Si quelqu'un à quelque chose à proposer je suis preneur

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 57
    Par défaut
    Bon j'ai finalement abandonné ma ligne de compilation que j'ai lus dans un bouquin et j'ai utilisé le Makefile donné dans le tutorial.

    Tout marche correctement à l'exception que je ne comprend rien à ce makefile. J'en ai déja fais mais là ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    obj-m += modules.o
     
    default:
            make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
     
    clean:
            make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
    Quelqu'un peut m'explique svp ? J'aimerai également savoir à quoi correspont le fichier modules.mod.c généré...

Discussions similaires

  1. Erreur d'inclusion multiple?
    Par Keweed dans le forum Débuter
    Réponses: 12
    Dernier message: 18/02/2009, 12h53
  2. [JpGraph] Erreur à l'inclusion de JPGraph sous EasyPHP
    Par Orcieres dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/10/2008, 23h27
  3. Erreur d'inclusion opengl
    Par Clad3 dans le forum C++
    Réponses: 24
    Dernier message: 12/10/2007, 10h16
  4. [PHP-JS] Erreur d'inclusion avec un script
    Par Equinoxe5 dans le forum Langage
    Réponses: 2
    Dernier message: 23/08/2007, 22h57
  5. Erreur sur inclusion types.h avec cygwin
    Par Bayard dans le forum Réseau
    Réponses: 12
    Dernier message: 12/11/2006, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo