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).

Commentaires

Il n'y a pas encore de commentaire, soyez le premier.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Réseaux sociaux