Aller au contenu

GO Print

Compiler Marlin dans Docker


mch

Messages recommandés

Bonjour,

J'utilise mon PC personnel pour la programmation de logiciels embarqués, cela occupe beaucoup de place, et j'ai besoin d'un maximum de ressources. Alors installer une pléthore de logiciels qui sont gourmands en RAM et en CPU, ce n'est pas mon fun. De là vous aurez aussi compris que je n'utilise pas VScode et encore moins Windows. Je suis sous Linux (ubuntu je l'avoue) et un de mes éditeurs préférés se nomme "vi".

J'ai donc chercher une solution pour recompiler Marlin sans utiliser VScode.

Analyse de processus de construction de Marlin:

Marlin est une application construite à partir du framework Arduino. Arduino offre un IDE mais la base principale est un SDK (je ne parlerais pas dans ce cas de RTOS) avec des librairies d'utilisation du matériel sur des microcontrôleur (MCU). Il a été développé dans un premier temps pour les MCU AVR de Atmel, mais depuis il est possible de trouver des versions pour d'autres MCU comme les STM32.

Les supports des platformes par Arduino ce fait par couches successives avec le support du MCU puis des version de ce MCU puis les cartes qui utilisent ces MCU. Chaque couche forme un variant qui dérive d'un autre variant. STMicroelctronic fournit donc le SDK Arduino pour STM32 dans lequel il est possible de trouver les variants pour certaines cartes d'imprimantes 3D. Cela aurait pu être une solution pour moi. Une belle solution quoique un peu complexe et difficile à contribuer.

J'ai donc continué en regardant les sources de Marlin. Nous y trouvons le fichier platformio.ini. Vous le connaissez bien mais savez vous qu'il n'a rien à voir avec VScode. En fait pour être exact, platformio est un outil de construction basé SCons qui est écrit en python, ensuite l'équipe de platformio fournit et maintient son intégration dans VScode. Il donc possible d'utiliser platformio sans VScode et ne nécessite pour cela que de python et de quelques librairies. Mais voilà j'ai travaillé pendant plusieurs années avec SCons de manière professionnel, et maintenant le seul fait de lire ces 5 lettres me donne des boutons.

A coté de platformio.ini il y a un autre fichier du nom de "Makefile" et là je retrouve la banane. Enfin pas longtemps, quand je l'ouvre, je comprend vite que je retombe dans la première problématique avec l'intégration des outils de ARDUINO_STM32.

Ne reste plus qu'un dernier fichier "docker-compose.yml". Docker je connais, j'aime bien car cela cache tout ce que je ne veux pas voir (SCons) sans trop salir mon PC. L'équipe de Marlin utilise Docker comme beaucoup de monde pour l'intégration continue et le passage de tests. Pourquoi ne pas utiliser le même procédé pour faire l'image à ma convenance ?

Mais je suis faignant. Oui enfin d'une certaine manière, avant de faire je regarde si quelqu'un ne l'a pas déjà fait et si ce qui a été fait me convient. Et je trouve un poste sur la compilation de Marlin avec Docker. Eric Draken utilise un script Bash qui fonctionne très bien sous Linux. Je l'ai mis à jour pour mon usage personnel sur mon github. J'ai pu fabriquer le firmware de ma SKR E3 min v3.0. Mais dans un premier temps je vais décortiquer un peu les choses pour permettre à d'autres de le refaire sur un autre OS que Linux.

Installation de Docker:

Dans un premier temps il faut installer Docker. Vous trouverez de nombreuse informations sur le sujet, mais sous ubuntu il faut faire:

Citation

sudo apt install docker.io docker-compose
sudo systemctl start containerd.service
sudo systemctl start docker.service

C'est simple et si vous avez un problème je vous conseille l'installation du package docker-clean.

De quoi a t'on besoin de plus ? Et bien rien d'autre il me semble. En effet pour l'intégration de Marlin tout les besoins sont décrit dans le fichier "docker-compose.yml" et docker se charge du téléchargement au premier démarrage. Sauf les sources de Marlin.

Préparation des sources de Marlin:

Nous allons donc commencer comme toute compilation de Marlin en téléchargeant les sources depuis le dépôt de github et les fichiers de configurations qui sont sur un autre dépôt. Nous installons les fichiers de configurations qui conviennent dans le répertoire "Marlin".

