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 L'Eudyptula challenge demande souvent des preuves de notre réussite. Vous
pouvez retrouver les commandes et leur résultat ici. 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");