Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3088 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Linux 2.6] Compilation de module avec sous dossiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Linux 2.6] Compilation de module avec sous dossiers

n°675362
allawos
Posté le 10-05-2005 à 10:52:47  profilanswer
 

Bonjour à tous. je suis entrain de porter un driver pour caméras usb 2.4 vers le kernel 2.6.
J'ai donc pu constater que la compilation de modules est différentes pour le kernel 2.6.
 
Voici l'arborescence de mes fichiers :
/chemin/vers/ma/racine/monModule.c
/chemin/vers/ma/racine/Makefile
 
Pour l'instant, j'ai donc ajouté dans mon makefile :
 

Code :
  1. obj-m := monModule.o
  2. KDIR  := /usr/src/linux/
  3. PWD   := $(shell pwd)
  4. all : monModule.o
  5. monModule.o : monModule.c
  6. gcc $(CFLAGS) -I. -c monModule.c -o monModule.o
  7. mod :
  8. make  -C $(KDIR) M=$(PWD) modules


 
Je lance donc : "make all". Cela compile donc mon fichier monModule.c et crée l'objet monModule.o et le fichier monModule.mod.c.
Je lance ensuite : "make mod". Cela me crée bien le fichier monModule.ko.
 
Je voudrais donc savoir dans un premier temps, si ma démarche est la bonne. En effet, je me demande si il ne suffit pas de lancer uniquement "make mod", puisque cela rappelle forcément le "make all" donc la compilation du fichier monModule.c.
 
De plus, je souhaiterai pouvoir organiser mes fichier différemment, afin d'avoir deux dossiers, un contenant les .o et .ko et un contenant le .c. Soit :
 
/chemin/vers/ma/racine/c/monModule.c
/chemin/vers/ma/racine/o/monModule.o
/chemin/vers/ma/racine/o/monModule.ko
/chemin/vers/ma/racine/Makefile
 
 
J'ai donc déplacé mes fichiers dans les bons dossiers, puis transformé mon makefile en :

Code :
  1. obj-m := o/monModule.o
  2. monModule-objs= c/monModule.c
  3. KDIR  := /usr/src/linux/
  4. PWD   := $(shell pwd)
  5. EXTRA_CFLAGS += -I$(obj)/c/
  6. all : monModule.o
  7. monModule.o : c/monModule.c
  8. gcc $(CFLAGS) -I. -c c/monModule.c -o o/monModule.o
  9. mod :
  10. make  -C $(KDIR)  $(EXTRA_CFLAGS) M=$(PWD) modules


 
La commande "make all" compile bien mon fichier c/monModule.c ... et crée bien le fichier o/monModule.o, mais pas de c/monModule.mod.c :(
De plus, lors du "make mod", jobtiens alors l'erreur suivante :

make  -C /usr/src/linux/ -I/c/ M=/chemin/vers/ma/racine modules
make[1]: Entering directory `/usr/src/linux-2.6.8.1-12mdk'
make[2]: *** Pas de règle pour fabriquer la cible « /chemin/vers/ma/racine/o/uc_tm.c », nécessaire pour « /chemin/vers/ma/racine/o/uc_tm.o ». Arrêt.
make[1]: *** [_module_/chemin/vers/ma/racine] Erreur 2
make[1]: Leaving directory `/usr/src/linux-2.6.8.1-12mdk'
make: *** [mod] Erreur 2

 
Voila voila, donc je suis un peu bloqué, j'espère que certains d'entre vous sauront m'aider. Merci d'avance, d'avoir pris le temps de lire tout ca !


Message édité par allawos le 10-05-2005 à 10:59:18
mood
Publicité
Posté le 10-05-2005 à 10:52:47  profilanswer
 

n°676799
allawos
Posté le 12-05-2005 à 18:56:58  profilanswer
 

Un petit Up au cas ou ... merci d'avance !

n°720416
a_bandini
Posté le 23-08-2005 à 18:23:00  profilanswer
 

Je suis pas sur que ça soit possible.
En tout cas tonModule-objs c'est plutot quand tu link plusieur  .o dans un seul module.
 
va voir http://lwn.net/Articles/21823/ pour avoir un Makefile plus "2.6"  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Linux 2.6] Compilation de module avec sous dossiers

 

Sujets relatifs
problème avec XML::Parser (perl module)toutes les etapes pour linux
Ventilo et Linux....recherche linux pour accès multimedia rapide
Quel FS préférez vous sous linux ?Un Linux avec le look n feel de Firefox ?
Controlleur IDE Linux ?Changer de module usb
Medion md95257 : comportement sous linuxCompilation kernel necessaire ?
Plus de sujets relatifs à : [Linux 2.6] Compilation de module avec sous dossiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR