Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/02/2015, à 17:16

joffrey575

Création d'un makefile pour cross-compilation

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 : http://www.dlink.com/fr/fr/home-solutio … et-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

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 :

sudo apt-get install gcc-arm-linux-gnueabi

3/ Activer le script suivant :

#!/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 :

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 :

sudo arm-linux-gnueabi-gcc -o asix asix.c

Voici le résultat :

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

Hors ligne

#2 Le 11/02/2015, à 19:57

lann

Re : Création d'un makefile pour cross-compilation

Ou se trouvent les fichiers à compiler ?

Dernière modification par lann (Le 11/02/2015, à 19:57)

Hors ligne

#3 Le 16/02/2015, à 12:12

joffrey575

Re : Création d'un makefile pour cross-compilation

Ils se trouvent normalement à ce chemin : jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source

J'ai réussi à faire fonctionner le driver en reprenant un driver déjà présent au niveau du noyau.

J'étudierai peut être les makefile une autre fois.

Bonne journée à toi

Hors ligne