src |--- readyboard.c |--- Makefile
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== module_init(GReadyBoard_init); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
#================================================ # Makefile #================================================ obj-m += readyboard.o #================================================ all: modules #================================================ modules: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean #================================================
src |--- readyboard.c |--- Makefile |--- modules.order |--- Module.symvers |--- readyboard.mod |--- readyboard.mod.c |--- readyboard.mod.o |--- readyboard.o |--- readyboard.ko
src |--- readyboard.ko
#================================================ # Terminal #================================================ make #================================================
src |--- readyboard.c |--- Makefile
#================================================ # Terminal #================================================ make clean #================================================
#================================================ # Terminal #================================================ sudo insmod readyboard.ko #================================================
#================================================ # Terminal #================================================ sudo dmesg #================================================
#================================================ # Terminal #================================================ sudo dmesg | tail #================================================
#================================================ # Terminal #================================================ sudo lsmod #================================================
#================================================ # Terminal #================================================ sudo lsmod | grep ready #================================================
#================================================ # Terminal #================================================ sudo rmmod readyboard #================================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); static int GReadyBoard_open(struct inode *device_file, struct file *instance); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== static int GReadyBoard_open(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Ouverture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); static int GReadyBoard_open(struct inode *device_file, struct file *instance); static int GReadyBoard_close(struct inode *device_file, struct file *instance); //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== static int GReadyBoard_open(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Ouverture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== static int GReadyBoard_close(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Fermeture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); static int GReadyBoard_open(struct inode *device_file, struct file *instance); static int GReadyBoard_close(struct inode *device_file, struct file *instance); //=============================================== static struct file_operations fops = { .owner = THIS_MODULE , .open = GReadyBoard_open }; //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== static int GReadyBoard_open(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Ouverture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== static int GReadyBoard_close(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Fermeture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); static int GReadyBoard_open(struct inode *device_file, struct file *instance); static int GReadyBoard_close(struct inode *device_file, struct file *instance); //=============================================== static struct file_operations fops = { .owner = THIS_MODULE , .open = GReadyBoard_open , .release = GReadyBoard_close }; //=============================================== static int __init GReadyBoard_init(void) { printk("ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== static int GReadyBoard_open(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Ouverture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== static int GReadyBoard_close(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Fermeture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
//=============================================== // readyboard.c //=============================================== #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> //=============================================== #define READY_BOARD_MAJOR 90 #define READY_BOARD_MINOR 0 //=============================================== MODULE_LICENSE("GPL"); MODULE_AUTHOR("Gerard KESSE [ReadyDev]"); MODULE_DESCRIPTION("Driver de la carte ReadyBoard"); //=============================================== static int __init GReadyBoard_init(void); static void __exit GReadyBoard_exit(void); static int GReadyBoard_open(struct inode *device_file, struct file *instance); static int GReadyBoard_close(struct inode *device_file, struct file *instance); //=============================================== static struct file_operations fops = { .owner = THIS_MODULE , .open = GReadyBoard_open , .release = GReadyBoard_close }; //=============================================== static int __init GReadyBoard_init(void) { int retval; printk(KERN_INFO "ReadyBoard: Chargement du driver de la carte ReadyBoard...\n"); retval = register_chrdev(READY_BOARD_MAJOR , "readyboard" , &fops); if(retval == 0) { printk(KERN_INFO "ReadyBoard: Numéro de périphérique enregistré Majeur: %d, Mineur: %d\n" , READY_BOARD_MAJOR , READY_BOARD_MINOR); } else if(retval > 0) { printk(KERN_INFO "ReadyBoard: Numéro de périphérique enregistré Majeur: %d, Mineur: %d\n" , retval>>20 , retval&0xFFFFF); } else { printk("ReadyBoard: Impossible d'enregistrer le numéro de périphérique !\n"); return -1; } return 0; } //=============================================== static void __exit GReadyBoard_exit(void) { printk("ReadyBoard: Fermeture du driver de la carte ReadyBoard...\n"); } //=============================================== static int GReadyBoard_open(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Ouverture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== static int GReadyBoard_close(struct inode *device_file, struct file *instance) { printk(KERN_INFO "ReadyBoard: Fermeture du système de fichier de la carte ReadyBoard...\n"); return 0; } //=============================================== module_init(GReadyBoard_init); module_exit(GReadyBoard_exit); //===============================================
#================================================ # Terminal #================================================ ls /dev #================================================
#================================================ # Terminal #================================================ ls -al /dev/tty* #================================================
#================================================ # Terminal #================================================ cat /proc/devices #================================================