Et nous finissons par ouvrir un shell dans le répertoire principale des sources où se trouve le fichier "docker-compose.yml".

Compilation de Marlin:

La première étape est de créer l'image de la "machine virtuelle" (les puristes ne m'en voudront pas j'espère de cette simplification). La commande suivante crée un "container" avec tous les outils.

Citation

docker-compose build

La suivante est la compilation où seul le nom de votre platforme est nécessaire:. Ici pour moi j'utilise "STM32G0B1RE_btt" qui correspond à la carte SKR min E3 v3.0 de bigTreeTech.

Citation

docker-compose run --rm marlin platformio run -e "STM32G0B1RE_btt"

Si vous ne voulez plus voir tous ces hiéroglyphes qui défilent à la Matrix, je vous conseille d'ajouter l'option "--silent". Dans tous les cas vous devriez trouver le fichier de tous vos espoirs dans le répertoire ".pio/build/STM32G0B1RE_btt/".

Si vous devez nettoyer les sources il suffit de lancer la même commande avec l'option --target "clean".

Ma version de MarlinBuilder:

Au début de ce post je vous ai parler du script de Eric Draken et que j'en avais fait une nouvelle version.  Celle-ci permet de prendre un compte une autre version de carte sans avoir à modifier le script. Pour cela il suffit de télécharger le dépôt et de créer dans le répertoire un fichier "local.conf". Dans celui-ci vous mettrez à jour les variables qui vous concernent. Elles peuvent être:

  • PLATFORM qui définit le nom de la carte cible. Pour moi c'est PLATFORM="STM32G0B1RE_btt"
  • REMOTE_CONFIG_FOLDER qui définit le répertoire des fichiers de configuration à récupérer sur github. Il faut faire attention que le chemin doit être URL ¨compliant". Toujours dans mon cas j'utilise "Creality/Ender-3%20Pro/BigTreeTech%20SKR%20Mini%20E3%203.0"
  • GITREPO qui définit l'URL du dépôt que vous voulez utiliser pour les sources de Marlin. Par défaut ce sera le dépôt de MarlinFirmware.
  • MARLIN_BRANCH qui définit la branche à utiliser dans le dépôt de Marlin mais aussi dans le dépôt de configuration. Par défaut c'est la branche "bugfix-2.1.x". Cette variable devrait changer car elle est utiliser dans 2 dépôts différents et ne permet pas de mélanger tout cela.

Une fois le ficher créé il suffit de lancer la commande:

Citation

./compile.sh

Vous trouverez le résultat dans le répertoire "firmware/bugfix-2.1.x-STM32G0B1RE_btt/" (dans mon cas) avec les fichiers de configuration utilisés. Si vous modifiez ceux-ci, il seront utiliser lors des prochaines compilations. il n'est plus nécessaire de les télécharger depuis le dépôt. Mais attention Marlin évolue et vos fichiers peuvent vite ne plus être compatibles.

SI vous cherchez les sources de Marlin qui ont été utilisés, vous les trouverez dans le répertoire ".tmp/".

Conclusion:

J'espère que cela vous sera utile et je vous souhaite une bonne année...

  • Merci ! 3
Lien vers le commentaire
Partager sur d’autres sites

il y a 17 minutes, mch a dit :

J'utilise mon PC personnel pour la programmation de logiciels embarqués, cela occupe beaucoup de place, et j'ai besoin d'un maximum de ressources. Alors installer une pléthore de logiciels qui sont gourmands en RAM et en CPU, ce n'est pas mon fun. De là vous aurez aussi compris que je n'utilise pas VScode et encore moins Windows. Je suis sous Linux (ubuntu je l'avoue) et un de mes éditeurs préférés se nomme "vi".

Comme je ne suis plus adepte du masochisme, j'ai arrêté vi depuis quelque temps ... 😄 

Windows + Machines virtuelles = Plein d'environnements de développement divers et variés qui ne prennent aucune ressources (à part un peu d'espace disque) si on ne s'en sert pas, tout en ayant un environnement de développement confortable.

