Mise à jour de Moonraker et Fluidd sur l’Artillery Sidewinder X4

Je me suis récemment lancé dans l’impression 3D en achetant une Artillery Sidewinder X4 Pro. L’une des raisons du choix de ce modèle étant que la Sidewinder X4 avait un côté jouet, avec notamment un accès SSH root ouvert, permettant d’envisager pas mal de personnalisations 😅. J’ai rapidement mis à jour Fluidd et rajouté le service Mobileraker, mais jusqu’à présent, je n’arrivais pas à mettre à jour Moonraker.

Pourquoi m’obstiner à vouloir le mettre à jour ? Juste que les dernières versions de Moonraker intègrent le support de Spoolman pour la gestion des stocks de filament. Et puis j’aime bien geeker 😂.

1ère étape : sauvegarde

Une première mise en garde, en cas de soucis, il faudra reflasher votre système complet… Donc, évaluez les risques et au cas où, ayez à disposition un adaptateur.

Deuxième mise en garde : bien que kiauh (on y reviendra plus tard), permet de faire des sauvegardes, deux sécurités valent mieux qu’une ! Pour cela, on se connecte en SSH avec le compte par défaut (mks / makerbase) :

Ensuite, on va contrôler qu’on a assez de la place pour faire un backup :

mks@printer3d:~$ du -sh .
1014M   .
mks@printer3d:~$ df -h | grep mmcblk
/dev/mmcblk1p2  6.6G  4.9G  1.8G  74% /

Ça devrait le faire !

mks@printer3d:~$ cd /home/
mks@printer3d:/home$ sudo -s tar -czvf mks.tar.gz mks/

Dans le pire des cas, vous pluggez une clé USB et faites le backup dessus !

2ème étape : mise à jour avec kiauh

Alors attention ! kiauh est un outil en mode TUI, mais il est (très) facile de faire une erreur dessus (histoire vécue). Donc : redoublez d’attention !

La première étape lorsque vous allez lancer kiauh, c’est qu’il va vous demander de se mettre à jour lui-même, je vous invite à le faire.

Ensuite, on va (re)faire des backups (5) :

A minima, on va sauvegarder :

  • Klipper (1)
  • Moonraker (2)
  • La config (3)
  • Les databases (4)
  • Fluidd (6)

Puis, on revient en arrière (b) pour lancer l’update (2). De là, il va afficher les mises à jour disponibles. Dans mon cas :

Je vais donc me lancer dans la mise à jour de :

  • Mobileraker (10)
  • Fluidd (4)
  • Moonraker (2)
  • Ne lancez surtout pas la mise à jour de Klipper !!! La raison.

Attention, il est possible que durant la mise jour, vous ayez un message du type :

###### Updating Moonraker ...
Updating bdd0222..dc00d38
error: Your local changes to the following files would be overwritten by merge:
        moonraker/components/file_manager/metadata.py

Pas de panique, c’est juste qu’un fichier a été modifié dans votre installation de moonraker (ou autre) et que vous n’êtes plus en phase avec le GIT officiel. Du coup :

mks@printer3d:~$ cd ~/moonraker
mks@printer3d:~/moonraker$ git reset --hard

Et le tour est joué !

Maintenant, c’est là que les soucis commencent ! En effet, il va falloir mettre à jour la configuration embarquée du fait des déprécations entre la v0.7.x d’origine et la v0.8.x fraichement mise en place :

Dernière ligne droite : mise à jour de la configuration

Remarque : mon but, à partir de là, est de coller le plus possible au système en place.

Comme vu précédemment, on a pas mal de paramètres qui bougent et d’éléments qui passent de la configuration à des arguments de ligne de commande :

Previously the [file_manager] section contained config_path and log_path options. These options are now deprecated, as both locations are determined by the data path configured on the command line.

On va donc commencer par mettre à jour le fichier /etc/systemd/system/moonraker.service :

#Systemd Moonraker Service

