Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1681 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  [résolu][Linux][MODULE]Pb installation module 'maison'

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu][Linux][MODULE]Pb installation module 'maison'

n°679959
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-05-2005 à 09:41:05  profilanswer
 

Bonjour,
 
Pour un kernel 2.6 (Mandriva 10.1), j'ai écrit le module minimum suivant


/* com_driver.c  
   pour noyau 2.6  
*/
#include <linux/module.h>
#include <linux/kernel.h>
 
MODULE_DESCRIPTION("com driver k2.6" );
MODULE_AUTHOR("E.D." );
MODULE_LICENSE("BSD" );
 
int __init init_module (void)
{
   printk( KERN_ALERT "Module com init\n" );
   
   /* 0=OK other=KO */
   return 0;
}
 
void __exit cleanup_module (void)
{
   printk( KERN_ALERT "Module com exit\n" );
}


Le make file est nommé 'Makefile' (important, car 'makefile' n'est pas reconnu). Il contient une ligne :


obj-m += com.o


La ligne de commande (script 'm') est


make -C /usr/src/linux SUBDIRS=$PWD modules


le lien '/usr/src/linux' pointe sur '/usr/src/linux-2.6.8.1-24mdk'
 
Le résultat de la compilation semble correct:


[edelahaye@localhost com]$ ./m
make: Entering directory `/usr/src/linux-2.6.8.1-24mdk'
  CC [M]  /home/edelahaye/c-dev/drv/com/com.o
  Building modules, stage 2.
  MODPOST
  CC      /home/edelahaye/c-dev/drv/com/com.mod.o
  LD [M]  /home/edelahaye/c-dev/drv/com/com.ko
make: Leaving directory `/usr/src/linux-2.6.8.1-24mdk'
[edelahaye@localhost com]$


Je passe ensuite en root pour charger le module .ko


edelahaye@localhost com]$ su
Password:
[root@localhost com]# dir
com.c  com.ko  com.mod.c  com.mod.o  com.o  m  Makefile
[root@localhost com]# insmod com.ko
insmod: error inserting 'com.ko': -1 Invalid module format
[root@localhost com]# exit
exit
[edelahaye@localhost com]$


Problème.
Le fichier var/log/messages indique:


<...>
May 19 09:29:23 localhost kernel: com: version magic '2.6.8.1-24mdk 686 gcc-3.4' should be '2.6.8.1-12mdk 686 gcc-3.4'
<...>


Il y aurait une légère incompatibilité de version...
Le binaire du noyau et les fichiers sources du kernel viennent des CD Mandrake 10.1 'Official'...
 
Comment résoudre ce problème ? Recompiler le noyau ?
 
Merci de m'avoir lu jusqu'au bout.
 
Emmanuel


Message édité par Emmanuel Delahaye le 04-06-2005 à 11:11:45

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
mood
Publicité
Posté le 19-05-2005 à 09:41:05  profilanswer
 

n°680048
xouille38
Posté le 19-05-2005 à 14:02:16  profilanswer
 

Emmanuel Delahaye a écrit :

Bonjour,
 
Pour un kernel 2.6 (Mandriva 10.1), j'ai écrit le module minimum suivant


/* com_driver.c  
   pour noyau 2.6  
*/
#include <linux/module.h>
#include <linux/kernel.h>
 
MODULE_DESCRIPTION("com driver k2.6" );
MODULE_AUTHOR("E.D." );
MODULE_LICENSE("BSD" );
 
int __init init_module (void)
{
   printk( KERN_ALERT "Module com init\n" );
   
   /* 0=OK other=KO */
   return 0;
}
 
void __exit cleanup_module (void)
{
   printk( KERN_ALERT "Module com exit\n" );
}


Le make file est nommé 'Makefile' (important, car 'makefile' n'est pas reconnu). Il contient une ligne :


obj-m += com.o


La ligne de commande (script 'm') est


make -C /usr/src/linux SUBDIRS=$PWD modules


le lien '/usr/src/linux' pointe sur '/usr/src/linux-2.6.8.1-24mdk'
 
Le résultat de la compilation semble correct:


[edelahaye@localhost com]$ ./m
make: Entering directory `/usr/src/linux-2.6.8.1-24mdk'
  CC [M]  /home/edelahaye/c-dev/drv/com/com.o
  Building modules, stage 2.
  MODPOST
  CC      /home/edelahaye/c-dev/drv/com/com.mod.o
  LD [M]  /home/edelahaye/c-dev/drv/com/com.ko
make: Leaving directory `/usr/src/linux-2.6.8.1-24mdk'
[edelahaye@localhost com]$


Je passe ensuite en root pour charger le module .ko


edelahaye@localhost com]$ su
Password:
[root@localhost com]# dir
com.c  com.ko  com.mod.c  com.mod.o  com.o  m  Makefile
[root@localhost com]# insmod com.ko
insmod: error inserting 'com.ko': -1 Invalid module format
[root@localhost com]# exit
exit
[edelahaye@localhost com]$