Mais je salue ta pugnacité pour avoir réalisé - et partagé - cette intéressante compilation dockerisée 🙂 

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, mch a dit :

je comprend que tu utilises Docker sous Windows

Non pas docker, juste une machine virtuelle avec un OS dedans et différents environnements de développement (dont une avec VSCode). 🙂 

Lien vers le commentaire
Partager sur d’autres sites

L'OS ne m'important que peu, sous Windows, WSL est fort pratique sans avoir besoin de rien d'autres 😉, on n'est même plus limité à la ligne de commandes avec les dernières version de WSL.

J'aime bien Vi que je préfère de très loin à Emacs. Par exemple, la Sonic Pad et son OS «exotique» (OpenWRT) ne possède comme éditeur que Vi bien suffisant pour l'édition de fichiers.

Même si Docker est pratique, j'ai toujours préféré l'installation en «dur» de mes programmes favoris, c'est plus barbu 😄

Sinon bon tutoriel.

il y a une heure, mch a dit :

j'aimerais savoir si mon tutoriel s'adapte facilement sous cet OS

Docker est «agnostique» donc je ne vois pas pourquoi ça ne fonctionnerait pas. Je ne testerai pas car pour moi Marlin même s'il continue d'évoluer n'est plus mon firmware de prédilection, Klipper est bien plus pratique, une fois son fonctionnement compris (les macros sont parmi les fonctionnalités, celles que je trouve les plus intéressantes).

🙂

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, fran6p a dit :

Docker est «agnostique»

Oui mais la plus part des utilisateurs Windows ont une tendance à avoir peur quand on parle ligne de commande. Or je ne m'y connais pas en Windows, et j'aurais aimé ajouter comment lancer les commandes sous Windows.

Perso je préfère installer les "applis en dur" aussi, mais comme je l'explique au début, ce n'était pas une option réalisable dans mon cas. Mais j'ai l'intention de décortiquer le docker-compose.yml pour en sortir le strict nécessaire. Il y a un Makefile et je pense qu'avec les bonnes options cela devrait le faire.

Pour Marlin ou Klipper, je préfère utiliser le firmware qui est utilisé par le constructeur de la carte. BigTreeTech maintient sa propre version de Marlin pour ces cartes, j'utilise donc Marlin. Si ils utilisaient Klipper, j'aurais utilisé Klipper.

Mais bon un jour je pourrais changer d'avis... J'ai bien autre chose qu'Android sur mon téléphone et je suis un anti-Mac.

Lien vers le commentaire
Partager sur d’autres sites

il y a 58 minutes, mch a dit :

BigTreeTech

Ce sont des «sponsors» officiels de Klipper. Ils ont même une imprimante fonctionnant d'origine avec ce firmware (Biqu Hurakan) et vendent de nombreuses cartes contrôleurs (Manta, Pico, …) ainsi que des modules additionnels (CAN, HermitCrab, ADXL345, …). Ils fournissent pour la plupart de leurs cartes (je n'ai pas vérifié pour toutes leurs cartes contrôleur) sur le Github dédié à chacune dans le dossier firmware ce qu'il faut (printer.cfg et le binaire à flasher (qu'il reste préférable de compiler soi même en fonction de la version de Klipper, en plus ça n'utilise qu'un Makefile 😄)) pour que le matériel fonctionne 😉

Exemple pour la SKR Mini E3  >>> ici <<<

Juste un point par rapport aux sources de Marlin utilisées pour ta compilation: ici on préfère conseiller l'utilisation des versions stables de Marlin (2.0.X / 2.1.X).

Je testerai ton script demain avec Windows, WSL2, distribution Kali, Docker intégré et reviendrai relater ici si ça fonctionne … ou pas

<EDIT>

Finalement je viens de tester. La compilation a échoué à cause d'un paramètre de configuration absent dans Marlin (AUTOTEMP activé mais pas de AUTOTEMP_MIN délcaré), sinon ça fonctionne

Citation

┌──(francis㉿ARRAKIS-DUNE)-[~]
└─$ ./compile.sh
-bash: ./compile.sh: No such file or directory

┌──(francis㉿ARRAKIS-DUNE)-[~]
└─$ cd M
MarlinBuilder/ Music/
┌──(francis㉿ARRAKIS-DUNE)-[~]
└─$ cd MarlinBuilder/

┌──(francis㉿ARRAKIS-DUNE)-[~/MarlinBuilder]
└─$ ./compile.sh

Getting Marlin source code for branch bugfix-2.1.x
Using cached Marlin at /home/francis/MarlinBuilder/.tmp/bugfix-2.1.x

Getting Marlin config files for Creality/Ender-3%20Pro/CrealityV427
Using configuration files found in /home/francis/MarlinBuilder/firmware/bugfix-2.1.x-STM32F103RE_creality.
Delete these files to use the remote configuration files instead.
Using thermistor_2.h found in /home/francis/MarlinBuilder/firmware/bugfix-2.1.x-STM32F103RE_creality.

Setting up Docker
[+] Building 91.2s (9/9) FINISHED
 => [internal] load build definition from Dockerfile                                                               0.0s
 => => transferring dockerfile: 230B                                                                               0.0s
 => [internal] load .dockerignore                                                                                  0.0s
 => => transferring context: 2B                                                                                    0.0s
 => [internal] load metadata for docker.io/library/python:3.9.0-buster                                            61.8s
 => [auth] library/python:pull token for registry-1.docker.io                                                      0.0s
 => [1/4] FROM docker.io/library/python:3.9.0-buster@sha256:ac5489b6fffc671a0880dc44d791944f9bdece5331c07e22af42  12.9s
 => => resolve docker.io/library/python:3.9.0-buster@sha256:ac5489b6fffc671a0880dc44d791944f9bdece5331c07e22af424  0.0s
 => => sha256:ac5489b6fffc671a0880dc44d791944f9bdece5331c07e22af424d46ef264b36 1.86kB / 1.86kB                     0.0s
 => => sha256:e4e54a385b186ebc7e5f49b072185be8179ddbf7c05ea7c50009818b864e522a 2.22kB / 2.22kB                     0.0s
 => => sha256:0affb4652fc063a01bb4e9e480b20b27049e1c24ad83d54dd2be3706950d5185 8.34kB / 8.34kB                     0.0s
 => => sha256:756975cb9c7e7933d824af9319b512dd72a50894232761d06ef3be59981df838 50.40MB / 50.40MB                   1.0s
 => => sha256:d77915b4e630d47296770ce4cf481894885978072432456615172af463433cc5 7.81MB / 7.81MB                     1.1s
 => => sha256:5f37a0a41b6b03489dd7de0aa2a79e369fd8b219bbc36b52f3f9790dc128e74b 10.00MB / 10.00MB                   0.7s
 => => sha256:96b2c1e36db5f5910f58da2ca4f9311b0690810c7107fb055ee1541498b5061f 51.83MB / 51.83MB                   2.9s
 => => extracting sha256:756975cb9c7e7933d824af9319b512dd72a50894232761d06ef3be59981df838                          2.5s
 => => sha256:c495e8de12d26c9843a7a2bf8c68de1e5652e66d80d9bc869279f9af6f86736a 192.28MB / 192.28MB                 5.1s
 => => sha256:33382189822a108b249cf3ccd234d04c3a8dfe7d593df19c751dcfab3675d5f2 6.15MB / 6.15MB                     2.9s
 => => sha256:dd860911922e9ba6c75bf5423c79d7c61736f3c7efff71845502f9e145e0b6a0 232B / 232B                         3.4s
 => => sha256:414ebfa5f45bccd436932c8d49f6d17047a640bbce3e54fb7394b9448380e444 20.56MB / 20.56MB                   4.0s
 => => sha256:b434dcf770b11c3c9a05b5a4cdf9464562f3430ffce20350507c665b19d1751f 2.14MB / 2.14MB                     4.4s
 => => extracting sha256:d77915b4e630d47296770ce4cf481894885978072432456615172af463433cc5                          0.5s
 => => extracting sha256:5f37a0a41b6b03489dd7de0aa2a79e369fd8b219bbc36b52f3f9790dc128e74b                          0.3s
 => => extracting sha256:96b2c1e36db5f5910f58da2ca4f9311b0690810c7107fb055ee1541498b5061f                          1.7s
 => => extracting sha256:c495e8de12d26c9843a7a2bf8c68de1e5652e66d80d9bc869279f9af6f86736a                          4.9s
 => => extracting sha256:33382189822a108b249cf3ccd234d04c3a8dfe7d593df19c751dcfab3675d5f2                          0.2s
 => => extracting sha256:414ebfa5f45bccd436932c8d49f6d17047a640bbce3e54fb7394b9448380e444                          0.5s
 => => extracting sha256:dd860911922e9ba6c75bf5423c79d7c61736f3c7efff71845502f9e145e0b6a0                          0.0s
 => => extracting sha256:b434dcf770b11c3c9a05b5a4cdf9464562f3430ffce20350507c665b19d1751f                          0.1s
 => [2/4] RUN pip install -U platformio                                                                           10.3s
 => [3/4] RUN pio upgrade --dev                                                                                    4.4s
 => [4/4] RUN pip install PyYaml                                                                                   1.4s
 => exporting to image                                                                                             0.4s
 => => exporting layers                                                                                            0.4s
 => => writing image sha256:05b57a206023b550534b7ddb5b6fe2ff19a797aaefac9054a7ead05ac21bc398                       0.0s
 => => naming to docker.io/library/marlin-dev                                                                      0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[+] Running 2/0
 ⠿ Network bugfix-21x_default            Created                                                                   0.0s
 ⠿ Volume "bugfix-21x_platformio-cache"  Created                                                                   0.0s

Compiling Marlin for STM32F103RE_creality
************************************************************************************************************************
If you like PlatformIO, please:
- follow us on Twitter to stay up-to-date on the latest project news > https://twitter.com/PlatformIO_Org
- star it on GitHub > https://github.com/platformio/platformio
- try PlatformIO IDE for embedded development > https://platformio.org/platformio-ide
************************************************************************************************************************

Processing STM32F103RE_creality (board: genericSTM32F103RE; platform: ststm32@~12.1; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Platform Manager: Installing ststm32 @ ~12.1
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Platform Manager: ststm32@12.1.1 has been installed!
Tool Manager: Installing platformio/tool-scons @ ~4.40400.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: tool-scons@4.40400.0 has been installed!
Verbose mode can be enabled via `-v, --verbose` option
Removing .pio/build/STM32F103RE_creality
Done cleaning
============================================= [SUCCESS] Took 8.28 seconds =============================================

Environment           Status    Duration
--------------------  --------  ------------
STM32F103RE_creality  SUCCESS   00:00:08.279
============================================= 1 succeeded in 00:00:08.279 =============================================
Tool Manager: Installing platformio/toolchain-gccarmnoneeabi @ ~1.90201.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: toolchain-gccarmnoneeabi@1.90201.191206 has been installed!
Tool Manager: Installing platformio/framework-cmsis @ ~2.50501.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: framework-cmsis@2.50501.200527 has been installed!
Tool Manager: Installing platformio/framework-arduinoststm32 @ ~4.10900.0
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: framework-arduinoststm32@4.10900.200819 has been installed!
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/HAL.cpp:27:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/HAL_SPI.cpp:27:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/MarlinSerial.cpp:27:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/Servo.cpp:27:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/eeprom_bl24cxx.cpp:32:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/eeprom_flash.cpp:27:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
In file included from Marlin/src/HAL/STM32/../../inc/MarlinConfig.h:49,
                 from Marlin/src/HAL/STM32/eeprom_if_iic.cpp:32:
Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1557:6: error: #error "AUTOTEMP requires AUTOTEMP_MIN."
 1557 |     #error "AUTOTEMP requires AUTOTEMP_MIN."
      |      ^~~~~
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/HAL.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/HAL_SPI.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/eeprom_if_iic.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/Servo.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/eeprom_bl24cxx.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/MarlinSerial.cpp.o] Error 1
*** [.pio/build/STM32F103RE_creality/src/src/HAL/STM32/eeprom_flash.cpp.o] Error 1
============================================= [FAILED] Took 72.57 seconds =============================================

Environment           Status    Duration
--------------------  --------  ------------
STM32F103RE_creality  FAILED    00:01:12.568
======================================== 1 failed, 0 succeeded in 00:01:12.568 ========================================

real    1m23.440s
user    0m0.176s
sys     0m0.234s

