Je souhaite accéder à certains registres de ma carte ARM Cortex-A8 qui sont par défaut dans un état non accessible. Ubuntu 9.10 fonctionne sur cette carte. Donc, pour y accéder, je dois d'abord modifier 1 autres paramètres de registre (Allow-access-register). Pour changer ce permis-accès-registre, j'ai découvert que je dois le faire seulement en mode noyau et pas en mode utilisateur.Erreurs de compilation du programme en mode noyau Linux
Donc, je me suis référé comment programmer en mode noyau et je suis arrivé à ce merveilleux tutorial. J'ai écrit ce petit programme hello world et un fichier make. Notez que je suis toujours en cours d'exécution de ce programme sur mon bureau x86 (Ubutnu 10.04) et pas encore sur mon processeur ARM. Pas jusqu'à ce que je me bloque sur la programmation au niveau du noyau.
Je reçois ces erreurs. Qu'est-ce qui ne va pas ici?
Aide!
erreurs je reçois sur ma planche i.MX515
[email protected]:~/Documents/Kernel_Programming$ make
make -C /lib/modules/2.6.31-203-gee1fdae/build M=/home/ubuntu/Documents/Kernel_Programming modules
make[1]: Entering directory `/usr/src/linux'
make[1]: *** No rule to make target `modules'. Stop.
make[1]: Leaving directory `/usr/src/linux'
make: *** [all] Error 2
erreurs que je reçois
[email protected]:~/Documents$ make
make -C /lib/modules/2.6.32-23-generic/build M=/home/ubuntu/Documents modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-23-generic'
make[2]: *** No rule to make target `/home/ubuntu/Documents/hello-1.c',
needed by `/home/ubuntu/Documents/hello-1.o'. Stop.
make[1]: *** [_module_/home/ubuntu/Documents] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-23-generic'
make: *** [all] Error 2
Programme
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_INFO "\nHello World! I'm programming in Kernel Mode\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "\nBye Bye blue bird\n");
}
makefile
obj-m +=hello-1.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
Okay J'ai renommé mon makefile de makefile à Makefile et je reçois de nouvelles erreurs (Reportez-vous à ma question, je l'ai édité) – HaggarTheHorrible
Votre fichier source est-il réellement nommé "hello-1.c"? C'est ce que recherchent les scripts. – Karmastan
Désolé, je l'ai réparé. Après avoir renommé le fichier, j'avais deux fichiers makefile et j'exécutais le mauvais makefile. maintenant, il compile et génère un fichier objet. Je vous remercie. – HaggarTheHorrible