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 containedconfig_path
andlog_path
options. These options are now deprecated, as both locations are determined by thedata 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).
Laisser un commentaire