🙂

Modifié (le) par fran6p
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 17 heures, fran6p a dit :

Juste un point par rapport aux sources de Marlin utilisées pour ta compilation: ici on préfère conseiller l'utilisation des versions stables de Marlin (2.0.X / 2.1.X).

Je fais de même pour ma part. Mais le script original utilisait bugfix-2.1.x. J'ai testé ma version de script avec 2.1.2 et cela fonctionne bien. Par contre j'ai des problèmes avec 2.0.9.5. Une erreur dans generic_to_variant.py si quelqu'un connait ?

Citation

Finalement je viens de tester. La compilation a échoué à cause d'un paramètre de configuration absent dans Marlin (AUTOTEMP activé mais pas de AUTOTEMP_MIN délcaré), sinon ça fonctionne

Merci, les commandes ont été lancées dans powershell ?

Modifié (le) par mch
Lien vers le commentaire
Partager sur d’autres sites

Salutation !

Merci.

J'ajoute ce sujet dans "mes trucs a creuser"

Pour savoir si c'est l'équivalent de faire une compilation via l'ajout d'un workflow github
pour le firmware de "Makelangelo polagraphe" basé sur marlin, un utilisateur avais proposé le workflow suivant https://github.com/MarginallyClever/Marlin-polargraph/actions/runs/1753141383  pour compiler les source et obtenir le firmware tout cela sur les serveur github ( donc me semblais très pratique pour compiler du firmware marlin sans avoir besoins d'installer le moindre truc chez soit )

 

Modifié (le) par PPAC
Lien vers le commentaire
Partager sur d’autres sites

Salut,

il y a 41 minutes, PPAC a dit :

compiler les source et obtenir le firmware tout cela sur les serveur github

 

Je pense en effet que cela doit être possible.

Pour moi il suffit de faire un fork de Marlin sur Github. Modifier le .github/worflows/test_builds.yml pour avoir les platform qui nous intéressent, d'autres trucs pour être indépendant de l'URL de MarlinFirmware et d'autres pour avoir la sortie dans les release tags.

Ensuite il suffirait de pousser les modifications dans les fichiers de Configuration, puis générer une release perso pour n'avoir qu'a télécharger le nouveau firmware.

Bon c'est du taf, ensuite la compilation prendrait plus de temps et cela n'apporterait une plus value seulement si Mme/M Lambda sans compétence en compilation avait  les droits suffisant sur un github. Donc en l'état ce la me semble inutile.

Par contre un website qui utiliserait Docker pour la génération. Les gens déposent leurs fichiers de configuration, cliquent sur un bouton et téléchargent le nouveau firmware.
Là il y a un bon plan. Par contre cela demande des ressources, si le monde entier vient faire ses petites modifications toutes les minutes.

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, mch a dit :

les commandes ont été lancées dans powershell ?

Non. En bash dans WSL2, distribution Kali Linux (j'ai mis la sortie des commandes dans la balise «texte»).

Lien vers le commentaire
Partager sur d’autres sites

Il y a 20 heures, fran6p a dit :

Même si Docker est pratique, j'ai toujours préféré l'installation en «dur» de mes programmes favoris, c'est plus barbu 😄

Je viens de trouver pour ne pas utiliser Docker.

Installation de PlatformIO Core:

PlatformIO est aussi disponible sous la forme d'outils python. Pour l'installer, préférez PIP (installer pip sous windows) qui permet d'installer la dernière version. En effet certaines vieille version (4.3 par exemple) de PlatformIO ne permet pas d'installer automatiquement le package ststm32 nécessaire à la compilation des firmware 32bits.

Je vous conseille donc d'installer au moins une version 6 de PlatformIO.

Citation

pip install platformio
platformio --version
    PlatformIO Core, version 6.1.5

Compiler Marlin sur son PC:

Il ne reste qu'à mettre à jour les fichiers de configurations dans le répertoire Marlin puis à choisir votre environnement correspondant à votre carte (pour moi STM32G0B1RE_btt).

Ensuite la commande est simple:

Citation

platformio run -e STM32G0B1RE_btt

Vous trouverez le résultat dans le répertoire .pio/builder

 

Modifié (le) par mch
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...