add taks 1

This commit is contained in:
rick 2023-01-23 01:16:45 +01:00
parent 0a5ccf45a2
commit 81f6517ca7
Signed by: Rick
GPG key ID: 4A6223D66294EB20
3 changed files with 51 additions and 0 deletions

View file

@ -24,3 +24,15 @@ Il suffit ensuite d'aller dans le dossier de votre choix et faire `make`.
L'Eudyptula challenge demande souvent des preuves de notre réussite. Vous
pouvez retrouver les commandes et leur résultat ici.
### Tache 1
Pour montrer que mon module marche bien, on regarde les logs du kernel avec la
commande `dmesg`.
```
# après insmod hello.ko
[102102.117958] Coucou le gens !!!!
# après rmmod hello
[102108.046104] Tschuss !!!
```

9
task_1/Makefile Normal file
View file

@ -0,0 +1,9 @@
obj-m += hello1.o
PWD := $(CURDIR)
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

30
task_1/hello.c Normal file
View file

@ -0,0 +1,30 @@
#include <linux/kernel.h>
#include <linux/module.h>
static int __init my_init(void)
{
/*
* c'est une macro récente qui permet de remplacer prink(KERN_INFO "coucou")
*/
pr_info("Coucou le gens !!!!\n");
return 0;
}
static void __exit my_exit(void)
{
pr_info("Tschuss !!!\n");
}
/*
* avant, on utilisait les fonctions int init_module(void) et
* void cleanup_module(void) à la place des macros pour initialiser le module.
*
* la méthode la plus récente pour faire des modules est d'utiliser les macros
* suivantes pour définir les fonctions d'initialisation et de sortie.
*/
module_init(my_init);
module_exit(my_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("rick <rick@gnous.eu>");
MODULE_DESCRIPTION("Module de la premiere tache de l'Eudyptula challenge");