(Re)bonjour.
Suite à mon topic http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
qui n'a pas eu de succès, je me pose diverses questions relatives à la compilation de modules (drivers) Linux. Sous MDK comme Ubuntu, le simple fait d'inclure un <linux/...> me sort une tripotée d'erreurs de syntaxe, d'utilisation de types non déclarés etc. Je précise que les sources sont bien installées. J'en déduis qu'il doit me manquer quelque chose dans ma compilation, mais quoi ?
Par exemple :
Code :
- #define MODULE
- #include <linux/module.h>
- //#include <linux/interrupt.h> // J'en aurai besoin plus tard
- int init_module (void) /* Loads a module in the kernel */
- {
- printk("Hello kernel\n" );
- return 0;
- }
- void cleanup_module(void) /* Removes module from kernel */
- {
- printk("GoodBye Kernel\n" );
- }
|
gcc -c test.cpp là-dessus me sort un "printk undeclared". Si je vire les printk ( ) et que je décommente le #include <linux/interrupt.h>, je me retrouve avec un listing d'erreurs dont voici les premières :
In file included from /usr/include/linux/interrupt.h:7,
from main.cpp:3:
/usr/include/linux/smp.h:25: error: syntax error before `)' token
In file included from /usr/include/linux/interrupt.h:10,
from main.cpp:3:
/usr/include/asm/bitops.h: In function `void FASTCALL(...)':
/usr/include/asm/bitops.h:31: error: cannot declare static function inside another function
Bref, que fais-je mal pour que systématiquement mes compilations utilisant les sources du noyau flanchent comme ça ?
PS : compiler avec -I/lib/modules/2.4.22-10mdk/build/include ne change rien.
Si ce post a plus sa place dans OSA, merci de me l'indiquer