Add virtual led basic example
This commit is contained in:
parent
510a41cbb3
commit
52436b2045
2 changed files with 50 additions and 0 deletions
7
06_virtual_led_basic/Makefile
Normal file
7
06_virtual_led_basic/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
obj-m += test_module.o
|
||||||
|
|
||||||
|
all:
|
||||||
|
make -C $(LINUX_MODULES_FOLDER)/build M=$(PWD) modules
|
||||||
|
|
||||||
|
clean:
|
||||||
|
make -C $(LINUX_MODULES_FOLDER)/build M=$(PWD) clean
|
43
06_virtual_led_basic/test_module.c
Normal file
43
06_virtual_led_basic/test_module.c
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/leds.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
|
||||||
|
static void virtual_led_set_brightness(struct led_classdev *led_cdev, enum led_brightness brightness) {
|
||||||
|
pr_info("Luminosité défini sur la LED %s à %d", led_cdev->name, brightness);
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct led_classdev virtual_led = {
|
||||||
|
.name = "flo_led",
|
||||||
|
.brightness = 0,
|
||||||
|
.max_brightness = 255,
|
||||||
|
.brightness_set = virtual_led_set_brightness
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init virtual_led_init(void) {
|
||||||
|
int ret;
|
||||||
|
pr_info("Chargement du module pour la LED virtuelle");
|
||||||
|
|
||||||
|
ret = led_classdev_register(NULL, &virtual_led);
|
||||||
|
if (ret < 0) {
|
||||||
|
pr_err("Impossible d'ajouter la LED virtuelle");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
pr_info("La LED virtuelle est ajouté");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __exit virtual_led_exit(void) {
|
||||||
|
pr_info("Déchargement du module pour la LED virtuelle");
|
||||||
|
led_classdev_unregister(&virtual_led);
|
||||||
|
pr_info("La LED virtuelle est bien retiré");
|
||||||
|
}
|
||||||
|
|
||||||
|
module_init(virtual_led_init);
|
||||||
|
module_exit(virtual_led_exit);
|
||||||
|
|
||||||
|
MODULE_LICENSE("GPL");
|
||||||
|
MODULE_AUTHOR("Florian RICHER");
|
||||||
|
MODULE_DESCRIPTION("Un module noyau qui ajoute une LED virtuelle");
|
||||||
|
MODULE_VERSION("1.0");
|
Loading…
Add table
Reference in a new issue