add taks 1
This commit is contained in:
parent
0a5ccf45a2
commit
81f6517ca7
3 changed files with 51 additions and 0 deletions
12
README.md
12
README.md
|
@ -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
9
task_1/Makefile
Normal 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
30
task_1/hello.c
Normal 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");
|
Loading…
Reference in a new issue