Probleme d'insertion de modules

Bonjour,
J’ia un petit problème pour l’insertion de module (module wifi)
En fait j’ai une machine cible qui ne permet pas que je compile directement sur celle-ci.
J’ai compilé le kernel sur une autre machine, et tranféré le kernel sur la machine cible. J’ai récupéré les modules déjà compilé par une autre personne sur ce même noyau (je fais confiance en la source)
Lors de l’insertion de ce module sur la machine cible j’ai l’erreur suivante :
Cible# insmod -f ath_hal
Using /lib/modules/ath_hal.o
insmod: unresolved symbol vsnprintf
insmod: unresolved symbol __udelay
insmod: unresolved symbol snprintf
insmod: unresolved symbol kmalloc
insmod: unresolved symbol proc_dointvec
insmod: unresolved symbol unregister_sysctl_table
insmod: unresolved symbol kfree
insmod: unresolved symbol jiffies
insmod: unresolved symbol printk
insmod: unresolved symbol register_sysctl_table

Pourtant, en mattant dans les symboles :
Cible# cat /proc/ksyms | grep vsnprintf
c0201610 vsnprintf_R6989a769

D’ailleurs meme dans le System.map de la machine sur laquelle j’ai compile le noyau, je récupère l’info :
Source:/usr/src/linux-2.4.32-soekris-watchdog# grep vsnprintf System.map
c0201610 T vsnprintf
c02281c0 R __kstrtab_vsnprintf
c02308a8 R __ksymtab_vsnprintf
(idem pour les autres symboles qui posent problème)

Si quelqu’un peut me dire comment cela se fasse que ce module ne s’insère pas alors qu’il connait les symboles -a priori-

PS1 : inutile de me dire d’utiliser modprobe, je ne peux l’utiliser sur la machine cible (système embarqué)
PS2 : j’ai déjà essayé avec insmod -f
PS3 : j’utilise un noyau patché, est ce possible que si les modules on été compilé sur un noyau non patché, les références soient mauvaises, si oui comment les régler sachant que je ne peux/veux pas recompiler les modules

Tu as sans doute mal copié le path des modules?
P1/ P2/ Ok
P3/ Normalement pas de problème. De toute façon les symboles qui manquent sont dans le noyau

Apparement le problème est qu’il n’arrive pas à avoir la liste des symboles. Et je pense qu’il ne peut pas l’avoir car elle n’est pas dans son path habituel

O`u je peux spécifier le PATH sachant que je suis sur une leaf (leaf.sourceforge.net) et qu’il n’y a pas l’air d’avoir de modules.conf.
Je ne crois pas qu’il existe une options pour dire à insmod pour lui dire d’"“utiliser”" le fichier /etc/ksyms …

Normalement le path est fixe (à vérifier) et est déterminé dans les makefile du noyau

Je pense que c’est pour toi :
/lib/modules/<nom-du-noyau>/

Le nom du noyau c’est celui donné par
uname -a (3ième champs )

Pour moi :
/lib/modules/2.6.16-rc1-CITI_NFS4_ALL-2/

Oki,
Cible# uname -sr
Linux 2.4.32

Et les modules sont bien présents dans /lib/modules/2.4.32 (en fait dans /lib/modules mais j’ai un lien symbolique 2.4.32 qui pointe sur /lib/modules)
Darkvabox# ll /lib/modules/ | grep 2.4.32
lrwxrwxrwx 1 root root 12 Feb 18 02:45 2.4.32 -> /lib/modules

Je viens de lire ceci : http://www.tldp.org/HOWTO/Module-HOWTO/basekerncompat.html
En particulier le 6.2 sur le versionning et les maccros ( faite du nom du symbol + hash en fonction du kernel) C’est a l’air d’etre l’erreur que j’ai. Je tente de recompiler le noyau en virant CONFIG_MODVERSIONS (que j’avais mis en dur dans le noyau du systeme cible)
C’est confirmé sur l’'aide :
NOTE: if you say Y here but don’t x
x have the program genksyms (which is also contained in the above x
x mentioned modutils package), then the building of your kernel will x
x fail. If you are going to use modules that are generated from x
x non-kernel sources, you would benefit from this option. Otherwise x
x it’s not that important. So, N ought to be a safe bet.
or je sais que je n’ai pas genksyms.
Je tente et je post si du nouveau …

Juste pour info, ct bien ça.

Merci de ton poste tu me sort d’un beau petrain :slight_smile: (embarqué oblige oserai-je dire)

Merci Merci

Py (21 ans)