TorTukiTu
Messages postés31Date d'inscriptionsamedi 22 avril 2006StatutMembreDernière intervention18 avril 2011
-
11 mars 2009 à 11:09
TorTukiTu
Messages postés31Date d'inscriptionsamedi 22 avril 2006StatutMembreDernière intervention18 avril 2011
-
11 mars 2009 à 20:24
Bonjour,
Je cherche à compiler le module qui dit bonjour. J'ai téléchargé les sources du kernel (linux-headers-2.6.27-11) et j'ai copié les en-têtes dans /usr/include.
Voici la source de ce que je désire compiler:
#include <linux/module.h>
#include <linux/init.h>
static int __init myModule__init(void){
printk(KERN_ALERT "Hello World !\n");
return 1;
}
static void __exit myModule_exit(void){
printk(KERN_ALERT "Bye all World !\n");
}
module_init(starting);
module_exit(exitting);
Mais quand je fais un gcc -c -lm module.c , j'ai une énorme quantité d'erreurs. En voici le début:
In file included from /usr/include/asm/processor.h:15,
from /usr/include/linux/prefetch.h:14,
from /usr/include/linux/list.h:6,
from /usr/include/linux/module.h:9,
from myDriver.c:1:
/usr/include/asm/current.h: In function ‘get_current’:
/usr/include/asm/current.h:25: erreur: expected expression before ‘struct’
/usr/include/asm/current.h:25: erreur: expected expression before ‘struct’
/usr/include/asm/current.h:25: erreur: expected expression before ‘struct’
In file included from /usr/include/asm/cmpxchg_64.h:4,
from /usr/include/asm/cmpxchg.h:4,
...etc...
J'ai regardé un peu partout mais je n'ai pas réussi à comprendre pourquoi ça me fesait ça. Mes headers sont mauvais? Je ne compile pas comme il faut?
TorTukiTu
Messages postés31Date d'inscriptionsamedi 22 avril 2006StatutMembreDernière intervention18 avril 20111 11 mars 2009 à 20:24
re bonjour,
Merci de ta réponse. Après avoir galéré pendant deux heures, je tiens la réponse. Le tuto que je suivais était obsolète.
Pour ceux qui auront le même problème, voici la solution, utilisez ce makefile:
#Note: ce Makefile provient du livre Linux Device Driver (3ème édition) des éditions O'Reilly, son utilisation
#est donc sujette à la licence Creative Common Non Commercial Share Alike (http://creativecommons.org/licenses/by-nc-sa/2.0/)