Problème.
Le fichier var/log/messages indique:


<...>
May 19 09:29:23 localhost kernel: com: version magic '2.6.8.1-24mdk 686 gcc-3.4' should be '2.6.8.1-12mdk 686 gcc-3.4'
<...>


Il y aurait une légère incompatibilité de version...
Le binaire du noyau et les fichiers sources du kernel viennent des CD Mandrake 10.1 'Official'...
 
Comment résoudre ce problème ? Recompiler le noyau ?
 
Merci de m'avoir lu jusqu'au bout.
 
Emmanuel


 
bah là je crois que c'est clair : '2.6.8.1-24mdk 686 gcc-3.4' should be '2.6.8.1-12mdk 686 gcc-3.4' tu tournes avec un 2.6.8.1-12mdk et t'as choppés les sources du 2.6.8.1-24mdk...(comment ça totologie?).
 
2 solutions : tu cherches le noyau de révision 24 (ou les sources de révision 12)...
tu recompiles le 24 à partir des sources...  
 
ou alors... un truc qui marcherait avec un 2.4 (pas sur avec un 2.6) dans linux/include/linux/version.h tu changes le

Code :
  1. #define UTS_RELEASE

mais je ne garantie pas que le version magic est calculé à partir de ça...
 
PS : juste pour vérifier que donne

Code :
  1. uname -a

et

Code :
  1. modinfo ./ton_module.ko

?
PS : essaye aussi de forcer :

Code :
  1. insmod -f


Message édité par xouille38 le 19-05-2005 à 14:05:06
n°680127
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-05-2005 à 16:04:20  profilanswer
 

xouille38 a écrit :

2 solutions : tu cherches le noyau de révision 24 (ou les sources de révision 12)...
tu recompiles le 24 à partir des sources...


 
Ok, c'est clair. Merci.

Citation :

PS : juste pour vérifier que donne

Code :
  1. uname -a




[edelahaye@localhost app_com01]$ uname -a
Linux localhost 2.6.8.1-12mdk #1 Fri Oct 1 12:53:41 CEST 200                                        4 i686 AMD Duron(tm) Processor unknown GNU/Linux
[edelahaye@localhost app_com01]$


Citation :

et

Code :
  1. modinfo ./ton_module.ko

?



[root@localhost com]# modinfo ./com.ko
filename:       ./com.ko
description:    com driver k2.6
author:         E.D.
license:        BSD
vermagic:       2.6.8.1-24mdk 686 gcc-3.4
depends:


Citation :

PS : essaye aussi de forcer :

Code :
  1. insmod -f



Marche pas


[root@localhost com]# insmod -f ./com.ko
insmod: error inserting './com.ko': -1 Invalid module format


Je vais essayer de trouver les bons sources... Le noyau a dû être mis a jour...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°680131
Mjules
Modérateur
Parle dans le vide
Posté le 19-05-2005 à 16:07:56  profilanswer
 

au contraire, ton noyau n'a pas été mis à jour (2.6.8.1-12mdk) alors que les sources l'ont été ;)  
 
tout bonnement parce que le noyau est un truc trop sensible pour être mis à jour automatiquement.
urpmi kernel et ton noyau sera à jour au prochain reboot (si tu utilises des drivers proprio, nvidia par ex, il faudra les réinstaller)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°680157
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-05-2005 à 16:28:52  profilanswer
 

Mjules a écrit :

au contraire, ton noyau n'a pas été mis à jour (2.6.8.1-12mdk) alors que les sources l'ont été ;)


Exact. Je crois que mes cinq minutes d'idiotie sont épuisées!
 
Je vais à la pêche aux vieux sources...


Message édité par Emmanuel Delahaye le 19-05-2005 à 16:29:39

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°680162
Mjules
Modérateur
Parle dans le vide
Posté le 19-05-2005 à 16:33:15  profilanswer
 

sur les CD ou dans la source Main :
ftp://ftp.proxad.net/pub/Distribu [...] k.i586.rpm


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  [résolu][Linux][MODULE]Pb installation module 'maison'

 

Sujets relatifs
freebox ethernet sous knoppix (hda2), pas de connection [RESOLU]A disk read error occured . . . (au boot de xp) après une instal linux
xp et linux: c'est tout nouveaux pour mo!!!![Redhat 9][php] installation de GD
débit différent sous linux ou windows[Résolu][Module]Erreurs de compilation skull
Installation de windows sur clef usb ??Sauvegarde sous linux
Comment installer du PCMCIA WIFI sur linux debian ? 
Plus de sujets relatifs à : [résolu][Linux][MODULE]Pb installation module 'maison'


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR