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

  FORUM HardWare.fr
  Linux et OS Alternatifs

  [Résolu][Module]Erreurs de compilation skull

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][Module]Erreurs de compilation skull

n°679542
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-05-2005 à 11:27:35  profilanswer
 

Bonjour,
 
Sur ma machine

  • PC/x86
  • kernel 2.6
  • Mandrake 10.1

impossible de compiler ceci (skull)


/* com_driver.c */
#include <linux/module.h>
 
int __entry com_init_module (void)
{
   printk( KERN_DEBUG "Module com init\n" );
   return 0;
}
 
int __exit com_cleanup_module (void)
{
   printk( KERN_DEBUG "Module com exit\n" );
   return 0;
}


Le makefile est


# generer un module pour Linux 2.6 sur i586
 
CFLAG1 = -W -Wall -O2
CFLAG2 = -D__KERNEL__ -DMODULE
CFLAG3 =
 
CFLAGS = $(CFLAG1) $(CFLAG2) $(CFLAG3)
 
# cible finale
all : com.o
 
# fichier source
com.o : com.c
   gcc $(CFLAGS)  -c com.c -o com.o


Ca génère des tas d'erreurs comme


[edelahaye@localhost com]$ make
gcc -W -Wall -O2 -D__KERNEL__ -DMODULE    -c com.c -o com.o
In file included from /usr/include/linux/sched.h:14,
                 from /usr/include/linux/module.h:9,
                 from com.c:2:
/usr/include/linux/cpumask.h:80: error: syntax error before "DECLARE_BITMAP"
/usr/include/linux/cpumask.h:81: error: syntax error before "_unused_cpumask_arg_"
/usr/include/linux/cpumask.h:84: error: syntax error before '*' token
/usr/include/linux/cpumask.h: In function `__cpu_set':
/usr/include/linux/cpumask.h:86: error: `cpu' undeclared (first use in this function)
/usr/include/linux/cpumask.h:86: error: (Each undeclared identifier is reported only once
/usr/include/linux/cpumask.h:86: error: for each function it appears in.)
/usr/include/linux/cpumask.h:86: error: `dstp' undeclared (first use in this function)
<...>


 
Il doit manquer des définitions de macros (-Dxxx), mais lesquelles... ?
 
Merci de m'aider.
 
Emmanuel


Message édité par Emmanuel Delahaye le 18-05-2005 à 14:11:52

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
mood
Publicité
Posté le 18-05-2005 à 11:27:35  profilanswer
 

n°679597
xouille38
Posté le 18-05-2005 à 12:53:51  profilanswer
 

Emmanuel Delahaye a écrit :

Bonjour,
 
Sur ma machine

  • PC/x86
  • kernel 2.6
  • Mandrake 10.1

impossible de compiler ceci (skull)


/* com_driver.c */
#include <linux/module.h>
 
int __entry com_init_module (void)
{
   printk( KERN_DEBUG "Module com init\n" );
   return 0;
}
 
int __exit com_cleanup_module (void)
{
   printk( KERN_DEBUG "Module com exit\n" );
   return 0;
}


Le makefile est


# generer un module pour Linux 2.6 sur i586
 
CFLAG1 = -W -Wall -O2
CFLAG2 = -D__KERNEL__ -DMODULE
CFLAG3 =
 
CFLAGS = $(CFLAG1) $(CFLAG2) $(CFLAG3)
 
# cible finale
all : com.o
 
# fichier source
com.o : com.c
   gcc $(CFLAGS)  -c com.c -o com.o


Ca génère des tas d'erreurs comme


[edelahaye@localhost com]$ make
gcc -W -Wall -O2 -D__KERNEL__ -DMODULE    -c com.c -o com.o
In file included from /usr/include/linux/sched.h:14,
                 from /usr/include/linux/module.h:9,
                 from com.c:2:
/usr/include/linux/cpumask.h:80: error: syntax error before "DECLARE_BITMAP"
/usr/include/linux/cpumask.h:81: error: syntax error before "_unused_cpumask_arg_"
/usr/include/linux/cpumask.h:84: error: syntax error before '*' token
/usr/include/linux/cpumask.h: In function `__cpu_set':
/usr/include/linux/cpumask.h:86: error: `cpu' undeclared (first use in this function)
/usr/include/linux/cpumask.h:86: error: (Each undeclared identifier is reported only once
/usr/include/linux/cpumask.h:86: error: for each function it appears in.)
/usr/include/linux/cpumask.h:86: error: `dstp' undeclared (first use in this function)
<...>


 
Il doit manquer des définitions de macros (-Dxxx), mais lesquelles... ?
 
Merci de m'aider.
 
Emmanuel


 
C'est pas grand chose ça rajoute un -I/usr/src/linux/include (à arranger suivant ton noyau qui tourne/sur lequel tu veux faire tourner ton module...) (sinon -I/lib/modules/linux-xxx/build/include...)
 
PS : il faut que les sources du noyo soient configurer (->dépendances : étape make dep sur les 2.4 sur les 2.6 je fais juste un make pour être sur)
 
PS2 : tu suis le book d'oreilly? il me semble que c'est expliqué dedans...


Message édité par xouille38 le 18-05-2005 à 12:57:47
n°679621
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-05-2005 à 14:08:31  profilanswer
 

xouille38 a écrit :

C'est pas grand chose ça rajoute un -I/usr/src/linux/include (à arranger suivant ton noyau qui tourne/sur lequel tu veux faire tourner ton module...) (sinon -I/lib/modules/linux-xxx/build/include...)
 
PS : il faut que les sources du noyo soient configurer (->dépendances : étape make dep sur les 2.4 sur les 2.6 je fais juste un make pour être sur)
 
PS2 : tu suis le book d'oreilly? il me semble que c'est expliqué dedans...


Non, mais je sens que je vais investir...
 
J'ai installé les sources et j'ai ajouté le -I qui va bien et ça compile.
 
Merci de m'avoir débloqué.
 
Emmanuel
 
P.S. et c'était pas __entry mais __init


Message édité par Emmanuel Delahaye le 18-05-2005 à 14:11:24

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°679623
xouille38
Posté le 18-05-2005 à 14:14:00  profilanswer
 

Emmanuel Delahaye a écrit :

Non, mais je sens que je vais investir...
 
J'ai installé les sources et j'ai ajouté le -I qui va bien et ça compile.
 
Merci de m'avoir débloqué.
 
Emmanuel
 
P.S. et c'était pas __entry mais __init


de rien   :)  
oui en plus (pour le init) mais j'avais pas plus fait gaffe que ça... si tu mets init_module tu dois pouvoir t'en passer (en 2.4 en tout cas)
 
pense quand même que les sources doivent être configurer à hauteur du noyau tournant, hein!
 
PS: le oreilly doit être dispo en ligne en anglais...


Message édité par xouille38 le 18-05-2005 à 14:17:10

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

  [Résolu][Module]Erreurs de compilation skull

 

Sujets relatifs
Problème permissions (RESOLU)[Debian] Clavier FR sous console EN sous Xwin - Résolu
[IPTABLES] Utiliser des adresses IP publiques sur un LAN (résolu)[Debian] Compilation du pilote ATI problème
[Résolu] GRUB : "Error 29: Disk write error"[geexbox]résolu
J'arrive pas a installer le pilote ATI sur Sarge [Resolu] (tout seul)Certaines options de vlc ne sont pas visibles (résolu :) )
Installer un module Apache ? [MAJ] Performances de PhpAccelerator ?Existe t-il un équivalent à image resizer sous Linux ? [Résolu]
Plus de sujets relatifs à : [Résolu][Module]Erreurs de compilation skull


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