La machine utilisée est un ordi-prise sheevaplug, Processeur ARM, Marvell kirkwood
Pour la compilation j'ai installé les paquets "build-essential" et "linux-headers-2.6.32-5-all" via aptitude sur l'ordi-prise.
Comme les liens étaient mort dans /lib/modules/2.6.32.5/ (il renvoyaient vers des dossiers inexistants) je les ai remplacés en faisant:
rm /lib/modules/2.6.32.5/build
rm /lib/modules/2.6.32.5/source
ln -s /usr/src/linux-headers-2.6.32-5-kirkwood/ /lib/modules/2.6.32.5/build
ln -s /usr/src/linux-headers-2.6.32-5-common/ /lib/modules/2.6.32.5/source
J'ai ensuite compilé le driver en faisant un "make" et tout c'est bien passé.
Le probleme est qu'ensuite lorsque j'essai de charger le pilote:
insmod rt2870sta.ko
J'obtient une erreur:
insmod: error inserting 'rt2870sta.ko': -1 Invalid module format
Je ne comprend pas cette erreur de format du module car j'ai compilé le driver sur la machine qui doit l'utiliser (pas de compilation croisé).
Si quelqu'un a une idée pour resoudre le probleme, je suis preneur.
# fatche
Posté par bubar🦥 (Mastodon) . Évalué à 2.
Tu l'aurai eu plus simple de faire du croisé. En général les liens pétés sont tout à fait normaux, ils correspondent simplement au fait que la "construction" du système pour le rendre installable s'est faite un peu à l'arrache, puisqu'il n'y a pas besoin de tout ça pour que ça fonctionne.
Que donne un simple
file rt2870sta.ko
?
Et comment l'as tu construit exactement, après avoir fait les liens ? Ca sent la mauvaise utilisation des ""macros"" (connais pas le terme exact) de construction.
Et puis, pourquoi ne pas te compiler le noyal avec le support rt2870 en dur, ça permet d'avoir un noyal sans support module et tout est prêt pour le matos, illico. Non ?
M'enfin, bon suis loin d'être un spé...
# Dans le Makefile peut etre ?
Posté par ze_lionix (site web personnel) . Évalué à 3.
Fuse : j'en Use et Abuse !
[^] # Re: Dans le Makefile peut etre ?
Posté par djraffon . Évalué à 1.
Pour ce qui est de la complication croisée je veux bien mais c'est plus compliqué qu'une simple compilation. Et je ne parle pas de compiler tout un kernel alors que je n'arrive meme pas a faire de la cross compilation pour un simple driver.
Apres avoir compilé le driver sur la sheevaplug, si je fais un:
modinfo rt2870sta.ko | grep vermagic
ca me renvoi:
vermagic: 2.6.32-5-kirkwood mod_unload modversions ARMv5
d'autre part un "uname -r" me renvoi:
2.6.32.5
Du coup ca dois venir des "linux-headers" car ceuw que j'utilise pour comppiler sont bien les kirkwood.
les linux-headers correspondant a mon noyeaux sont disponible sur
http://sheeva.with-linux.com
mais je ne sais pas comment les utiliser. Quand je télécharge l'archive et que je la decompresse j'obtient un dossier "/usr" qui contient lui meme un dossier "/include"
je ne sais pas quoi faire de ce dossier, si je dois le copier quelque part ou autre.
Qu'elqu'un a une idee.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.