Posez votre question Signaler

Programmation de drivers sous linux [Résolu]

grbm 2Messages postés 23 novembre 2007Date d'inscription - Dernière réponse le 26 nov. 2007 à 14:28
Bonjour,
je m'intéresse à la programmation système sous linux, plus précisement à la programmation de driver. Voici la structure mnimale d'un module
que j'ai vu dans un club de developpeur:
#include <linux/module.h>
int init_module(void)
{
printk("<1>Hello, world\n");
return 0;
}
void cleanup_module(void)
{
printk("<1>Goodbye cruel world\n");
}

je lance la compilation avec la commande suivante: cc -O -DMODULE -D__KERNEL__ -c hello.c ,ceci me donne tout une nation d'erreur.
je remplace "#include <linux/module.h>" par la bibliothèque "#include <linux/init.h>", la compilation marche et j'obtient le fichier objet.
lorque j'essaie de le charger avec insmod Hello.o voila ce que ça me donne comme message "insmod:error inserting "hello.o":-1invalid module format.
lorsque j'utilise module.h et init.h les erreurs se multipluient , pourtant cela ne pas mauvais non plus car 'module.h ' nous fournit les bases pour le déchargement et le déchargement de module et 'init.h' pour l'initialisation
Lire la suite 

Programmation de drivers sous linux »

4 réponses
Réponse
+0
moins plus
Bonjour,

voici une piste : http://lwn.net/Kernel/LDD3/

c'est une version téléchargeable de linux device drivers ( 3nd edition) qui m'a permis l'apprentissage de la création de driver sous linux.
j'espère que ça vous aidera ( je vous suggère de lire le 2eme chapitre : Building and Running Modules, qui répondra sûrement à votre question).

Cordialement

:)
grbm- 26 nov. 2007 à 14:28
Bonjour Akira;
je bien recu votre reponse à mon problème et elle est satisfaisante.
Je veux avoir ton @ mai si cela ne te dérange pas afin de faire beaucoup plus connaissance.
Merci.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

j'essaie de le charger avec insmod Hello.o


On ne peut pas insérer un module qui n'a pas été prévu lors de la compilation du noyau. Il faut avoir compilé le noyau avec une option de type "HELLO=m".

Manu
Ajouter un commentaire
Réponse
+0
moins plus
gcc -D__KERNEL__ -I/usr/src/linux/include -DMODULE -Wall -O2 -c hello.c -o hello.o
Ajouter un commentaire
Ce document intitulé « programmation de drivers sous linux » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?