Bonjour,
je pense que c'est une question de debutant.
J'ai pourtant bien cherché sur la doc Linux (The Linux Kernel Module Programming Guide) et sur google.
j'ai un module (liaison.c), il compile, donc a priori aucun probleme.
Je le charge, tjs aucn probleme et je vois bien la fonction que j'ai exportée dans /proc/kallsys
Maintenant je veux m'en servir, je fais un fichier de declarations pour le module et je l'inclus dans mon client.c. Ensuite, ben quelles options de gcc dois-je utiliser. le client.c et le fichier laison.h sont dans le meme repertoire.
A chaque compilation, j'ai le message d'erreur : undefined reference to envoi. Il ne peut pas l'atteindre.
Comment faire ?
Merci par avance, Aurelien
voici les codes :
liaison.c le module qui compile et se charge bien...
#include <linux/kernel.h>
#include <linux/module.h>
#include "liaison.h"
int init_module() {
printk("hello liaison.o\n" );
}
void cleanup_module() {
//dev_remove_pack(&liaison_proto);
printk("Liaison unloaded\n" );
}
int envoi(int msg)
{
//struct net_device *dev = d;
printk("envoi de donnees\n" );
printk("message : %i\n",msg);
}
EXPORT_SYMBOL(envoi);
la declaration
liaison.h
extern int envoi(int);
le client :
#include "liaison.h"
int main(void)
{
envoi(3);
}