Compilation module sur noyau

Bonjour,
svp je suis debutante en linux 'je travaille sur Centos)et je veux compiler un module (exp helloworld)sur le noyau
voila les etapes qui j'ai suivie
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{

printk(KERN_INFO "Hello world 1.\n");
/*
* * A non 0 return means init_module failed; module can't be loaded.
* */
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
2======> le makefile
obj-m = hello.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
3 je lance la commande make il m'affiche "Rien à faire pour « all ».

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Je suppose que tu suis ce tutoriel ?
    https://broux.developpez.com/articles/c/driver-c-linux/

    Dans ton makefile, tu as bien penser à mettre un caractère de tabulation devant "make -C..." ?
    1. ça veut dire quoi mettre un caractère de tabulation devant "make -C..."
    2. Bonsoir,

      Tu vois la touche Tabulation de ton clavier ? (a coté de la touche A) qui sert a mettre "un gros espace", c'est ça une tabulation.
    3. ok merci :)
    4. stp pour le makefile je l'ecris tel qu'il est ou je remplace le "KVERSION " par la version de OS installée
    5. Non, KVERSION est une variable qui va se charger de faire ça automatiquement, afin d'éviter tous bugs, laisse tel quel.
  2. Modérateur
    Peux-tu mettre tes sources dans une archive (par exemple un fichier tgz) et la mettre en partage par exemple sur rapidshare pour qu'on puisse voir ce qui cloche ?
    1. comment la mettre en paratge sur rapidshare
    2. Modérateur
      Tu cliques sur le bouton upload -_-
    3. A mon vis il faut que tu envoie le lie par MP car ce genre de service se n'est pas trop bien vue sur ce genre de site.
    4. Modérateur
      Il y en a plein d'autres qui passent à mon avis (cijoint etc...) et non je pense que ça ne pose pas de problème.
    5. j'ai déjà mis le programme et le makefile SVP esaayez les chez toi :) et merci
      le prog
      #include <linux/module.h>
      #include <linux/kernel.h>
      int init_module(void)
      {

      printk(KERN_INFO "Hello world 1.\n");
      /*
      * * A non 0 return means init_module failed; module can't be loaded.
      * */
      return 0;
      }
      void cleanup_module(void)
      {
      printk(KERN_INFO "Goodbye world 1.\n");
      }
      2======> le makefile
      obj-m = hello.o
      KVERSION = $(shell uname -r)
      all:
      make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
      clean:
      make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean