Bonsoir à tous.
J'essaye de créer un petit module linux (un simple Hello Kernel). Mais lors de la compilation j'obtiens des erreurs qui me rappellent des conflits d'inclusion.
Voici en gros mon code (recopié ici)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#include <linux/module.h>
#include <linux/init.h>
static int __init mon_module_init(void)
{
printk(KERN_DEBUG "Hello World !\n");
return 0;
}
static void __exit mon_module_cleanup(void)
{
printk(KERN_DEBUG "Goodbye World!\n");
}
module_init(mon_module_init);
module_exit(mon_module_cleanup); |
Ma ligne de compilation:
gcc -D__KERNEL__ -I /usr/src/linux-headers-2.6.17-11-generic/include/ -DMODULE -Wall -O2 -c HelloKernel2.c -o HelloKernel.o
Et les erreurs que j'obtiens:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
malves@bonobo ~/Work/Drivers/HelloKernel $ gcc -D__KERNEL__ -I /usr/src/linux-headers-2.6.17-11-generic/include/ -DMODULE -Wall -O2 -c HelloKernel2.c -o HelloKernel.o
In file included from /usr/src/linux-headers-2.6.17-11-generic/include/asm/thread_info.h:16,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/thread_info.h:21,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/preempt.h:9,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/spinlock.h:49,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/capability.h:45,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/sched.h:44,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/module.h:9,
from HelloKernel2.c:10:
/usr/src/linux-headers-2.6.17-11-generic/include/asm/processor.h:76: error: CONFIG_X86_L1_CACHE_SHIFT undeclared here (not in a function)
/usr/src/linux-headers-2.6.17-11-generic/include/asm/processor.h:76: error: requested alignment is not a constant
In file included from /usr/src/linux-headers-2.6.17-11-generic/include/linux/sched.h:49,
from /usr/src/linux-headers-2.6.17-11-generic/include/linux/module.h:9,
from HelloKernel2.c:10:
/usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:33:3: error: #error You lose.
/usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
/usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
/usr/src/linux-headers-2.6.17-11-generic/include/linux/jiffies.h:210:31: error: division by zero in #if
[...] |
Je ne sais pas trop d'ou cela peut venir étant donné que j'ai l'impréssion que ce sont des conflits d'inclusions dans les headers sur systemes. Je me trompe ?
Si quelqu'un à quelque chose à proposer je suis preneur
Partager