Table des matières:
- Étape 1: Téléchargez les outils Sunxi
- Étape 2: décompressez le code source
- Étape 3: Télécharger le code::blocks
- Étape 4: Testez votre IDE
- Étape 5: Terminer le test
- Étape 6: Créer un nouveau projet
- Étape 7: ajouter des fichiers au projet
- Étape 8: faire en sorte que Gcc suive la norme de langage ISO C 1999
- Étape 9: Trouvez la dépendance manquante
- Étape 10: Déballez le Mman
- Étape 11: et ajoutez-les au projet
- Étape 12: chemin correct
- Étape 13: Exorcisme
- Étape 14: REMARQUES
Vidéo: Orange PI HowTo : Compiler l'outil Sunxi pour Windows sous Windows : 14 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
CONDITIONS PRÉALABLES:
Tu auras besoin de
- Un ordinateur (de bureau) exécutant Windows.
- Une connexion Internet.
- Une carte Orange PI.
Le dernier est facultatif, mais je suis sûr que vous l'avez déjà. Sinon, vous ne lirez pas cette instructable.
Lorsque vous achetez l'ordinateur monocarte Orange PI, il ne reste qu'un morceau de métal mort jusqu'à ce qu'il soit correctement configuré. Et son fichier de configuration principal: "script.bin" est la première clé pour lui donner vie. Ce fichier se trouve dans la partition de démarrage de votre carte SD amorçable. Et heureusement pour nous, dans la plupart des distributions Linux du site officiel (https://www.orangepi.org/downloadresources/) cette partition est FAT32 et peut être facilement vue par n'importe quel ordinateur Windows. Cela simplifie vraiment les choses, car il n'y a toujours pas de moyen fiable d'écrire dans les partitions Linux ext2 à partir de Windows.
Malheureusement pour nous, le fichier de configuration script.bin a un format binaire totalement hostile à l'édition humaine. On a besoin d'une sorte d'outil logiciel pour le décrypter et le crypter après que les modifications nécessaires aient été apportées. Et un tel ensemble d'outils existe. C'est le tristement célèbre SUNXI-TOOLS. Le problème, c'est qu'il est destiné à fonctionner sous Linux et que nous devons soit garder une machine Linux dédiée pour n'utiliser que les outils sunxi, soit trouver un moyen de les compiler pour Windows.
Je pourrais simplement le compiler et partager l'exécutable, mais on ne sait jamais s'ils aimeraient faire une nouvelle version et vous aurez besoin d'une nouvelle compilation dès que possible. J'ai donc décidé de faire un guide sur la façon de compiler l'outil essentiel à partir des sources. Commençons.
Étape 1: Téléchargez les outils Sunxi
Obtenez la dernière version (ou nécessaire) du code source sunxi-tools. Accédez à l'URL: https://github.com/linux-sunxi/sunxi-tools/releases et choisissez de télécharger en tant qu'archive zip.
Étape 2: décompressez le code source
Une fois le téléchargement terminé, décompressez le code source dans le dossier de votre choix. (En outre, je supposerai que ce dossier est c:\sunxitools\, remplacez donc ce chemin par le vôtre).
Étape 3: Télécharger le code::blocks
Si vous avez une copie installée d'un compilateur c++ opérationnel pour Windows. et si vous savez comment l'utiliser, vous pouvez directement passer à l'étape 3. Les autres devraient avoir un compilateur c++ approprié et un shell (IDE) pour l'utiliser confortablement. Mon choix est code::blocks pour Windows avec la chaîne d'outils MinGW préinstallée. Vous pouvez l'obtenir à partir d'ici:
Téléchargez-le et installez-le.
Étape 4: Testez votre IDE
Pour tester si les choses se passent bien, démarrez les blocs de code, cliquez sur "créer un nouveau projet", choisissez "application console", choisissez c ou c++, tapez le titre du projet de paiement, conservez les valeurs par défaut dans la fenêtre suivante et cliquez sur "terminer ".
Étape 5: Terminer le test
Cliquez ensuite sur un triangle vert sur le panneau supérieur de l'IDE ou utilisez le point de menu Build->Run. Si les choses se sont bien passées, vous devriez voir un message de votre application "Hello world" générée automatiquement dans la fenêtre noire "DOS".
Sinon, cela signifie que l'IDE et le compilateur ne fonctionnent pas correctement et vous devrez rechercher comment le régler correctement. Vous devrez probablement télécharger une autre version des outils de programmation ou vérifier leurs autorisations dans votre logiciel pare-feu/antivirus.
Étape 6: Créer un nouveau projet
Maintenant, vous devriez avoir une boîte à outils de programmeur C/C++ opérationnelle et les codes sources sunxi-tools décompressés dans le dossier c:\sunxitools\ sur votre ordinateur. Il est temps de monter un projet. Créez un nouveau projet dans votre IDE. Choisissez le projet simple C (pas c++) de type "application console".
Assurez-vous que vous créez un projet dans le dossier c:\sunxitools\ et non dans un autre endroit. (Les blocs de code par exemple ont tendance à créer un sous-dossier avec le même nom que le projet. Donc, si vous avez nommé votre projet, dites "test" et essayez de le placer dans c:\sunxitools\, vous pouvez vous retrouver avec le projet parti à c:\sunxitools\test\ si vous n'êtes pas assez attentif.) Les outils Sunxi contiennent plusieurs utilitaires, mais pour notre propos nous n'en aurons besoin que d'un: l'utilitaire "fexc".
Étape 7: ajouter des fichiers au projet
L'utilitaire "fexc" est responsable de la conversion du script.bin au format texte et de la conversion inverse en binaire. Il est essentiel que l'exécutable de cet utilitaire porte le nom "fexc.exe", donc c'est bien si vous avez nommé votre projet comme "fexc". Cependant, vous pouvez utiliser n'importe quel autre nom du projet, car vous pouvez toujours renommer l'exécutable après la compilation, ou vous pouvez choisir "Projet-> Propriétés" dans le menu déroulant du haut et dans la fenêtre qui apparaît, cliquez sur l'onglet "Créer des cibles", et modifiez le champ "Nom du fichier de sortie" pour remplacer le nom de l'exécutable.
À votre projet généré automatiquement, vous ne devez ajouter que cinq fichiers source:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
et sept fichiers d'en-tête:
- list.h (déplacez-le du dossier c:\sunxitools\include\ vers le dossier c:\sunxitools)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- version.h
Assurez-vous d'exclure le fichier main.c généré automatiquement du projet, car fexc.c contient déjà la fonction "int main". (Rappelez-vous que tout programme ne devrait avoir qu'une seule fonction principale ?).
Tous les fichiers de code source nécessaires sont déjà dans le sous-dossier, où vous avez décompressé les codes source. Les fichiers d'en-tête méritent une paire de mots, où les obtenir. "list.h" - se trouve généralement dans le sous-dossier "include" du jeu de codes source décompressé. "version.h" - créez-le simplement vous-même. Mettez-y une chaîne comme:
#définir la VERSION "Win32"
Ensuite, enregistrez et fermez le fichier. (Vous pouvez le décorer avec #define et #ifdef si vous le souhaitez.)
Si vous essayez maintenant de compiler le projet, il se plaindra de nombreuses erreurs et d'un fichier manquant. Les erreurs sont principalement dues à un peu de liberté de style excessive, aux programmeurs sunxi-tools utilisés pour appliquer, et le fichier manquant est la dépendance non incluse dans le pack du code source. Permet de traiter cette étape par étape.
Étape 8: faire en sorte que Gcc suive la norme de langage ISO C 1999
Afin que le compilateur ne se plaigne pas du style de programmation trop libre, définissez le standard "с99" de la compilation. Dans les blocs de code, allez dans le menu "Projet -> Options de construction" et dans "Paramètres du compilateur -> Drapeaux du compilateur", cochez la case "Faire suivre à gcc la norme de langage ISO C 1999". Ou vous pouvez simplement ajouter "-std=c99" dans la chaîne d'options de votre compilateur. Maintenant, si vous essayez de compiler le projet, ces tonnes d'erreurs devraient disparaître et vous êtes un à un avec la dépendance manquante.
Étape 9: Trouvez la dépendance manquante
La dépendance manquante est le fichier "mman.h" - l'en-tête d'une sorte de gestionnaire de mémoire Linux. Windows C n'a pas nativement un tel fichier, mais heureusement, il existe un port Windows. Accédez à https://github.com/witwall/mman-win32 pour Windows. Téléchargez l'instantané du référentiel git.
Étape 10: Déballez le Mman
Décompressez les fichiers mman.c et mman.h, placez-les dans le dossier c:\sunxitools\.
Étape 11: et ajoutez-les au projet
Étape 12: chemin correct
Et dans le fichier "fex.c" la ligne de raplece:
#comprendre
à la
#include "mman.h"
À cette étape, votre compilateur ne devrait rien se plaindre et vous obtiendrez la longue attente fexc.exe comme sortie. Ne soyez pas heureux trop tôt. L'utilitaire n'est toujours pas entièrement fonctionnel. Vous pouvez vous en assurer en déchiffrant un fichier script.bin valide dans le formulaire texte - fichier script.fex avec en conséquence le chiffrement du fichier script.fex dans le script.bin. Vous pouvez noter que la taille du script.bin résultant diffère légèrement de la taille du script.bin d'origine. Et si vous essayez de décrypter à nouveau le résultat, cela échouera. Ni l'Orange PI ne fonctionnera avec ce script.bin. Pour obtenir l'utilitaire fonctionnel, nous devons décharger une bombe de code, que quelqu'un a placée dans le code source de sunxi-tools. Ce sera notre prochaine étape.
Étape 13: Exorcisme
Afin de décharger la bombe de code, ouvrez le fichier de code fexc.c et trouvez-y une chaîne de texte du contenu suivant:
else if ((out = open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {
Remplacez-le simplement par la chaîne suivante:
else if ((out = open(filename, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512))<0){
Si ce n'est pas les mauvais chiffres "666" dans la première chaîne, je penserais que le codeur vient d'oublier d'utiliser le drapeau O_BINARY. Mais le nombre de la bête clarifie ses intentions de manière transparente. Allez comprendre, à quel point c'est ingénieux: en raison de la subtile différence dans la façon dont les fichiers sont traités sous Windows et Linux, la bombe n'a aucun effet lorsque l'utilitaire est compilé et utilisé sous Linux. Mais cela gâche tout lorsque l'utilitaire est utilisé sous Windows.
Une fois la bombe désarmée, vous pouvez enfin compiler et utiliser en toute sécurité l'utilitaire fexc sur votre ordinateur de bureau Windows.
Étape 14: REMARQUES
1) Pour utiliser l'utilitaire fexc confortablement, vous devriez obtenir deux fichiers batch:
bin2fex.bat - et - fex2bin.bat.
Vous pouvez les obtenir à partir d'une version faily de fexc.exe pour Windows, ou vous pouvez les saisir vous-même:
- bin2fex.bat doit contenir "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat doit contenir "fexc -O bin -I fex script.fex script.bin"
2) S'il est difficile de trouver le gestionnaire mman pour Windows, vous pouvez éviter son utilisation. Cependant, il faut beaucoup plus d'édition du fichier fexc.c et nécessite au moins une certaine connaissance de c. Pour votre commodité, je partage le code source édité du fexc à partir de sunxi-tools v1.4 sans dépendance à mman.h avec le fichier de projet codeblocks et avec un exemple de script.bin de certains pi orange. Vous pouvez télécharger fexc_nomman.zip
3) Il est possible que dans les versions ultérieures de sunxi-tools, ils ajoutent des dépendances supplémentaires. N'hésitez pas à les trouver sur Internet et à les ajouter à votre projet de compilation.
5) Enfin voici la version précompilée de fexc.exe pour Win32:
fexc_nomman.zip
Si vous êtes assez paresseux, n'hésitez pas à utiliser la ver. Cependant, sachez qu'il ne sera pas mis à jour si/quand les nouvelles versions de SunxiTools/Windows seront disponibles. Il vaut donc mieux apprendre à les compiler que de dépendre d'une version binaire fixe, je présume.
4) Les "Orange PI", "Code::Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", etc… sont les marques correspondantes de leurs propriétaires respectifs.
5) Si votre compilateur se plaint de ne pas trouver de fonctions mman, comme:
référence non définie à '_imp_mmap'
sachez que les amateurs de définition de la communauté de développement mman ont oublié que le code peut être compilé non seulement en tant que bibliothèque dll. Il peut également s'agir d'une bibliothèque statique ou d'un code autonome comme celui que nous avons ici. Pour résoudre le problème, modifiez le fichier "mman.h" comme suit:
a) trouvez les chaînes:
#si défini(MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec(dllexport) #else #define MMANSHARED_EXPORT _declspec(dllimport) #endif
b) ajouter la chaîne
#define MMANSHARED_EXPORT
juste en dessous des chaînes trouvées à l'étape précédente
Conseillé:
Howto: Installation de Raspberry PI 4 Headless (VNC) avec Rpi-imager et images: 7 étapes (avec images)
Howto: Installation de Raspberry PI 4 Headless (VNC) avec Rpi-imager et Pictures: Je prévois d'utiliser ce Rapsberry PI dans un tas de projets amusants sur mon blog. N'hésitez pas à y jeter un œil. Je voulais recommencer à utiliser mon Raspberry PI mais je n'avais pas de clavier ou de souris à mon nouvel emplacement. Cela faisait un moment que je n'avais pas installé de Raspberry
Mod Arcade1Up avec chapiteau LED et sous-écrans : 9 étapes (avec images)
Mod Arcade1Up avec chapiteau LED et sous-écrans : **** Mise à jour d'avril 2020 // Prise en charge logicielle ajoutée pour le flipper virtuel, plus d'informations sur http://pixelcade.org **** Une borne d'arcade Arcade1Up modifiée avec un chapiteau LED et des éléments supplémentaires plus petits, des sous-écrans qui affichent des informations sur le jeu comme le titre du jeu, l'année, la fabrication
Orange PI HowTo: Configurez-le pour l'utiliser avec un écran LCD TFT HDMI de 5 ": 8 étapes (avec images)
Orange PI HowTo: Configurez-le pour l'utiliser avec un écran LCD TFT HDMI de 5 ": Si vous avez été assez prudent pour commander un écran LCD TFT HDMI avec votre Orange PI, vous êtes probablement découragé par les difficultés à essayer de le forcer à fonctionner . Alors que d'autres n'ont même pas pu noter d'obstacles. La clé est qu'il y a au
Orange PI HowTo: Configurez-le pour l'utiliser avec l'écran de vue arrière de la voiture et l'adaptateur HDMI vers RCA: 15 étapes
Orange PI HowTo: Configurez-le pour l'utiliser avec un écran de rétroviseur de voiture et un adaptateur HDMI vers RCA: AVANT-PROPOS. Et cela semble un peu exagéré lorsqu'il est destiné aux systèmes embarqués. Ici, nous avons besoin de quelque chose de petit et de peu coûteux. Comme un
Comment utiliser l'outil de capture sous Windows 7 : 7 étapes
Comment utiliser l'outil Capture sur Windows 7 : Ouvrez la fenêtre dont vous souhaitez une capture d'écran