Je suis sous Linux Ubuntu 14.04. Je veux démarrer Linux Kernel Module Programming. J'ai hello.c (module Hello World simple) et Makefile. Mais, sur commande "make", j'obtiens une erreur. J'ai essayé Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler, mais cela n'a pas fonctionné pour moi.Programmation de module noyau Linux - Impossible d'utiliser CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector non pris en charge par le compilateur
hello.c
/* hello.c − Illustrating the __init, __initdata and __exit macros. */
#include <linux/module.h>
/* Needed by all modules */
#include <linux/kernel.h>
/* Needed for KERN_INFO */
#include <linux/init.h>
/* Needed for the macros */
static int hello3_data __initdata = 3;
static int __init hello_3_init(void)
{
printk(KERN_INFO "Hello, world %d\n", hello3_data);
return 0;
}
static void __exit hello_3_exit(void)
{
printk(KERN_INFO "Goodbye, world 3\n");
}
module_init(hello_3_init);
module_exit(hello_3_exit);
Makefile
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
sur "make": -
[email protected]:~/Kernel programs$ make
make -C /lib/modules/4.2.0-27-generic/build M=/home/k/Kernel programs modules
make[1]: Entering directory `/usr/src/linux-headers-4.2.0-27-generic'
arch/x86/Makefile:138: CONFIG_X86_X32 enabled but no binutils support
Makefile:662: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
make[1]: *** No rule to make target `programs'. Stop.
make[1]: Leaving directory `/usr/src/linux-headers-4.2.0-27-generic'
make: *** [all] Error 2
Actuellement, mon ubuntu a noyau 4.2. J'ai même essayé ceci sur le noyau 3.x, mais il y avait cette même erreur.
S'il vous plaît aidez-moi dans ceci. Merci. :)
'J'ai essayé ... mais cela n'a pas fonctionné pour moi. '- Donc, comme suggéré dans la réponse à la question référencée, vous avez mis à jour' binutils' et avez installé les seules instances de 'gcc' et compilateurs 'g ++', non? – Tsyvarev
Oui, j'ai fait tout ça –