#1 Le 10/04/2009, à 16:25
- ikoria
Erreur Makefile pour nouveau module
Bien à vous amis tuxien ^^
Je suis sur Ubuntu 8.10.( kernel : 2.6.27-11-generic).
J'essaye de développer un nouveau module pour un future driver, en suivant le tutoriel de ROUX BENJAMIN (pdf sur ce même site ^^).
Je pose mes codes:
Module.C
#include <linux/module.h>
#include <linux/init.h>
#include <linux/fs.h>
MODULE_AUTHOR("skyrunner");
MODULE_DESCRIPTION("premier driver");
MODULE_SUPPORTED_DEVICE("none");
MODULE_LICENSE("none");
static int major = 254;
module_param(major, int, 0);
MODULE_PARM_DESC(major, "major number");
/*************************************************************
*
*Implémentation des appels systemes open, close, read, write
*
**************************************************************/
static ssize_t my_read_function(struct file *file, char *buf, size_t count, loff_t *ppos)
{
printk(KERN_DEBUG "read()\n");
return 0;
}
static ssize_t my_write_function(struct file *file, const char *buf, size_t count, loff_t *ppos)
{
printk(KERN_DEBUG "write()\n");
return 0;
}
static int my_open_function(struct inode *inode, struct file *file)
{
printk(KERN_DEBUG "open()\n");
return 0;
}
static int my_release_function(struct inode *inode, struct file *file)
{
printk(KERN_DEBUG "close()\n");
return 0;
}
//!!!!!!!!!!!!!STRUCTURE DE POINTEURS DE FONCTIONS!!!!!!!!!!!!
static struct file_operations fops =
{
read : my_read_function,
write : my_write_function,
open : my_open_function,
release : my_release_function
};
/*************************************************************
*
*Implémentation des appels systemes init_module et exit_module
*
**************************************************************/
static int __init mon_module_init(void)
{
int ret;
ret = register_chrdev(major, "mydriver", &fops);
if (ret < 0)
{
printk(KERN_WARNING "Probleme sur le major\n");
return ret;
}
printk(KERN_DEBUG "mydriver chargé sans probleme\n");
return 0;
}
static void __exit mon_module_cleanup(void)
{
int ret;
ret = unregister_chrdev(major, "mydriver");
if (ret < 0)
{
printk(KERN_WARNING "Probleme unregister\n");
}
printk(KERN_DEBUG "mydriver déchargé sans pobleme\n");
}
/*************************************************************
*
*APPLET AUTOMATIQUE de MOUNT/UNMOUNT du module
*
**************************************************************/
module_init(mon_module_init);
module_exit(mon_module_cleanup);
Makefile
obj-m += module.o
defaut:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Je compile sous le terminal et j'ai le code erreur suivant:
ikoria@iloria:~/Bureau/module2_3$ make
make -C /lib/modules/2.6.27-11-generic/build M=/home/ikoria/Bureau/module2_3 modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.27-11-generic »
CC [M] /home/ikoria/Bureau/module2_3/module.o
/home/ikoria/Bureau/module2_3/module.c: In function ‘mon_module_cleanup’:
/home/ikoria/Bureau/module2_3/module.c:82: erreur: valeur void n'a pas été ignorée comme elle aurait dû l'être
make[2]: *** [/home/ikoria/Bureau/module2_3/module.o] Erreur 1
make[1]: *** [_module_/home/ikoria/Bureau/module2_3] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.27-11-generic »
make: *** [defaut] Erreur 2
Ne voyant pas du tout l'origine du défaut, je fais appel à vos lumières pour éclairer ma route ^^
Par avance merci
Iko
Hors ligne
#2 Le 10/04/2009, à 20:14
- telliam
Re : Erreur Makefile pour nouveau module
c'est simple :
unregister_chrdev retourne un void pas un int
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#3 Le 03/02/2016, à 11:32
- tuxonrub
Re : Erreur Makefile pour nouveau module
Sauf que le man dit qu'il renvoie un int
http://www.delafond.org/traducmanfr/man … dev.9.html
Et donc que faire ? car le supprimer n'est que contourner le problème qui est spécialiste des driver?
de plus le numero de major ici fixé a 254 ne permet pas de charger le module ...
A suivre .. merci
Hors ligne
#4 Le 05/02/2016, à 21:27
- telliam
Re : Erreur Makefile pour nouveau module
ça c'est du déterrage de sujet !!!
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne