URL: https://linuxfr.org/forums/linux-embarque/posts/creation-d-un-makefile-pour-cross-compilation Title: Création d'un makefile pour cross-compilation Authors: electro575 Date: 2015年02月11日T16:11:07+01:00 License: CC By-SA Tags: Score: 0 Bonjour à tous, J'ai fais l'acquisition d'une carte électronique qui embarque un système d'exploitation linux du magazine elektor. Cette carte tourne autour du projet Gnublin. J'essaie tant bien que mal de faire fonctionner un autre adaptateur USB/LAN que celui qui est préconisé dans le magazine pour des raisons de stocks. Mon adaptateur est celui-ci : [Texte du lien](http://www.dlink.com/fr/fr/home-solutions/connect/adapters/dub-e100-high-speed-usb-2-fast-ethernet-adapter) La version de l'adaptateur est celle-ci : H/W ver c1 DUB-E100 D'LINK La puce est de nom : asix ax88772B d'après ce que j'ai pu observer. Le makefile présent dans le dossier du driver linux est fait pour la compilation PC. J'aimerais faire une **cross-compilation de ce driver**. Apparement il vaut mieux **faire un makefile** que de tout faire à la main. Si quelqu'un a un début de piste pour en créer un je suis preneur. Les outils utilisés pour la cross-compilation d'un simple fichier hello.c sont : 1/ La chaîne d'outil armv5te-qte-5.0 ```sh jo@008:~$ armv5te-gcc --version armv5te-gcc (GCC) 4.5.1 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ``` 2/ Installer ceci : ```sh sudo apt-get install gcc-arm-linux-gnueabi ``` 3/ Activer le script suivant : ```sh #!/bin/bash P1=/opt/eldk-5.0/armv5te/sysroots/i686-oesdk-linux/usr/bin/armv5te-linux-gnueabi/ P2=/opt/eldk-5.0/armv5te/sysroots/i686-oesdk-linux/bin/armv5te-linux-gnueabi/ export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- export PATH=$P1:$P2:$PATH ``` 4/ Compiler le fichier .c : ```sh sudo arm-linux-gnueabi-gcc -o hello hello.c ``` Pour un seul fichier sans avoir besoin de plus de header que stdio.h ça fonctionne. Lorsqu'on veut compiler le driver avec cette commande : ```sh sudo arm-linux-gnueabi-gcc -o asix asix.c ``` Voici le résultat : ```sh jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$ sudo arm-linux-gnueabi-gcc -o asix.o asix.c asix.c:29:26: erreur fatale: linux/module.h : Aucun fichier ou dossier de ce typjo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$ ``` Le makefile qui est déjà présent est pour le PC mais pas pour la carte, j'aimerai faire en sorte de pouvoir compiler pour la carte. Merci d'avance