|
|||||||||||||||||||||||||||||||||||||||||||||||
|
L'émulateur UAE temporise mon porte-monnaie pour passer à l'AmigaOne ou au Pegasos avec ma distribution Debian GNU/Linux. Il est possible de faire fonctionner cette distribution avec ces deux types de cartes équipées de processeurs PowerPC et je m'en réjouis. J'utilise actuellement GNU/Linux depuis des années (1998) en premier sur mon A1200 (m68k) et dernièrement sur du PC (amd64). Pour l'instant, je ne fais pas de différence technique entre ces deux cartes, elles ont le mérite d'exister. Je peux remarquer que GNU/Linux fonctionne sur les deux (vive le logiciel libre) mais pas le système d'exploitation Amiga, je trouve cela regrettable et préjudiciable pour l'Amiga. J'avais aussi un rêve de pouvoir étendre les paquetages de la Debian GNU/Linux PowerPC pour ces cartes mais comme je n'ai pas ce type de carte sous la main, je me tourne vers la compilation croisée... Cela consiste à utiliser ma machine équipée d'un microprocesseur "A" faisant fonctionner les outils et compiler des programmes pour une autre machine équipée d'un microprocesseur "B".
Configuration nécessaire Debian sarge : ikarios.com/form/index.html#debian. Crosstool : kegel.com/crosstool/crosstool-0.31.tar.gz. QEMU : fabrice.bellard.free.fr/qemu/qemu-0.7.0.tar.gz. 1. Debian La Debian Sarge doit être équipée des outils pour la compilation, en particulier GCC et les fichiers d'en-tête (include) de votre noyau. 2. Fabrication des outils de Crosstool Le fichier .tar.gz de Crosstool peut être décompressé sur un compte utilisateur (/home/"dupont"). Il faut créer un répertoire sous root qui sera utilisé par le script qui lancera la compilation des outils PowerPC qui se trouveront dans un sous-répertoire. mkdir /opt/cross --> création répertoire temporaire. chown $USER /opt/cross --> les droits à celui qui compile. Il faut que vous soyez connecté à Internet car le script va chercher les sources de Glibc, votre noyau, GCC, binutils et la gestion des tâches Linux pour la Glibc (cela ne modifiera pas votre système, c'est utilisé en parallèle dans le répertoire). L'utilisateur peut maintenant démarrer le script qui déclenchera la séance de compilation. Vous le remarquerez, cela va prendre un certain temps, plus ou moins long, suivant vos ressources matérielles. ./demo-ppc750.sh --> lancer par le compte de l'USER. Les versions de GCC évoluent et le site où le script va chercher les sources n'est peut-être pas à jour, si vous avez une erreur de disponibilité, vous pouvez intervenir directement dans ce fichier en modifiant (commenter/décommenter) un des choix dans une ligne commençant par "eval". Une fois terminé, on obtient tous les outils créés pour le type de microprocesseur voulu dans le répertoire (les noms peuvent varier suivant vos versions de GCC et Glibc) : ./crosstool/powerpc-750-linux-gnu/gcc-3.4.0-glibc-2.3.2/ Les outils qui nous intéressent pour la compilation croisée se trouvent dans le répertoire "bin", le chemin de ce répertoire est à placer dans votre $PATH pour être tranquille. 3. L'émulateur QEMU Avec le compilateur "powerpc-750-linux-gnu-gcc" on obtient des exécutables (binaires) avec du code PowerPC. Pour pouvoir tester ces exécutables sans avoir une carte mère équipée de microprocesseur PowerPC, comme un AmigaOne (par exemple !), on peut utiliser l'émulateur PowerPC QEMU sous GNU/linux. Après avoir décompresser le fichier .tar.gz de QEMU dans votre /home, vous entrez dans le répertoire obtenu pour appliquer sa compilation : ./configure -target-list=ppc-user --> type processeur "PPC". make --> lancement de la compilation. Cela produit "qemu-ppc" qui se trouve dans le répertoire "ppc-user", il permettra d'exécuter les binaires PowerPC obtenus avec les outils de Crosstool. Exemples de compilations Exemple A : un classique "Salut le monde" pour essayer Placez le source suivant dans un ficher "salut.c" :
On utilisera une compilation en mode static pour ne pas avoir de difficultés avec l'édition de liens de bibliothèques dynamiques PowerPC sur un hôte en x86. Pour produire un exécutable nommé "salut" avec un format de code 32 bits PowerPC ELF, faire la commande suivante (placez bien le chemin dans votre $PATH) : powerpc-750-linux-gnu-gcc -static salut.c -o salut Pour vérifier le bon format de l'exécutable obtenu, tapez :
Pour tester le fonctionnement de l'exécutable obtenu avec l'émulateur QEMU, faites :
"Bonjour le monde" doit s'afficher dans votre terminal. Exemple B : une utilisation dans un makefile avec un programme qui permet de lire des fichiers au format AmigaGuide avec GNU/Linux. Ce programme se nomme AGReader et se trouve sur Aminet : www.aminet.net/misc/unix/AGReader.tgz. Dans le AGReader/Sources/Makefile vous mettez "powerpc-750-linux-gnu-gcc -static" à la place de GCC et ensuite faites "make" pour obtenir l'exécutable "agr" en PowerPC. Testez le avec QEMU comme précédemment ou faites le fonctionner directement sur un AmigaOne avec la Debian Sarge PowerPC. Lorsqu'il est compilé sans l'option "-static", il fonctionne cette fois avec la "dynamic library glibc" sur la Debian de l'AmigaOne, c'est plus simple et les exécutables sont plus petits.
|