[Unit]
Description=Systemd Moonraker Service
Documentation=https://moonraker.readthedocs.io/
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Environment=MOONRAKER_CONF=/home/mks/klipper_config/moonraker.conf
Environment=MOONRAKER_DATA=/home/mks/printer_data
Environment=MOONRAKER_LOG=/home/mks/klipper_logs/moonraker.log
Type=simple
SupplementaryGroups=moonraker-admin
User=mks
RemainAfterExit=yes
ExecStart=/home/mks/moonraker-env/bin/python /home/mks/moonraker/moonraker/moonraker.py -c ${MOONRAKER_CONF} -d ${MOONRAKER_DATA} -l ${MOONRAKER_LOG}
Restart=always
RestartSec=10

Ensuite, le fonctionnement de moonraker est désormais d’aller chercher les répertoires de configs, logs et gcodes à partir du répertoire data. Plutôt que de tout déplacer, on va faire des liens symboliques :

mks@printer3d:~$ cd /home/mks/printer_data
mks@printer3d:~/printer_data$ rmdir config/
mks@printer3d:~/printer_data$ rmdir logs/
mks@printer3d:~/printer_data$ rmdir gcodes/
mks@printer3d:~/printer_data$ ln -s /home/mks/klipper_config/ ./config
mks@printer3d:~/printer_data$ ln -s /home/mks/klipper_logs/ ./logs
mks@printer3d:~/printer_data$ ln -s /home/mks/gcode_files/ ./gcodes

Il en est de même pour le fichier de secret :

mks@printer3d:~/printer_data$ mv /home/mks/klipper_config/moonraker_secure.json moonraker.secrets

Et la base de données :

mks@printer3d:~/printer_data$ mv /home/mks/.moonraker_database/moonraker-sql.db database

Ensuite, on fait le ménage dans le fichier ~/printer_data/config/moonraker.conf :

  • On supprime le paramètre enable_debug_logging qui est déprécié et remplacé par l’argument « -v » en ligne de commande.
  • On supprime la section secret car on a copié le secret là où il faut et avec le bon nom.
  • On supprime la section database qui est passé en argument de la ligne de commande.
  • On supprime la section file_manager qui, elle aussi, est remplacée par les arguments en ligne de commande et les liens symboliques.

Pour finir, on va mettre à jour systemd et relancer moonraker :

mks@printer3d:/home/mks# sudo systemctl daemon-reload
mks@printer3d:/home/mks# sudo service moonraker restart

Suite à ça, je me retrouve avec un duo Moonraker / Fluidd en dernière version ! Vous pouvez même remarquer que j’ai le support de Spoolman d’activé :

On remarquera que la dernière version comprend, entre autre, un update_manager :

Je tiens à remercier les membres du forum LesImprimantes3D, et plus particulièrement Darkos qui m’a bien aidé dans l’opération (même si nos deux méthodes diffèrent).

Avatar de Guillaume Kulakowski

À propos de l’auteur

Commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.

Derniers articles sur le journal

  • SeedboxSync v4.1 : Authentification OIDC, Gravatar et refonte de l’administration
    Découvrez les nouveautés de SeedboxSync v4.1 : intégration d'un système d'authentification natif et OIDC (SSO), support de Gravatar, gestion des utilisateurs en CLI, formulaires Flask-WTForm et transition vers Peewee-Migrate.
  • De Jellystat à Jellydash : moderniser le suivi de mon serveur Jellyfin
    Pourquoi et comment j'ai remplacé Jellystat par Jellydash pour le suivi des statistiques de mon serveur Jellyfin. Retour d'expérience sur la découverte de cet outil moderne, léger et prometteur repéré dans la newsletter selfh.st.
  • SeedboxSync 4.0 : Fusion de l’IHM et du CLI
    La v4.0.0 de SeedboxSync marque un tournant majeur : fusion du CLI et du frontend en une seule application, migration de la configuration en base de données, planificateur Python natif et passage à SQLite WAL. Tour d'horizon des nouveautés et des changements d'architecture.
  • Modernisation du tooling dev sur SeedboxSync : Just, pnpm, uv & Ruff
    SeedboxSync fait peau neuve côté tooling ! Retour sur la modernisation de mon environnement de dev : abandon du bon vieux Makefile au profit de Just, transition vers pnpm pour un gain de temps spectaculaire côté frontend, et adoption de uv et Ruff pour booster l'écosystème Python. Moins de friction, plus de vitesse : découvrez le détail de cette mise à jour.

Articles à la une