Aller au contenu

Passer la Two Trees SK1 sous Armbian Bookworm (Linux kernel : 6.6.x) et installer les dernières versions de Klipper et Moonraker


pascal_lb

Messages recommandés

Dans ce tuto vous allez découvrir comment passer votre Two Trees SK1 sous la version Armbian récente : Bookworm et ainsi pouvoir installer les dernières versions de Klipper et de Moonraker (entre autres).
D'origine, la SK1 est équipé d'une carte mère dérivée de la carte MKS SKIPR et de nombreuses marques d'imprimantes dont Two Trees fait parti ont décidé de partir d'Armbian Buster que fournissait MKS mais cette version est assez ancienne et n'est plus maintenue et ne permet donc pas de faire certaines mises à jour, on peut signaler également que Two Trees (et d'autres marques) a modifier leur système pour l'adapter à leur machine empêchant également toutes mises à jour à part les leurs et cela sans fournir les sources ce qui est un comble étant donné qu'il utilise Armbian qui est open source...

Généralement c'est à la fin qu'on le fait, mais avant de rentrer dans le vif du sujet, j'aimerai tout d'abord remercier chaleureusement @fran6p pour l'aide qu'il m'a apporté pendant plusieurs jours, sans lui je n'y serai pas arrivé, le remercier également pour le travail qu'il avait effectué sur sa Qidi X-Max3 et qui à servi de base à la modification de la SK1 et le remercier (mais après je m'arrête, il va prendre la grosse 😀) de m'autoriser à reprendre ses textes et ses images pour ce tuto.

Un remerciement à @bistory alias Tom's Basement pour son tuto TwoTrees SK1 Upgrade guide (à jour 😉) qui m'a donné au départ l'idée de faire des modifications sur ma SK1.

 

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

  • pascal_lb changed the title to Passer la Two Trees SK1 sous Armbian Bookworm (Linux kernel : 6.6.x) et installer les dernières versions de Klipper et Moonraker

Avertissement avant de démarrer :  

Il est recommandé de lire tout ce tuto pour vous faire une idée des manipulations avant de faire quoi que ce soit

Après cette modification tout sera fonctionnel à part l'écran qui ne sera plus compatible avec votre machine (malgré ma demande, Two Trees refuse de nous donner les sources du firmware de son écran pour modifications) vous pourrez toujours piloter la SK1 via Fluidd ou Mainsail et il faudra faire quelques ajustements ou ajouts de macros.

Actuellement le Wifi ne fonctionne plus mais on y travaille... le wifi sera fonctionnel 😉

Il faut pour cette modification que vous ayez quelques compétences en soudure car il faudra modifier un câble USB et lui mettre une prise JST-XH 2.54 femelle et souder une prise JST-XH 2.54 male (4 broches) sur la carte fille (THR) de la tête d'impression.

Les manipulations décrites s'adressent plutôt à un utilisateur ayant un peu d'expérience avec Linux et sa ligne de commandes mais un débutant bien motivé acceptant de franchir la courbe d'apprentissage afin de progresser devrait y arriver.

En gros, je n'assume aucune responsabilité en cas de mauvaises manipulations. Ce qui a fonctionné pour moi peut très bien s'avérer un cauchemar pour d'autres… 

Les manipulations décrites sont faites à vos risques et périls. Vous ne devrez pas contacter l'assistance Two Trees en cas de problème. En effectuant ces modifications, vous perdrez votre garantie à cet égard.

Two Trees cependant fournit une image de "récupération" qui permettra de restaurer le système dans l'état où il livre ses imprimantes. Vous n'aurez alors qu'à "rétrograder" (flasher à nouveau le firmware Klipper) sur la tête «THR», le MCU de la carte contrôleur et celui du Linux MCU. Vous serez pratiquement revenu au point de départ et vous devriez pouvoir retrouver votre garantie.

Si vous vous sentez capable et d'accord avec cet avertissement, on est parti 😉

Matériel:
  • Lecteur eMMC je préfère cet adaptateur là et de préférence un eMMC de rechange de 16go

Logiciels (à télécharger si nécessaire ) :

 Avant toute chose, il est préférable d'avoir réalisé une sauvegarde de la totalité des dossiers «importants», vous pouvez le faire via Fluidd, ne zappez pas cette sauvegarde car les fichiers seront utiles pour redémarrer l'imprimante à la fin de l'installation :

~/klipper_config (contient les fichiers de configuration)
~/gcode_files (contient les G-codes).

Une fois ces précautions prises :

éteindre l'imprimante et débrancher le câble d'alimentation

accéder au dessous et démonter la plaque donnant accès à la partie électronique

dévisser les deux vis de l'eMMC sur la carte et extraire celle-ci délicatement ( se mettre à la terre avant de faire ces manipulations est une bonne pratique pour toute manipulation de carte électronique  ).

 

Installation Armbian Bookworm

Sur le «PC»

  • connecter l'eMMC à l'aide de son adaptateur sur le PC de travail
  • démarrer Rufus (d'autres logiciels sont utilisables) pour flasher l'image Armbian précédemment téléchargée (au moment de la rédaction : Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_current_6.6.17.img.xz) puis décompressée via 7zip pour obtenir le fichier d'extension .img (Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_current_6.6.17.img)
    rufus-1.jpg.8cdf031f2ca28a5d2a66578b7005ce9f.jpg
  • sélectionner le périphérique contenant l'eMMC (1)
  • indiquer l'emplacement du ficher .img (2)
  • (3) permet de vérifier l'intégrité du fichier téléchargé (le fichier .sha du dépôt Github contient l'empreinte)
  • lancer le processus de flashage (4)

Des fenêtres d'alerte peuvent s'afficher, cliquer sur OK pour valider et poursuivre le flashage

rufus-3.jpg.82e5a3703ccb711a8e48799e67641001.jpg rufus-2.jpg.e71593a1e4108a2a45d965fe586901e5.jpg

La procédure prend un certain temps (un dizaine de minutes), la progression de la tâche s'affiche au fur et à mesure en bas de la fenêtre dans la zone STATUT

rufus-4.jpg.2d4ef4181657118ea61a8f8f17b885b1.jpg

finalement, arrivée à 100%, le statut passe au vert et indique que c'est terminé:

rufus-5.jpg.89cc7e1a6257e7b65165981b83e4bba9.jpg

retirer alors le lecteur contenant l'eMMC via la procédure standard pour l'éjecter proprement du PC

Le nouveau système d'exploitation (Armbian, version Bookworm) est installé sur la carte eMMC.

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

Sur l'imprimante

  • réinsérer l'eMMC sur la carte contrôleur de l'imprimante
  • brancher le câble d'alimentation et le câble Ethernet (rappel: le Wifi n'est pour le moment plus fonctionnelle)
  • allumer l'imprimante (le système démarre, une adresse IP est attribuée (Box internet, routeur)
  • l'écran ne fonctionne plus et reste sur le logo Two Trees
  • récupérer l'adresse IP par le moyen qui convient (Box internet, routeur, logiciel type AngryIP
  • démarrer le logiciel SSH (Putty, SSH natif, Mobaxterm, …) et accéder à l'imprimante via son adresse IP
  • le premier accès se fait en tant qu'utilisateur "root", mot de passe "1234". Cette première connexion lance le setup initial du systéme Armbian
    • changement du mot de passe "root",
    • choix de la zone horaire,
    • choix du shell entre autre
  • ensuite il est demandé de créer un nouvel utilisateur ( par exemple: "mks", mot de passe "makerbase" ), confirmer par ENTRÉE. Ce nouvel utilisateur possède des droits équivalents à «root» (sudo)
  • chez moi, la zone horaire (timezone) ayant été détectée (Europe/Paris), l'installateur propose de générer les locales. Plusieurs choix étant possible, je sélectionne le 4 (fr_FR.UTF-8)
  • à l'aide du logiciel SSH, ouvrir une nouvelle session en tant que le nouvel utilisateur créé ( "mks" )
  • mettre à jour le système :

sudo apt update sudo apt upgrade

ou en une seule ligne

sudo apt update && sudo apt upgrade

Confirmer la mise à jour (manuellement) ou ajouter le paramètre "-y" à la suite de "upgrade"

sudo apt upgrade -y

Aperçu des étapes ci-dessus

Citation

Welcome to Armbian-unofficial!

Documentation: https://docs.armbian.com/ | Community support: https://community.armbian.com/

IP address: 192.168.1.126

Create root password: *********
Repeat root password: *********

Choose default system command shell:

1) bash
2) zsh
1

Shell: BASH

Creating a new user account. Press <Ctrl-C> to abort

Please provide a username (eg. your first name): mks
Create user (mks) password: *********
Repeat user (mks) password: *********

Please provide your real name: Mks

Dear Mks, your account mks has been created and is sudo enabled.
Please use this account for your daily work from now on.

Detected timezone: Europe/Paris

Set user language based on your location? [Y/n]
Y

At your location, more locales are possible:

1) br_FR.UTF-8              5) ia_FR
2) ca_FR.UTF-8              6) oc_FR.UTF-8
3) eu_FR.UTF-8              7) Skip generating locales
4) fr_FR.UTF-8
Please enter your choice:4

Generating locales: fr_FR.UTF-8

root@mkspi:~# exit

=> reconnexion en utilisateur «mks»
login as: mks
mks@192.168.1.126's password:
         _              _
_ __ ___ | | _____ _ __ (_)
| '_ ` _ \| |/ / __| '_ \| |
| | | | | |   <\__ \ |_) | |
|_| |_| |_|_|\_\___/ .__/|_|
                 |_|
Welcome to Armbian-unofficial 24.2.0-trunk Bookworm with Linux 6.6.17-current-rockchip64

No end-user support: built from trunk

System load:   3%               Up time:       3:21
Memory usage:  20% of 911M      IP:            192.168.1.126
CPU temp:      40°C             Usage of /:    56% of 6.7G

[ Kernel and firmware upgrades disabled: armbian-config ]
Last check: 2024-05-12 11:10

[ General system configuration (beta): armbian-config ]

Last login: Sun May 12 13:38:15 2024 from 192.168.1.101
mks@mkspi:~$
mks@mkspi:~$ sudo apt update
Réception de :1 http://security.debian.org bookworm-security InRelease [48,0 kB]
Atteint :2 http://deb.debian.org/debian bookworm InRelease
Réception de :3 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]
Réception de :5 http://deb.debian.org/debian bookworm-backports InRelease [56,5 kB]
Réception de :4 http://imola.armbian.com/apt bookworm InRelease [53,3 kB]
Réception de :6 http://security.debian.org bookworm-security/main arm64 Packages [152 kB]
Réception de :7 http://deb.debian.org/debian bookworm-updates/main arm64 Packages.diff/Index [10,6 kB]
Réception de :8 http://deb.debian.org/debian bookworm-updates/main arm64 Contents (deb).diff/Index [8361 B]
Réception de :9 http://deb.debian.org/debian bookworm-updates/main arm64 Packages T-2024-04-23-2036.10-F-2024-04-23-2036.10.pdiff [1597 B]
Réception de :9 http://deb.debian.org/debian bookworm-updates/main arm64 Packages T-2024-04-23-2036.10-F-2024-04-23-2036.10.pdiff [1597 B]
Réception de :10 http://deb.debian.org/debian bookworm-updates/main arm64 Contents (deb) T-2024-04-23-2036.10-F-2024-04-23-2036.10.pdiff [6870 B]
Réception de :10 http://deb.debian.org/debian bookworm-updates/main arm64 Contents (deb) T-2024-04-23-2036.10-F-2024-04-23-2036.10.pdiff [6870 B]
Réception de :11 http://deb.debian.org/debian bookworm-backports/main arm64 Packages.diff/Index [63,3 kB]
Ign :11 http://deb.debian.org/debian bookworm-backports/main arm64 Packages.diff/Index
Réception de :12 http://deb.debian.org/debian bookworm-backports/main all Contents (deb).diff/Index [63,6 kB]
Réception de :13 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb).diff/Index [63,4 kB]
Réception de :14 http://deb.debian.org/debian bookworm-backports/contrib arm64 Packages.diff/Index [25,2 kB]
Réception de :15 http://deb.debian.org/debian bookworm-backports/contrib all Contents (deb).diff/Index [12,8 kB]
Réception de :16 http://deb.debian.org/debian bookworm-backports/contrib arm64 Contents (deb).diff/Index [7239 B]
Réception de :17 http://deb.debian.org/debian bookworm-backports/non-free arm64 Packages.diff/Index [4995 B]
Réception de :18 http://deb.debian.org/debian bookworm-backports/non-free all Contents (deb).diff/Index [3873 B]
Réception de :19 http://imola.armbian.com/apt bookworm/main all Packages [4650 B]
Réception de :20 http://imola.armbian.com/apt bookworm/main arm64 Packages [188 kB]
Réception de :21 http://deb.debian.org/debian bookworm-backports/main all Contents (deb) T-2024-05-01-0805.42-F-2024-02-19-2010.17.pdiff [539 kB]
Réception de :21 http://deb.debian.org/debian bookworm-backports/main all Contents (deb) T-2024-05-01-0805.42-F-2024-02-19-2010.17.pdiff [539 kB]
Réception de :22 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb) T-2024-04-29-1406.02-F-2024-02-19-2010.17.pdiff [321 kB]
Réception de :23 http://imola.armbian.com/apt bookworm/main arm64 Contents (deb) [5030 kB]
Réception de :22 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb) T-2024-04-29-1406.02-F-2024-02-19-2010.17.pdiff [321 kB]
Réception de :24 http://deb.debian.org/debian bookworm-backports/contrib arm64 Packages T-2024-04-16-1405.22-F-2024-03-07-1416.30.pdiff [1825 B]
Réception de :24 http://deb.debian.org/debian bookworm-backports/contrib arm64 Packages T-2024-04-16-1405.22-F-2024-03-07-1416.30.pdiff [1825 B]
Réception de :25 http://deb.debian.org/debian bookworm-backports/contrib all Contents (deb) T-2024-03-07-1416.30-F-2024-03-07-1416.30.pdiff [6356 B]
Réception de :25 http://deb.debian.org/debian bookworm-backports/contrib all Contents (deb) T-2024-03-07-1416.30-F-2024-03-07-1416.30.pdiff [6356 B]
Réception de :26 http://deb.debian.org/debian bookworm-backports/contrib arm64 Contents (deb) T-2024-03-07-1416.30-F-2024-03-07-1416.30.pdiff [574 B]
Réception de :26 http://deb.debian.org/debian bookworm-backports/contrib arm64 Contents (deb) T-2024-03-07-1416.30-F-2024-03-07-1416.30.pdiff [574 B]
Réception de :27 http://deb.debian.org/debian bookworm-backports/non-free arm64 Packages T-2024-04-22-2005.41-F-2024-02-19-2010.17.pdiff [257 B]
Réception de :27 http://deb.debian.org/debian bookworm-backports/non-free arm64 Packages T-2024-04-22-2005.41-F-2024-02-19-2010.17.pdiff [257 B]
Réception de :28 http://deb.debian.org/debian bookworm-backports/non-free all Contents (deb) T-2024-02-19-2010.17-F-2024-02-19-2010.17.pdiff [3326 B]
Réception de :28 http://deb.debian.org/debian bookworm-backports/non-free all Contents (deb) T-2024-02-19-2010.17-F-2024-02-19-2010.17.pdiff [3326 B]
Réception de :29 http://deb.debian.org/debian bookworm-backports/main arm64 Packages [189 kB]
Réception de :30 http://imola.armbian.com/apt bookworm/main all Contents (deb) [31,7 kB]
Réception de :31 http://imola.armbian.com/apt bookworm/bookworm-utils all Packages [2357 B]
Réception de :32 http://imola.armbian.com/apt bookworm/bookworm-utils arm64 Packages [15,9 kB]
Réception de :33 http://imola.armbian.com/apt bookworm/bookworm-utils all Contents (deb) [12,1 kB]
Réception de :34 http://imola.armbian.com/apt bookworm/bookworm-utils arm64 Contents (deb) [21,2 kB]
Réception de :35 http://imola.armbian.com/apt bookworm/bookworm-desktop all Packages [933 B]
Réception de :36 http://imola.armbian.com/apt bookworm/bookworm-desktop arm64 Packages [1965 B]
Réception de :37 http://imola.armbian.com/apt bookworm/bookworm-desktop arm64 Contents (deb) [7694 B]
Réception de :38 http://imola.armbian.com/apt bookworm/bookworm-desktop all Contents (deb) [385 B]
7015 ko réceptionnés en 12s (581 ko/s)
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
27 paquets peuvent être mis à jour. Exécutez « apt list --upgradable » pour les voir.
mks@mkspi:~$ sudo apt list --upgradable
En train de lister... Fait
armbian-config/bookworm,bookworm 24.2.1 all [pouvant être mis à jour depuis : 24.2.0-trunk]
armbian-firmware/bookworm,bookworm 24.2.1 all [pouvant être mis à jour depuis : 24.2.0-trunk]
armbian-plymouth-theme/bookworm,bookworm 24.2.1 all [pouvant être mis à jour depuis : 24.2.0-trunk]
armbian-zsh/bookworm,bookworm 24.2.1 all [pouvant être mis à jour depuis : 24.2.0-trunk]
base-files/bookworm 24.2.1-12.4+deb12u5-bookworm arm64 [pouvant être mis à jour depuis : 24.2.0-trunk-12.4+deb12u5-bookworm]
bsdextrautils/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
bsdutils/stable-security 1:2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 1:2.38.1-5+b1]
fdisk/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
libblkid1/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
libc-bin/stable-security 2.36-9+deb12u6 arm64 [pouvant être mis à jour depuis : 2.36-9+deb12u4]
libc-dev-bin/stable-security 2.36-9+deb12u6 arm64 [pouvant être mis à jour depuis : 2.36-9+deb12u4]
libc-l10n/stable-security 2.36-9+deb12u6 all [pouvant être mis à jour depuis : 2.36-9+deb12u4]
libc6-dev/stable-security 2.36-9+deb12u6 arm64 [pouvant être mis à jour depuis : 2.36-9+deb12u4]
libc6/stable-security 2.36-9+deb12u6 arm64 [pouvant être mis à jour depuis : 2.36-9+deb12u4]
libfdisk1/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
libmount1/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
libsmartcols1/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
libuuid1/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
linux-dtb-current-rockchip64/bookworm 24.2.1 arm64 [pouvant être mis à jour depuis : 24.2.0-trunk]
linux-headers-current-rockchip64/bookworm 24.2.1 arm64 [pouvant être mis à jour depuis : 24.2.0-trunk]
linux-image-current-rockchip64/bookworm 24.2.1 arm64 [pouvant être mis à jour depuis : 24.2.0-trunk]
linux-libc-dev/stable-security 6.1.85-1 arm64 [pouvant être mis à jour depuis : 6.1.76-1]
locales/stable-security 2.36-9+deb12u6 all [pouvant être mis à jour depuis : 2.36-9+deb12u4]
mount/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
rfkill/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
util-linux-extra/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
util-linux/stable-security 2.38.1-5+deb12u1 arm64 [pouvant être mis à jour depuis : 2.38.1-5+b1]
mks@mkspi:~$ sudo apt upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été conservés :
armbian-config armbian-firmware armbian-plymouth-theme armbian-zsh
base-files linux-dtb-current-rockchip64 linux-headers-current-rockchip64
linux-image-current-rockchip64
Les paquets suivants seront mis à jour :
bsdextrautils bsdutils fdisk libblkid1 libc-bin libc-dev-bin libc-l10n libc6
libc6-dev libfdisk1 libmount1 libsmartcols1 libuuid1 linux-libc-dev locales
mount rfkill util-linux util-linux-extra
19 mis à jour, 0 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 13,2 Mo dans les archives.
Après cette opération, 26,6 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n]
Réception de :1 http://security.debian.org bookworm-security/main arm64 bsdutils arm64 1:2.38.1-5+deb12u1 [94,0 kB]
Réception de :2 http://security.debian.org bookworm-security/main arm64 libc6-dev arm64 2.36-9+deb12u6 [1430 kB]
Réception de :3 http://security.debian.org bookworm-security/main arm64 libc-dev-bin arm64 2.36-9+deb12u6 [44,7 kB]
Réception de :4 http://security.debian.org bookworm-security/main arm64 linux-libc-dev arm64 6.1.85-1 [1944 kB]
Réception de :5 http://security.debian.org bookworm-security/main arm64 libc6 arm64 2.36-9+deb12u6 [2321 kB]
Réception de :6 http://security.debian.org bookworm-security/main arm64 libsmartcols1 arm64 2.38.1-5+deb12u1 [104 kB]
Réception de :7 http://security.debian.org bookworm-security/main arm64 util-linux-extra arm64 2.38.1-5+deb12u1 [112 kB]
Réception de :8 http://security.debian.org bookworm-security/main arm64 util-linux arm64 2.38.1-5+deb12u1 [1144 kB]
Réception de :9 http://security.debian.org bookworm-security/main arm64 libc-bin arm64 2.36-9+deb12u6 [531 kB]
Réception de :10 http://security.debian.org bookworm-security/main arm64 mount arm64 2.38.1-5+deb12u1 [134 kB]
Réception de :11 http://security.debian.org bookworm-security/main arm64 libblkid1 arm64 2.38.1-5+deb12u1 [143 kB]
Réception de :12 http://security.debian.org bookworm-security/main arm64 libmount1 arm64 2.38.1-5+deb12u1 [159 kB]
Réception de :13 http://security.debian.org bookworm-security/main arm64 libuuid1 arm64 2.38.1-5+deb12u1 [28,3 kB]
Réception de :14 http://security.debian.org bookworm-security/main arm64 libfdisk1 arm64 2.38.1-5+deb12u1 [182 kB]
Réception de :15 http://security.debian.org bookworm-security/main arm64 fdisk arm64 2.38.1-5+deb12u1 [139 kB]
Réception de :16 http://security.debian.org bookworm-security/main arm64 libc-l10n all 2.36-9+deb12u6 [675 kB]
Réception de :17 http://security.debian.org bookworm-security/main arm64 locales all 2.36-9+deb12u6 [3902 kB]
Réception de :18 http://security.debian.org bookworm-security/main arm64 bsdextrautils arm64 2.38.1-5+deb12u1 [86,9 kB]
Réception de :19 http://security.debian.org bookworm-security/main arm64 rfkill arm64 2.38.1-5+deb12u1 [37,1 kB]
13,2 Mo réceptionnés en 2s (8046 ko/s)
Preconfiguring packages ...
(Lecture de la base de données... 68171 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../bsdutils_1%3a2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de bsdutils (1:2.38.1-5+deb12u1) sur (1:2.38.1-5+b1) ...
Paramétrage de bsdutils (1:2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68170 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libc6-dev_2.36-9+deb12u6_arm64.deb ...
Dépaquetage de libc6-dev:arm64 (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Préparation du dépaquetage de .../libc-dev-bin_2.36-9+deb12u6_arm64.deb ...
Dépaquetage de libc-dev-bin (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Préparation du dépaquetage de .../linux-libc-dev_6.1.85-1_arm64.deb ...
Dépaquetage de linux-libc-dev:arm64 (6.1.85-1) sur (6.1.76-1) ...
Préparation du dépaquetage de .../libc6_2.36-9+deb12u6_arm64.deb ...
Dépaquetage de libc6:arm64 (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Paramétrage de libc6:arm64 (2.36-9+deb12u6) ...
(Lecture de la base de données... 68170 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libsmartcols1_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de libsmartcols1:arm64 (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de libsmartcols1:arm64 (2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68169 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../util-linux-extra_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de util-linux-extra (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de util-linux-extra (2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68168 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../util-linux_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de util-linux (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de util-linux (2.38.1-5+deb12u1) ...
fstrim.service is a disabled or a static unit not running, not starting it.
(Lecture de la base de données... 68167 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libc-bin_2.36-9+deb12u6_arm64.deb ...
Dépaquetage de libc-bin (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Paramétrage de libc-bin (2.36-9+deb12u6) ...
(Lecture de la base de données... 68167 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../mount_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de mount (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Préparation du dépaquetage de .../libblkid1_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de libblkid1:arm64 (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de libblkid1:arm64 (2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68165 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libmount1_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de libmount1:arm64 (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de libmount1:arm64 (2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68164 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libuuid1_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de libuuid1:arm64 (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de libuuid1:arm64 (2.38.1-5+deb12u1) ...
(Lecture de la base de données... 68163 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../0-libfdisk1_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de libfdisk1:arm64 (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Préparation du dépaquetage de .../1-fdisk_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de fdisk (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Préparation du dépaquetage de .../2-libc-l10n_2.36-9+deb12u6_all.deb ...
Dépaquetage de libc-l10n (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Préparation du dépaquetage de .../3-locales_2.36-9+deb12u6_all.deb ...
Dépaquetage de locales (2.36-9+deb12u6) sur (2.36-9+deb12u4) ...
Préparation du dépaquetage de .../4-bsdextrautils_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de bsdextrautils (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Préparation du dépaquetage de .../5-rfkill_2.38.1-5+deb12u1_arm64.deb ...
Dépaquetage de rfkill (2.38.1-5+deb12u1) sur (2.38.1-5+b1) ...
Paramétrage de libc-l10n (2.36-9+deb12u6) ...
Paramétrage de bsdextrautils (2.38.1-5+deb12u1) ...
Paramétrage de linux-libc-dev:arm64 (6.1.85-1) ...
Paramétrage de locales (2.36-9+deb12u6) ...
Generating locales (this might take a while)...
en_US.UTF-8... done
fr_FR.UTF-8... done
Generation complete.
Paramétrage de rfkill (2.38.1-5+deb12u1) ...
Paramétrage de libfdisk1:arm64 (2.38.1-5+deb12u1) ...
Paramétrage de mount (2.38.1-5+deb12u1) ...
Paramétrage de libc-dev-bin (2.36-9+deb12u6) ...
Paramétrage de fdisk (2.38.1-5+deb12u1) ...
Paramétrage de libc6-dev:arm64 (2.36-9+deb12u6) ...
Traitement des actions différées (« triggers ») pour man-db (2.11.2-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u6) ...
mks@mkspi:~$

Le système de base est installé sur l'eMMC, il occupe moins de 2Go de la capacité totale de 8Go (eMMC originelle 😉 )

mks@mkspi:~$ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev               379M       0  379M   0% /dev
tmpfs               92M    2,0M   90M   3% /run
/dev/mmcblk1p2     6,7G    1,9G  4,8G  29% /
tmpfs              456M       0  456M   0% /dev/shm
tmpfs              5,0M       0  5,0M   0% /run/lock
tmpfs              456M       0  456M   0% /tmp
/dev/mmcblk1p1     256M     88M  169M  35% /boot
/dev/zram1          47M    740K   43M   2% /var/log
tmpfs               92M       0   92M   0% /run/user/1000
 

«Améliorer» l'OS

Tel quel le système d'exploitation est pleinement fonctionnel

Certaines fonctionnalités de l'ancien OS de Makerbase ne sont plus disponibles, par exemple:

  • plus d'automontage d'une clé USB
  • le nom des interfaces réseau adopte celui «imposé» par systemd (je préfére l'ancien (ethX, wlanX)
  • l'utilisateur mks ne peut accéder aux GPIO, le groupe gpio n'existe pas, on ne peut accéder aux GPIO que via sudo
  • pas de synchronisation régulière du système de fichiers (/bin/sync)
  • quelques paquets doivent encore être installés (python3-numpy python3-matplotlib libatlas-base-dev libopenblas-dev python3-serial)

On peut se passer de toutes mais ce serait dommage de s'en priver, certaines sont purement cosmétiques d'autres apportent plus de fonctionnalités.

Bloquer certaines mises à jour du système d'exploitation

Le OS prévus pour les Single Board Computer (SBC), Ordinateurs monocartes dont le plus connu est le RaspberryPi gèrent moyennement bien les montées de version du noyau (kernel), c'est particulièrement le cas des distributions Armbian.

Des outils existent permettant d'empêcher la mise à jour de paquets (linux-dtb-*, linux-image-*, linux-headers-*, armbian-firmware*, …).

Normalement, ces paquets après installation de l'image système sont bloqués. A chaque connexion ssh, c'est normalement indiqué

ssh-accueil-apt-mark-hold.jpg.50076c8651603b6c2ba593a03039050f.jpg

On peut utiliser l'outil «armbian-config» pour geler / dégeler ces mises à jour :

sudo armbian-config

La première option de l'écran permet d'accéder aux paramètres «sensibles» du système:

armbian-config-accueil.jpg.0128074a9e98bfbfb656a00a59582060.jpg

En choisissant cette option, le fond d'écran change de couleur pour rappeler le caractère «dangereux» de certains choix. On peut geler / dégeler les mises à jour à «éviter» :

armbian-config-system-freeze-kernel.jpg.304a0aee9c4e1b9d86d6a21852ed365f.jpg

On peut évidemment aussi faire cette manipulation en ligne de commande. La liste des paquets gelés peut être récupérée lors d'un «apt upgrade» ou après un «apt update»  suivi d'un «apt list --upgrable»:

Citation

mks@mkspi:~$ sudo apt upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
Les paquets suivants ont été conservés :
  armbian-config armbian-firmware-full armbian-plymouth-theme armbian-zsh base-files linux-dtb-current-rockchip64
  linux-headers-current-rockchip64 linux-image-current-rockchip64
0 mis à jour, 0 nouvellement installés, 0 à enlever et 8 non mis à jour.

Connaissant le nom des paquets, la commande à utiliser est «apt-mark hold nom-du-paquet» (unhold pour dégeler):

sudo apt-mark hold base-files linux-dtb-current-rockchip64 linux-image-current-rockchip64 linux-headers-current-rockchip64 armbian-config armbian-firmware armbian-plymouth-theme armbian-zsh

Synchronisation du système de fichiers

Ces systèmes monocartes apprécient moyennement l'extinction brutale (coupure d'alimentation) avec le risque de corruption du support mémoire (les eMMC sont un peu plus tolérantes que les cartes SD). On peut demander au système d'écrire régulièrement via une tâche «cron. Soit on édite manuellement cette tâche :

crontab -e

en ajoutant pour une synchronisation toutes les cinq minutes :

*/5 * * * * /bin/sync

Soit en une seule ligne de commandes :

(crontab -l 2>/dev/null; echo "*/5 * * * * /bin/sync") | crontab -

Modifier la manière de gérer les noms d'interfaces réseaux

Les systèmes récents utilisent «systemd» qui donnent des noms «aléatoires» aux interfaces réseaux, je préfère l'ancien système de nom (ethX, wlanX avec X={0,1,2, …}

On peut en ajoutant une ligne dans le fichier /boot/armbianEnv.txt revenir à cet ancien nommage :

echo "extraargs=net.ifnames=0" | sudo tee -a "/boot/armbianEnv.txt" > /dev/null

On peut évidemment ajouter cette ligne (extraargs=net.ifnames=0) manuellement en éditant le fichier :

sudo nano /boot/armbianEnv.txt

Pour être pris en compte, il faudra redémarrer le système.

Sans cette modification, l'interface Ethernet (eth0) serait nommée end1

Citation

mks@mkspi:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 76:09:8f:72:f7:44 brd ff:ff:ff:ff:ff:ff
    altname end1
    inet 192.168.1.126/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
       valid_lft 4958sec preferred_lft 4958sec
    inet6 fe80::62b:66de:8f1:6305/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Quelques paquets à ajouter

sudo apt update
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev libopenblas-dev python3-serial

Automontage des clés USB

Le système d'exploitation originel montait automatiquement les supports de masse (clés USB) dans le dossier de stockage des Gcodes dans un dossier sda1 créé au montage puis supprimé au démontage (retrait du support).

C'est une fonctionnalité bien pratique qui n'est pas implémentée sur la nouvelle image du système.

On pet ajouter cette fonctionnalité manuellement:

  • créer des règles UDEV indiquant au système quoi faire quand un périphérique de masse est inséré
  • créer le dossier servant de point de montage
  • attribuer ce point de montage à l'utilisateur mks
  • recharger les règles UDEV
  • tester

C'est l'objet du script shell suivant (contenu à recopier dans un fichier nommé comme vous voulez ( automontage.sh, par exemple), droits d'exécution (chmod +x …)) :

#!/bin/bash

# Remove old rule if it exists 
sudo rm -f /etc/udev/rules.d/99-usb_automount.rules

# Define the path for the udev rule file
udev_rule_path="/etc/udev/rules.d/99-usb_automount.rules"

# Define the mount point
mount_point="/home/mks/printer_data/gcodes/USB"

# Obtain UID and GID for the mks user
uid=$(id -u mks)
gid=$(id -g mks)

# Udev rule to add
udev_rule_add="ACTION==\"add\", SUBSYSTEMS==\"usb\", SUBSYSTEM==\"block\", KERNEL==\"sd*1\", ENV{ID_FS_USAGE}==\"filesystem\", RUN{program}+=\"/usr/bin/systemd-mount --no-block --automount=yes --collect --options uid=$uid,gid=$gid,sync,nofail \$devnode $mount_point\""

# Udev rule to remove
udev_rule_remove="ACTION==\"remove\", SUBSYSTEMS==\"usb\", SUBSYSTEM==\"block\", KERNEL==\"sd*1\", RUN+=\"/bin/sh -c '/bin/umount $mount_point'\""

# Write the rules to the udev rule file
{
    echo "$udev_rule_add"
    echo "$udev_rule_remove"
} | sudo tee "$udev_rule_path"

# Create the mount point directory if it doesn't exist
if [ ! -d "$mount_point" ]; then
    #sudo mkdir -p "$mount_point"
    mkdir -p "$mount_point"
fi

# Change the ownership of the mount point to user 'mks'
sudo chown mks:mks "$mount_point"

# Reload udev rules
sudo udevadm control --reload-rules && sudo udevadm trigger

echo "Udev rule for USB automount with sync option is configured."

Pour créer et exécuter ce script :

En ssh, placé dans le dossier perso de mks, il faut créer le script (il ne servira qu'une seule fois, il pourra une fois exécuté, le supprimer)

cd ~

nano automount.sh

Copier le contenu du script dans le fichier (pour coller dans nano, un clic avec le bouton droit devrait le faire), enregistrer puis quitter nano (CTRL+X, Yes pour enregistrer).

Rendre exécutable le script créé puis le lancer (on pourrait s'en passer en utilisant la syntaxe: sh automount.sh)

chmod +x automount.sh

./automount.sh

Le script devrait s'exécuter (ajout de règles UDEV, création du point de montage (/home/mks/printer_data/gcodes/USB))

Vérifier une fois que le script a été exécuté que l'insertion de la clé USB est bien reconnue :

lsblk

Lors de l'introduction d'un clé, désormais, le système la gérera automatiquement 😉

1) Pas de clé insérée:

Citation

mks@mkspi:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk1      179:0    0  14,6G  0 disk
├─mmcblk1p1  179:1    0   256M  0 part /boot
└─mmcblk1p2  179:2    0  14,1G  0 part /var/log.hdd
                                       /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
zram0        251:0    0 455,5M  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
zram2        251:2    0     0B  0 disk

2) Clé insérée (le périphérique SDA est détecté mais pas encore monté)

Citation

mks@mkspi:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda            8:0    1  14,4G  0 disk
└─sda1         8:1    1  14,4G  0 part
mmcblk1      179:0    0  14,6G  0 disk
├─mmcblk1p1  179:1    0   256M  0 part /boot
└─mmcblk1p2  179:2    0  14,1G  0 part /var/log.hdd
                                       /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
zram0        251:0    0 455,5M  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
zram2        251:2    0     0B  0 disk

3) La lecture du contenu de la clé monte le dossier là où il faut :

Citation

mks@mkspi:~$ ls -l printer_data/gcodes/USB
total 4
-rwxr-xr-x 1 mks mks    0 30 mai    2024  JeTeVois
drwxr-xr-x 2 mks mks 4096 31 janv. 16:03 'System Volume Information'
mks@mkspi:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda            8:0    1  14,4G  0 disk
└─sda1         8:1    1  14,4G  0 part /home/mks/printer_data/gcodes/USB
mmcblk1      179:0    0  14,6G  0 disk
├─mmcblk1p1  179:1    0   256M  0 part /boot
└─mmcblk1p2  179:2    0  14,1G  0 part /var/log.hdd
                                       /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
zram0        251:0    0 455,5M  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
zram2        251:2    0     0B  0 disk

4) Après retrait de la clé, le périphérique est bien démonté, le point de montage lui n'a pas disparu mais est vide (il pourrait parfaitement contenir des fichiers qui n'apparaitraient pas en cas de montage d'une clé 😉 ) :

Citation

mks@mkspi:~$ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk1      179:0    0  14,6G  0 disk
├─mmcblk1p1  179:1    0   256M  0 part /boot
└─mmcblk1p2  179:2    0  14,1G  0 part /var/log.hdd
                                       /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
zram0        251:0    0 455,5M  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
zram2        251:2    0     0B  0 disk
mks@mkspi:~$ ls -l printer_data/gcodes/USB
total 0

 

 

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

Accéder aux dossiers de l'utilisateur MKS via l'explorateur de fichiers de Windows

Même si on peut accéder via l'interface Web (Fluidd / Mainsail) à certains dossiers de Klipper avec un navigateur, l'explorateur de fichiers permet en plus (si l'utilisateur mks a bien été ajouté 😉 ) l'accès total au répertoire personnel de «mks»

Pour réaliser «cette magie», rien de bien sorcier:

1. Installer quelques paquets :

sudo apt install && sudo apt install samba winbind

2. Éditer le fichier /etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

3. Ajouter à la fin de ce fichier :

[Print_Files]
comment = GCode_files
path = /home/mks/printer_data/gcodes
browseable = Yes
writeable = Yes
only guest = no
create mask = 0770
directory mask = 0770
public = yes
read only = no
force user = mks
force group = mks
 
[Klipper_Configs]
comment = Klipper configurations
path = /home/mks/printer_data/config
browseable = Yes
writeable = Yes
only guest = no
create mask = 0770
directory mask = 0770
public = yes
read only = no
force user = mks
force group = mks

[Timelapses]
comment = Timelapses
path = /home/mks/timelapse
browseable = Yes
writeable = Yes
only guest = no
create mask = 0770
directory mask = 0770
public = yes
read only = no
force user = mks
force group = mks

4. Enregistrer le fichier modifié

5. Ajouter l'utilisateur mks pour lui permettre l'accès à son «home» depuis Windows

sudo smbpasswd -a mks

6. Redémarrer le daemon système :

sudo systemctl restart smbd

Savourer :

Accès au partage \\adr.ess.e.ip

samba-xmax3.jpg.070d540d49f95b19cb28ada2e149d048.jpg

Accès au dossier «Home»

samba-mks.jpg.d76e6464b9fbb30dcd6e38f09cfa7b12.jpg

Agrandir la partition système

J'ai d'abord installé le nouveau système sur l'ancienne eMMC de 8 Go. Régulièrement j'ai fait des images du contenu à l'aide de mon utilitaire favori imageUSB.

Au départ, la place occupée représentait à peu près moins de la moitié de la capacité totale.

mks@mkspi:~$ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev               379M       0  379M   0% /dev
tmpfs               92M    2,4M   89M   3% /run
/dev/mmcblk1p2     6,7G    3,6G  3,1G  55% /
tmpfs              456M       0  456M   0% /dev/shm
tmpfs              5,0M       0  5,0M   0% /run/lock
tmpfs              456M     16K  456M   1% /tmp
/dev/mmcblk1p1     256M     88M  169M  35% /boot
/dev/zram1          47M    960K   43M   3% /var/log
tmpfs               92M       0   92M   0% /run/user/1000

Au fil des installations liées à l'écosystème Klipper (Klipper, Moonraker, Fluidd, Mainsail, Crowsnest, Mobileraker, PrettyGCode, OctoEverywhere, Spoolman, …) je me retrouvais comme avec l'image du système de Qidi avec moins de 1 Go disponible (système utilisé à plus de 90%)

mks@mkspi:~$ df -H
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev               398M       0  398M   0% /dev
tmpfs               96M    4,3M   92M   5% /run
/dev/mmcblk1p2     7,2G    6,4G  722M  90% /
tmpfs              478M       0  478M   0% /dev/shm
tmpfs              5,3M       0  5,3M   0% /run/lock
tmpfs              478M    8,2k  478M   1% /tmp
/dev/mmcblk1p1     269M     92M  177M  35% /boot
/dev/zram1          50M    3,8M   42M   9% /var/log
tmpfs               96M       0   96M   0% /run/user/1000

J'ai donc ré-imagé un système sur une eMMC de 16 Go à partir d'une image enregistrée de 8 Go. Pour prendre en compte la capacité de cette nouvelle mémoire, il faut procéder à un agrandissement de la partition (nul besoin de pompe comme pour d'autres agrandissements 😉 ).

sudo systemctl enable armbian-resize-filesystem && sudo reboot

Après redémarrage, la partition a été agrandie

mks@mkspi:~$ df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev               379M       0  379M   0% /dev
tmpfs               92M    4,2M   87M   5% /run
/dev/mmcblk1p2      14G    6,1G  7,6G  45% /
tmpfs              456M       0  456M   0% /dev/shm
tmpfs              5,0M       0  5,0M   0% /run/lock
tmpfs              456M    4,0K  456M   1% /tmp
/dev/mmcblk1p1     256M     88M  169M  35% /boot
/dev/zram1          47M    2,7M   41M   7% /var/log
tmpfs               92M       0   92M   0% /run/user/1000

 

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

Le système d'exploitation est fin prêt à accueillir les applications composant l'écosystème Klipper. La base étant Klipper lui-même, Moonraker pour communiquer avec Klipper, une (ou les deux) interface Web (Fluidd / Mainsail) communiquant avec Moonraker pour afficher les informations et piloter l'imprimante.

Pour réaliser ces installations, le moyen le plus simple à ce jour est d'utiliser la suite de scripts shell fournie par KIAUH

KIAUH (Klipper Installation And Update Helper)

Grâce à celui-ci, il est possible d'installer, de mettre à jour, de supprimer des éléments de la suite, juste en choisissant les bonnes options.

On commence par récupérer le dépôt Github de cet outil puis on exécutera son script shell.

1. installer le paquet "git" (au cas où il serait absent (ce qui ne devrait pas être le cas avec l'installation de la distribution Armbian Bookworm)

sudo apt update && sudo apt install -y git

2. cloner le dépôt KIAUH

cd && git clone https://github.com/dw-0/kiauh.git

L'installation en détail

Citation
mks@mkspi:~$ cd && git clone https://github.com/dw-0/kiauh.git
Clonage dans 'kiauh'...
remote: Enumerating objects: 5584, done.
remote: Counting objects: 100% (5584/5584), done.
remote: Compressing objects: 100% (1673/1673), done.
remote: Total 5584 (delta 4043), reused 5274 (delta 3879), pack-reused 0
Réception d'objets: 100% (5584/5584), 1.46 Mio | 4.99 Mio/s, fait.
Résolution des deltas: 100% (4043/4043), fait.

3. Exécuter le script

~/kiauh/kiauh.sh

 

  1. La première fenêtre donne accès au menu principal
    kiauh-installation-vierge.jpg.aa112a567eebbb5bea0ae476209c4cb7.jpg
    Rien n'est encore installé. Choisir l'option 1) [Install] pour accéder au menu des installationskiauh-installation-choix.jpg.436ad328089b4d2c9044da56b9ea72da.jpg

Installer dans l'ordre :

  1. Klipper
  2. Moonraker
  3. Mainsail
  4. Fluidd

KLIPPER

Après sélection de l'option (1), choisir la version de Python (v3 recommandée et de toute façon il n'y a pas de Python v2 installé avec la distribution Armbian Bookworm)

kiauh-installation-klipper-python3.jpg.40d52864db0013904ab5bbe9e99ed7be.jpg

Nombre d'instances de Klipper (plusieurs imprimantes)

kiauh-installation-klipper-python3-une-instance.jpg.967e736eff9bff4d22093056eb8b7ae7.jpg

L'installation se déroule

Citation

###### Installing single Klipper instance ...

###### Checking for the following dependencies:
● git
[✓ OK] Dependencies already met!

###### Cloning Klipper from https://github.com/Klipper3d/klipper ...
Clonage dans '/home/mks/klipper'...
remote: Enumerating objects: 60918, done.
remote: Counting objects: 100% (311/311), done.
remote: Compressing objects: 100% (164/164), done.
remote: Total 60918 (delta 237), reused 178 (delta 139), pack-reused 60607
Réception d'objets: 100% (60918/60918), 171.75 Mio | 5.25 Mio/s, fait.
Résolution des deltas: 100% (48823/48823), fait.
Mise à jour des fichiers: 100% (2129/2129), fait.
Déjà sur 'master'
Votre branche est à jour avec 'origin/master'.

###### Reading dependencies...
virtualenv
python3-dev
libffi-dev
build-essential
libncurses-dev
libusb-dev
avrdude
gcc-avr
binutils-avr
avr-libc
stm32flash
libnewlib-arm-none-eabi
gcc-arm-none-eabi
binutils-arm-none-eabi
libusb-1.0
pkg-config
dfu-util

###### Installing packages...
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Note : sélection de libusb-1.0-0-dev pour l'expression rationnelle « libusb-1.0 »
Note : sélection de libusb-1.0-doc pour l'expression rationnelle « libusb-1.0 »
Note : sélection de libusb-1.0-0 pour l'expression rationnelle « libusb-1.0 »
build-essential est déjà la version la plus récente (12.9).
libusb-1.0-0 est déjà la version la plus récente (2:1.0.26-1).
libusb-1.0-0 passé en « installé manuellement ».
Les paquets supplémentaires suivants seront installés :
  libexpat1-dev libftdi1 libhidapi-libusb0 libjs-jquery libjs-sphinxdoc
  libjs-underscore libncurses6 libnewlib-dev libpkgconf3 libpython3-dev
  libpython3.11 libpython3.11-dev libusb-0.1-4 pkgconf pkgconf-bin
  python3-distlib python3-filelock python3-pip-whl python3-platformdirs
  python3-setuptools-whl python3-virtualenv python3-wheel-whl python3.11-dev
Paquets suggérés :
  dfu-programmer avrdude-doc gcc-doc ncurses-doc libnewlib-doc
Paquets recommandés :
  javascript-common libstdc++-arm-none-eabi-newlib
Les NOUVEAUX paquets suivants seront installés :
  avr-libc avrdude binutils-arm-none-eabi binutils-avr dfu-util
  gcc-arm-none-eabi gcc-avr libexpat1-dev libffi-dev libftdi1
  libhidapi-libusb0 libjs-jquery libjs-sphinxdoc libjs-underscore
  libncurses-dev libncurses6 libnewlib-arm-none-eabi libnewlib-dev libpkgconf3
  libpython3-dev libpython3.11 libpython3.11-dev libusb-0.1-4 libusb-1.0-0-dev
  libusb-1.0-doc libusb-dev pkg-config pkgconf pkgconf-bin python3-dev
  python3-distlib python3-filelock python3-pip-whl python3-platformdirs
  python3-setuptools-whl python3-virtualenv python3-wheel-whl python3.11-dev
  stm32flash virtualenv
0 mis à jour, 40 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 124 Mo dans les archives.
Après cette opération, 1035 Mo d'espace disque supplémentaires seront utilisés.
Réception de :1 http://deb.debian.org/debian bookworm/main arm64 binutils-avr arm64 2.26.20160125+Atmel3.6.2-4 [1395 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main arm64 gcc-avr arm64 1:5.4.0+Atmel3.6.2-3 [14,1 MB]
Réception de :3 http://deb.debian.org/debian bookworm/main arm64 avr-libc all 1:2.0.0+Atmel3.6.2-3 [4889 kB]
Réception de :4 http://deb.debian.org/debian bookworm/main arm64 libusb-0.1-4 arm64 2:0.1.12-32 [21,5 kB]
Réception de :5 http://deb.debian.org/debian bookworm/main arm64 libftdi1 arm64 0.20-4+b1 [18,8 kB]
Réception de :6 http://deb.debian.org/debian bookworm/main arm64 libhidapi-libusb0 arm64 0.13.1-1 [15,3 kB]
Réception de :7 http://deb.debian.org/debian bookworm/main arm64 avrdude arm64 7.1+dfsg-3 [366 kB]
Réception de :8 http://deb.debian.org/debian bookworm/main arm64 binutils-arm-none-eabi arm64 2.40-2+18+b1 [2694 kB]
Réception de :9 http://deb.debian.org/debian bookworm/main arm64 dfu-util arm64 0.11-1 [41,2 kB]
Réception de :10 http://deb.debian.org/debian bookworm/main arm64 gcc-arm-none-eabi arm64 15:12.2.rel1-1 [45,1 MB]
Réception de :11 http://deb.debian.org/debian bookworm/main arm64 libexpat1-dev arm64 2.5.0-1 [135 kB]
Réception de :12 http://deb.debian.org/debian bookworm/main arm64 libffi-dev arm64 3.4.4-1 [56,0 kB]
Réception de :13 http://deb.debian.org/debian bookworm/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB]
Réception de :14 http://deb.debian.org/debian bookworm/main arm64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB]
Réception de :15 http://deb.debian.org/debian bookworm/main arm64 libjs-sphinxdoc all 5.3.0-4 [130 kB]
Réception de :16 http://deb.debian.org/debian bookworm/main arm64 libncurses6 arm64 6.4-4 [93,9 kB]
Réception de :17 http://deb.debian.org/debian bookworm/main arm64 libncurses-dev arm64 6.4-4 [336 kB]
Réception de :18 http://deb.debian.org/debian bookworm/main arm64 libnewlib-dev all 3.3.0-1.3 [262 kB]
Réception de :19 http://deb.debian.org/debian bookworm/main arm64 libnewlib-arm-none-eabi all 3.3.0-1.3 [43,6 MB]
Réception de :20 http://deb.debian.org/debian bookworm/main arm64 libpkgconf3 arm64 1.8.1-1 [35,3 kB]
Réception de :21 http://deb.debian.org/debian bookworm/main arm64 libpython3.11 arm64 3.11.2-6 [1841 kB]
Réception de :22 http://deb.debian.org/debian bookworm/main arm64 libpython3.11-dev arm64 3.11.2-6 [4395 kB]
Réception de :23 http://deb.debian.org/debian bookworm/main arm64 libpython3-dev arm64 3.11.2-1+b1 [9564 B]
Réception de :24 http://deb.debian.org/debian bookworm/main arm64 libusb-1.0-0-dev arm64 2:1.0.26-1 [83,0 kB]
Réception de :25 http://deb.debian.org/debian bookworm/main arm64 libusb-1.0-doc all 2:1.0.26-1 [193 kB]
Réception de :26 http://deb.debian.org/debian bookworm/main arm64 libusb-dev arm64 2:0.1.12-32 [37,5 kB]
Réception de :27 http://deb.debian.org/debian bookworm/main arm64 pkgconf-bin arm64 1.8.1-1 [28,9 kB]
Réception de :28 http://deb.debian.org/debian bookworm/main arm64 pkgconf arm64 1.8.1-1 [25,9 kB]
Réception de :29 http://deb.debian.org/debian bookworm/main arm64 pkg-config arm64 1.8.1-1 [13,7 kB]
Réception de :30 http://deb.debian.org/debian bookworm/main arm64 python3.11-dev arm64 3.11.2-6 [617 kB]
Réception de :31 http://deb.debian.org/debian bookworm/main arm64 python3-dev arm64 3.11.2-1+b1 [26,2 kB]
Réception de :32 http://deb.debian.org/debian bookworm/main arm64 python3-distlib all 0.3.6-1 [257 kB]
Réception de :33 http://deb.debian.org/debian bookworm/main arm64 python3-filelock all 3.9.0-1 [9460 B]
Réception de :34 http://deb.debian.org/debian bookworm/main arm64 python3-pip-whl all 23.0.1+dfsg-1 [1717 kB]
Réception de :35 http://deb.debian.org/debian bookworm/main arm64 python3-platformdirs all 2.6.0-1 [16,3 kB]
Réception de :36 http://deb.debian.org/debian bookworm/main arm64 python3-setuptools-whl all 66.1.1-1 [1111 kB]
Réception de :37 http://deb.debian.org/debian bookworm/main arm64 python3-wheel-whl all 0.38.4-2 [38,6 kB]
Réception de :38 http://deb.debian.org/debian bookworm/main arm64 python3-virtualenv all 20.17.1+ds-1 [93,9 kB]
Réception de :39 http://deb.debian.org/debian bookworm/main arm64 stm32flash arm64 0.7-1 [31,4 kB]
Réception de :40 http://deb.debian.org/debian bookworm/main arm64 virtualenv all 20.17.1+ds-1 [21,1 kB]
124 Mo réceptionnés en 13s (9570 ko/s)
Extracting templates from packages: 100%
Sélection du paquet binutils-avr précédemment désélectionné.
(Lecture de la base de données... 68159 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../00-binutils-avr_2.26.20160125+Atmel3.6.2-4_arm64.deb ...
Dépaquetage de binutils-avr (2.26.20160125+Atmel3.6.2-4) ...
Sélection du paquet gcc-avr précédemment désélectionné.
Préparation du dépaquetage de .../01-gcc-avr_1%3a5.4.0+Atmel3.6.2-3_arm64.deb ...
Dépaquetage de gcc-avr (1:5.4.0+Atmel3.6.2-3) ...
Sélection du paquet avr-libc précédemment désélectionné.
Préparation du dépaquetage de .../02-avr-libc_1%3a2.0.0+Atmel3.6.2-3_all.deb ...
Dépaquetage de avr-libc (1:2.0.0+Atmel3.6.2-3) ...
Sélection du paquet libusb-0.1-4:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../03-libusb-0.1-4_2%3a0.1.12-32_arm64.deb ...
Dépaquetage de libusb-0.1-4:arm64 (2:0.1.12-32) ...
Sélection du paquet libftdi1:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../04-libftdi1_0.20-4+b1_arm64.deb ...
Dépaquetage de libftdi1:arm64 (0.20-4+b1) ...
Sélection du paquet libhidapi-libusb0:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../05-libhidapi-libusb0_0.13.1-1_arm64.deb ...
Dépaquetage de libhidapi-libusb0:arm64 (0.13.1-1) ...
Sélection du paquet avrdude précédemment désélectionné.
Préparation du dépaquetage de .../06-avrdude_7.1+dfsg-3_arm64.deb ...
Dépaquetage de avrdude (7.1+dfsg-3) ...
Sélection du paquet binutils-arm-none-eabi précédemment désélectionné.
Préparation du dépaquetage de .../07-binutils-arm-none-eabi_2.40-2+18+b1_arm64.deb ...
Dépaquetage de binutils-arm-none-eabi (2.40-2+18+b1) ...
Sélection du paquet dfu-util précédemment désélectionné.
Préparation du dépaquetage de .../08-dfu-util_0.11-1_arm64.deb ...
Dépaquetage de dfu-util (0.11-1) ...
Sélection du paquet gcc-arm-none-eabi précédemment désélectionné.
Préparation du dépaquetage de .../09-gcc-arm-none-eabi_15%3a12.2.rel1-1_arm64.deb ...
Dépaquetage de gcc-arm-none-eabi (15:12.2.rel1-1) ...
Sélection du paquet libexpat1-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../10-libexpat1-dev_2.5.0-1_arm64.deb ...
Dépaquetage de libexpat1-dev:arm64 (2.5.0-1) ...
Sélection du paquet libffi-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../11-libffi-dev_3.4.4-1_arm64.deb ...
Dépaquetage de libffi-dev:arm64 (3.4.4-1) ...
Sélection du paquet libjs-jquery précédemment désélectionné.
Préparation du dépaquetage de .../12-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
Dépaquetage de libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Sélection du paquet libjs-underscore précédemment désélectionné.
Préparation du dépaquetage de .../13-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
Dépaquetage de libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Sélection du paquet libjs-sphinxdoc précédemment désélectionné.
Préparation du dépaquetage de .../14-libjs-sphinxdoc_5.3.0-4_all.deb ...
Dépaquetage de libjs-sphinxdoc (5.3.0-4) ...
Sélection du paquet libncurses6:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../15-libncurses6_6.4-4_arm64.deb ...
Dépaquetage de libncurses6:arm64 (6.4-4) ...
Sélection du paquet libncurses-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../16-libncurses-dev_6.4-4_arm64.deb ...
Dépaquetage de libncurses-dev:arm64 (6.4-4) ...
Sélection du paquet libnewlib-dev précédemment désélectionné.
Préparation du dépaquetage de .../17-libnewlib-dev_3.3.0-1.3_all.deb ...
Dépaquetage de libnewlib-dev (3.3.0-1.3) ...
Sélection du paquet libnewlib-arm-none-eabi précédemment désélectionné.
Préparation du dépaquetage de .../18-libnewlib-arm-none-eabi_3.3.0-1.3_all.deb ...
Dépaquetage de libnewlib-arm-none-eabi (3.3.0-1.3) ...
Sélection du paquet libpkgconf3:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../19-libpkgconf3_1.8.1-1_arm64.deb ...
Dépaquetage de libpkgconf3:arm64 (1.8.1-1) ...
Sélection du paquet libpython3.11:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../20-libpython3.11_3.11.2-6_arm64.deb ...
Dépaquetage de libpython3.11:arm64 (3.11.2-6) ...
Sélection du paquet libpython3.11-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../21-libpython3.11-dev_3.11.2-6_arm64.deb ...
Dépaquetage de libpython3.11-dev:arm64 (3.11.2-6) ...
Sélection du paquet libpython3-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../22-libpython3-dev_3.11.2-1+b1_arm64.deb ...
Dépaquetage de libpython3-dev:arm64 (3.11.2-1+b1) ...
Sélection du paquet libusb-1.0-0-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../23-libusb-1.0-0-dev_2%3a1.0.26-1_arm64.deb ...
Dépaquetage de libusb-1.0-0-dev:arm64 (2:1.0.26-1) ...
Sélection du paquet libusb-1.0-doc précédemment désélectionné.
Préparation du dépaquetage de .../24-libusb-1.0-doc_2%3a1.0.26-1_all.deb ...
Dépaquetage de libusb-1.0-doc (2:1.0.26-1) ...
Sélection du paquet libusb-dev précédemment désélectionné.
Préparation du dépaquetage de .../25-libusb-dev_2%3a0.1.12-32_arm64.deb ...
Dépaquetage de libusb-dev (2:0.1.12-32) ...
Sélection du paquet pkgconf-bin précédemment désélectionné.
Préparation du dépaquetage de .../26-pkgconf-bin_1.8.1-1_arm64.deb ...
Dépaquetage de pkgconf-bin (1.8.1-1) ...
Sélection du paquet pkgconf:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../27-pkgconf_1.8.1-1_arm64.deb ...
Dépaquetage de pkgconf:arm64 (1.8.1-1) ...
Sélection du paquet pkg-config:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../28-pkg-config_1.8.1-1_arm64.deb ...
Dépaquetage de pkg-config:arm64 (1.8.1-1) ...
Sélection du paquet python3.11-dev précédemment désélectionné.
Préparation du dépaquetage de .../29-python3.11-dev_3.11.2-6_arm64.deb ...
Dépaquetage de python3.11-dev (3.11.2-6) ...
Sélection du paquet python3-dev précédemment désélectionné.
Préparation du dépaquetage de .../30-python3-dev_3.11.2-1+b1_arm64.deb ...
Dépaquetage de python3-dev (3.11.2-1+b1) ...
Sélection du paquet python3-distlib précédemment désélectionné.
Préparation du dépaquetage de .../31-python3-distlib_0.3.6-1_all.deb ...
Dépaquetage de python3-distlib (0.3.6-1) ...
Sélection du paquet python3-filelock précédemment désélectionné.
Préparation du dépaquetage de .../32-python3-filelock_3.9.0-1_all.deb ...
Dépaquetage de python3-filelock (3.9.0-1) ...
Sélection du paquet python3-pip-whl précédemment désélectionné.
Préparation du dépaquetage de .../33-python3-pip-whl_23.0.1+dfsg-1_all.deb ...
Dépaquetage de python3-pip-whl (23.0.1+dfsg-1) ...
Sélection du paquet python3-platformdirs précédemment désélectionné.
Préparation du dépaquetage de .../34-python3-platformdirs_2.6.0-1_all.deb ...
Dépaquetage de python3-platformdirs (2.6.0-1) ...
Sélection du paquet python3-setuptools-whl précédemment désélectionné.
Préparation du dépaquetage de .../35-python3-setuptools-whl_66.1.1-1_all.deb ...
Dépaquetage de python3-setuptools-whl (66.1.1-1) ...
Sélection du paquet python3-wheel-whl précédemment désélectionné.
Préparation du dépaquetage de .../36-python3-wheel-whl_0.38.4-2_all.deb ...
Dépaquetage de python3-wheel-whl (0.38.4-2) ...
Sélection du paquet python3-virtualenv précédemment désélectionné.
Préparation du dépaquetage de .../37-python3-virtualenv_20.17.1+ds-1_all.deb ...
Dépaquetage de python3-virtualenv (20.17.1+ds-1) ...
Sélection du paquet stm32flash précédemment désélectionné.
Préparation du dépaquetage de .../38-stm32flash_0.7-1_arm64.deb ...
Dépaquetage de stm32flash (0.7-1) ...
Sélection du paquet virtualenv précédemment désélectionné.
Préparation du dépaquetage de .../39-virtualenv_20.17.1+ds-1_all.deb ...
Dépaquetage de virtualenv (20.17.1+ds-1) ...
Paramétrage de binutils-avr (2.26.20160125+Atmel3.6.2-4) ...
Paramétrage de python3-setuptools-whl (66.1.1-1) ...
Paramétrage de python3-filelock (3.9.0-1) ...
Paramétrage de binutils-arm-none-eabi (2.40-2+18+b1) ...
Paramétrage de libpython3.11:arm64 (3.11.2-6) ...
Paramétrage de python3-pip-whl (23.0.1+dfsg-1) ...
Paramétrage de gcc-arm-none-eabi (15:12.2.rel1-1) ...
Paramétrage de libusb-1.0-doc (2:1.0.26-1) ...
Paramétrage de libusb-1.0-0-dev:arm64 (2:1.0.26-1) ...
Paramétrage de python3-distlib (0.3.6-1) ...
Paramétrage de libffi-dev:arm64 (3.4.4-1) ...
Paramétrage de python3-platformdirs (2.6.0-1) ...
Paramétrage de stm32flash (0.7-1) ...
Paramétrage de libusb-0.1-4:arm64 (2:0.1.12-32) ...
Paramétrage de gcc-avr (1:5.4.0+Atmel3.6.2-3) ...
Paramétrage de libpkgconf3:arm64 (1.8.1-1) ...
Paramétrage de libexpat1-dev:arm64 (2.5.0-1) ...
Paramétrage de libpython3.11-dev:arm64 (3.11.2-6) ...
Paramétrage de libncurses6:arm64 (6.4-4) ...
Paramétrage de libnewlib-dev (3.3.0-1.3) ...
Paramétrage de libhidapi-libusb0:arm64 (0.13.1-1) ...
Paramétrage de pkgconf-bin (1.8.1-1) ...
Paramétrage de libnewlib-arm-none-eabi (3.3.0-1.3) ...
Paramétrage de libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Paramétrage de python3-wheel-whl (0.38.4-2) ...
Paramétrage de dfu-util (0.11-1) ...
Paramétrage de libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Paramétrage de libncurses-dev:arm64 (6.4-4) ...
Paramétrage de libpython3-dev:arm64 (3.11.2-1+b1) ...
Paramétrage de python3.11-dev (3.11.2-6) ...
Paramétrage de libftdi1:arm64 (0.20-4+b1) ...
Paramétrage de python3-virtualenv (20.17.1+ds-1) ...
Paramétrage de libusb-dev (2:0.1.12-32) ...
Paramétrage de avr-libc (1:2.0.0+Atmel3.6.2-3) ...
Paramétrage de pkgconf:arm64 (1.8.1-1) ...
Paramétrage de virtualenv (20.17.1+ds-1) ...
Paramétrage de pkg-config:arm64 (1.8.1-1) ...
Paramétrage de libjs-sphinxdoc (5.3.0-4) ...
Paramétrage de avrdude (7.1+dfsg-3) ...
Paramétrage de python3-dev (3.11.2-1+b1) ...
Traitement des actions différées (« triggers ») pour man-db (2.11.2-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u6) ...
[✓ OK] Klipper packages installed!

###### Installing Python 3.11.2 virtual environment...
created virtual environment CPython3.11.2.final.0-64 in 1948ms
  creator CPython3Posix(dest=/home/mks/klippy-env, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/mks/.local/share/virtualenv)
    added seed packages: pip==23.0.1, setuptools==66.1.1, wheel==0.38.4
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Requirement already satisfied: pip in /home/mks/klippy-env/lib/python3.11/site-packages (23.0.1)
Collecting pip
  Downloading pip-24.0-py3-none-any.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 4.8 MB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.0.1
    Uninstalling pip-23.0.1:
      Successfully uninstalled pip-23.0.1
Successfully installed pip-24.0
Ignoring greenlet: markers 'python_version >= "3.12"' don't match your environment
Collecting cffi==1.14.6 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 5))
  Downloading cffi-1.14.6.tar.gz (475 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 475.7/475.7 kB 2.3 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting pyserial==3.4 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 6))
  Downloading pyserial-3.4-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting greenlet==2.0.2 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 7))
  Downloading greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (4.1 kB)
Collecting Jinja2==2.11.3 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 9))
  Downloading Jinja2-2.11.3-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting python-can==3.3.4 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 10))
  Downloading python-can-3.3.4.tar.gz (179 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 179.1/179.1 kB 2.5 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting markupsafe==1.1.1 (from -r /home/mks/klipper/scripts/klippy-requirements.txt (line 11))
  Downloading MarkupSafe-1.1.1.tar.gz (19 kB)
  Preparing metadata (setup.py) ... done
Collecting pycparser (from cffi==1.14.6->-r /home/mks/klipper/scripts/klippy-requirements.txt (line 5))
  Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Collecting aenum (from python-can==3.3.4->-r /home/mks/klipper/scripts/klippy-requirements.txt (line 10))
  Downloading aenum-3.1.15-py3-none-any.whl.metadata (3.7 kB)
Collecting wrapt~=1.10 (from python-can==3.3.4->-r /home/mks/klipper/scripts/klippy-requirements.txt (line 10))
  Downloading wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.6 kB)
Downloading pyserial-3.4-py2.py3-none-any.whl (193 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 193.7/193.7 kB 6.4 MB/s eta 0:00:00
Downloading greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (612 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 612.4/612.4 kB 6.9 MB/s eta 0:00:00
Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.7/125.7 kB 4.7 MB/s eta 0:00:00
Downloading wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (80 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.9/80.9 kB 3.7 MB/s eta 0:00:00
Downloading aenum-3.1.15-py3-none-any.whl (137 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 137.6/137.6 kB 5.2 MB/s eta 0:00:00
Downloading pycparser-2.22-py3-none-any.whl (117 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 4.6 MB/s eta 0:00:00
Building wheels for collected packages: cffi, python-can, markupsafe
  Building wheel for cffi (setup.py) ... done
  Created wheel for cffi: filename=cffi-1.14.6-cp311-cp311-linux_aarch64.whl size=393786 sha256=a0976b6b5aecdc9dd14fdef4899b19e3309ad294431bbf735160449d2f153b9c
  Stored in directory: /home/mks/.cache/pip/wheels/ee/66/dc/d338d6a63e392a6a3d557af5de6a519bf4cf3440a86e7eef74
  Building wheel for python-can (setup.py) ... done
  Created wheel for python-can: filename=python_can-3.3.4-py2.py3-none-any.whl size=154198 sha256=8ea88a8f344dc627f26596d3a7e40656c8d4b4e15d7017da1b7ca7a2fdd49d32
  Stored in directory: /home/mks/.cache/pip/wheels/d3/73/e8/bd33204966a688cf05a620b221a626757a060c41ddcb5054d3
  Building wheel for markupsafe (setup.py) ... done
  Created wheel for markupsafe: filename=MarkupSafe-1.1.1-cp311-cp311-linux_aarch64.whl size=29709 sha256=ccbf132b30def49993ee96d3605a96ef9cf1844fe7b5b37f570df13cae948147
  Stored in directory: /home/mks/.cache/pip/wheels/42/2c/24/ee2a56da668805256e7c1b1d51ae9b177360788cabcdf5b9c1
Successfully built cffi python-can markupsafe
Installing collected packages: pyserial, aenum, wrapt, pycparser, markupsafe, greenlet, python-can, Jinja2, cffi
Successfully installed Jinja2-2.11.3 aenum-3.1.15 cffi-1.14.6 greenlet-2.0.2 markupsafe-1.1.1 pycparser-2.22 pyserial-3.4 python-can-3.3.4 wrapt-1.16.0

###### Creating folder '/home/mks/printer_data/backup' ...
[✓ OK] Folder '/home/mks/printer_data/backup' created!

###### Creating folder '/home/mks/printer_data/certs' ...
[✓ OK] Folder '/home/mks/printer_data/certs' created!

###### Creating folder '/home/mks/printer_data/config' ...
[✓ OK] Folder '/home/mks/printer_data/config' created!

###### Creating folder '/home/mks/printer_data/database' ...
[✓ OK] Folder '/home/mks/printer_data/database' created!

###### Creating folder '/home/mks/printer_data/gcodes' ...
[✓ OK] Folder '/home/mks/printer_data/gcodes' created!

###### Creating folder '/home/mks/printer_data/comms' ...
[✓ OK] Folder '/home/mks/printer_data/comms' created!

###### Creating folder '/home/mks/printer_data/logs' ...
[✓ OK] Folder '/home/mks/printer_data/logs' created!

###### Creating folder '/home/mks/printer_data/systemd' ...
[✓ OK] Folder '/home/mks/printer_data/systemd' created!

###### Create Klipper service file ...
[✓ OK] Klipper service file created!

###### Creating minimal example printer.cfg ...
[✓ OK] Minimal example printer.cfg created!

###### Enable klipper.service ...
Created symlink /etc/systemd/system/multi-user.target.wants/klipper.service → /etc/systemd/system/klipper.service.
[✓ OK] Enable klipper.service successfull!

###### Start klipper.service ...
[✓ OK] Start klipper.service successfull!

###### Installed brltty package detected, masking brltty service ...
[✓ OK] brltty service masked!

###### Installed brltty-udev package detected, masking brltty-udev service ...
[✓ OK] brltty-udev service masked!

###### Installed ModemManager package detected, masking ModemManager service ...
[✓ OK] ModemManager service masked!

#=======================================================#
 Klipper has been set up!
#=======================================================#

Le retour au menu principal nous confirme l'installation, le nombre d'instance, la version de Python et le dépôt installé

kiauh-klipper-installed.jpg.ed59dcd59e24944dfa42992c4c051531.jpg

MOONRAKER

Choix du menu d'installation des composants, puis choix (2) pour l'installation de Moonraker.

L'installation détecte seule combien d'instances Klipper ont été installées (ici, une seule) puis préparer son environnement

Citation

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/

###### Initializing Moonraker installation ...
[✓ OK] Klipper installation found!

###### Install Moonraker? (Y/n):
   [➔] Yes

###### Installing Moonraker ...

###### Checking for the following dependencies:
● git
● wget
● curl
● unzip
● dfu-util
● virtualenv
● libjpeg-dev
● zlib1g-dev

###### Installing the following dependencies:
● libjpeg-dev


###### Installing packages...
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  libjpeg62-turbo libjpeg62-turbo-dev
Les NOUVEAUX paquets suivants seront installés :
  libjpeg-dev libjpeg62-turbo libjpeg62-turbo-dev
0 mis à jour, 3 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 535 ko dans les archives.
Après cette opération, 1381 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://deb.debian.org/debian bookworm/main arm64 libjpeg62-turbo arm64 1:2.1.5-2 [171 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main arm64 libjpeg62-turbo-dev arm64 1:2.1.5-2 [292 kB]
Réception de :3 http://deb.debian.org/debian bookworm/main arm64 libjpeg-dev arm64 1:2.1.5-2 [71,8 kB]
535 ko réceptionnés en 0s (2493 ko/s)
Sélection du paquet libjpeg62-turbo:arm64 précédemment désélectionné.
(Lecture de la base de données... 74863 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libjpeg62-turbo_1%3a2.1.5-2_arm64.deb ...
Dépaquetage de libjpeg62-turbo:arm64 (1:2.1.5-2) ...
Sélection du paquet libjpeg62-turbo-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../libjpeg62-turbo-dev_1%3a2.1.5-2_arm64.deb ...
Dépaquetage de libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ...
Sélection du paquet libjpeg-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../libjpeg-dev_1%3a2.1.5-2_arm64.deb ...
Dépaquetage de libjpeg-dev:arm64 (1:2.1.5-2) ...
Paramétrage de libjpeg62-turbo:arm64 (1:2.1.5-2) ...
Paramétrage de libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ...
Paramétrage de libjpeg-dev:arm64 (1:2.1.5-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u6) ...
[✓ OK] Dependencies packages installed!

###### Cloning Moonraker from https://github.com/Arksine/moonraker.git ...
Clonage dans '/home/mks/moonraker'...
remote: Enumerating objects: 10747, done.
remote: Counting objects: 100% (3772/3772), done.
remote: Compressing objects: 100% (463/463), done.
remote: Total 10747 (delta 3460), reused 3527 (delta 3307), pack-reused 6975
Réception d'objets: 100% (10747/10747), 4.02 Mio | 4.70 Mio/s, fait.
Résolution des deltas: 100% (7995/7995), fait.

###### Installing dependencies ...

###### Reading dependencies...

python3-virtualenv
python3-dev
liblmdb-dev
libopenjp2-7
libsodium-dev
zlib1g-dev
libjpeg-dev
packagekit
wireless-tools
curl

###### Installing packages...
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
python3-virtualenv est déjà la version la plus récente (20.17.1+ds-1).
python3-virtualenv passé en « installé manuellement ».
python3-dev est déjà la version la plus récente (3.11.2-1+b1).
zlib1g-dev est déjà la version la plus récente (1:1.2.13.dfsg-1).
zlib1g-dev passé en « installé manuellement ».
libjpeg-dev est déjà la version la plus récente (1:2.1.5-2).
packagekit est déjà la version la plus récente (1.2.6-5).
packagekit passé en « installé manuellement ».
wireless-tools est déjà la version la plus récente (30~pre9-14).
curl est déjà la version la plus récente (7.88.1-10+deb12u5).
Les paquets supplémentaires suivants seront installés :
  liblmdb0 libsodium23
Paquets recommandés :
  lmdb-doc
Les NOUVEAUX paquets suivants seront installés :
  liblmdb-dev liblmdb0 libopenjp2-7 libsodium-dev libsodium23
0 mis à jour, 5 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 536 ko dans les archives.
Après cette opération, 1757 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://deb.debian.org/debian bookworm/main arm64 liblmdb0 arm64 0.9.24-1 [43,7 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main arm64 liblmdb-dev arm64 0.9.24-1 [60,5 kB]
Réception de :3 http://deb.debian.org/debian bookworm/main arm64 libopenjp2-7 arm64 2.5.0-2 [175 kB]
Réception de :4 http://deb.debian.org/debian bookworm/main arm64 libsodium23 arm64 1.0.18-1 [119 kB]
Réception de :5 http://deb.debian.org/debian bookworm/main arm64 libsodium-dev arm64 1.0.18-1 [137 kB]
536 ko réceptionnés en 0s (1962 ko/s)
Sélection du paquet liblmdb0:arm64 précédemment désélectionné.
(Lecture de la base de données... 74898 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../liblmdb0_0.9.24-1_arm64.deb ...
Dépaquetage de liblmdb0:arm64 (0.9.24-1) ...
Sélection du paquet liblmdb-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../liblmdb-dev_0.9.24-1_arm64.deb ...
Dépaquetage de liblmdb-dev:arm64 (0.9.24-1) ...
Sélection du paquet libopenjp2-7:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../libopenjp2-7_2.5.0-2_arm64.deb ...
Dépaquetage de libopenjp2-7:arm64 (2.5.0-2) ...
Sélection du paquet libsodium23:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../libsodium23_1.0.18-1_arm64.deb ...
Dépaquetage de libsodium23:arm64 (1.0.18-1) ...
Sélection du paquet libsodium-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../libsodium-dev_1.0.18-1_arm64.deb ...
Dépaquetage de libsodium-dev:arm64 (1.0.18-1) ...
Paramétrage de liblmdb0:arm64 (0.9.24-1) ...
Paramétrage de libsodium23:arm64 (1.0.18-1) ...
Paramétrage de libsodium-dev:arm64 (1.0.18-1) ...
Paramétrage de liblmdb-dev:arm64 (0.9.24-1) ...
Paramétrage de libopenjp2-7:arm64 (2.5.0-2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u6) ...
[✓ OK] Moonraker packages installed!

###### Installing python virtual environment...
created virtual environment CPython3.11.2.final.0-64 in 997ms
  creator CPython3Posix(dest=/home/mks/moonraker-env, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/mks/.local/share/virtualenv)
    added seed packages: pip==23.0.1, setuptools==66.1.1, wheel==0.38.4
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Requirement already satisfied: pip in ./moonraker-env/lib/python3.11/site-packages (23.0.1)
Collecting pip
  Using cached pip-24.0-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.0.1
    Uninstalling pip-23.0.1:
      Successfully uninstalled pip-23.0.1
Successfully installed pip-24.0
Looking in links: /home/mks/moonraker/scripts/python_wheels
Ignoring tornado: markers 'python_version == "3.7"' don't match your environment
Ignoring pillow: markers 'python_version == "3.7"' don't match your environment
Ignoring streaming-form-data: markers 'python_version == "3.7"' don't match your environment
Collecting tornado==6.4.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 4))
  Downloading tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.5 kB)
Collecting pyserial==3.4 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 5))
  Using cached pyserial-3.4-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting pyserial-asyncio==0.6 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 6))
  Downloading pyserial_asyncio-0.6-py3-none-any.whl.metadata (1.3 kB)
Collecting pillow==10.3.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 8))
  Downloading pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl.metadata (9.2 kB)
Collecting lmdb==1.4.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 9))
  Downloading lmdb-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (1.2 kB)
Collecting streaming-form-data==1.13.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 11))
  Downloading streaming-form-data-1.13.0.tar.gz (95 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.0/95.0 kB 1.4 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting distro==1.9.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 12))
  Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
Collecting inotify-simple==1.3.5 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 13))
  Downloading inotify_simple-1.3.5.tar.gz (9.7 kB)
  Preparing metadata (setup.py) ... done
Collecting libnacl==2.1.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 14))
  Downloading libnacl-2.1.0-py3-none-any.whl.metadata (3.0 kB)
Collecting paho-mqtt==1.6.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 15))
  Downloading paho-mqtt-1.6.1.tar.gz (99 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.4/99.4 kB 4.3 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... done
Collecting zeroconf==0.131.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 16))
  Downloading zeroconf-0.131.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.1 kB)
Collecting preprocess-cancellation==0.2.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 17))
  Downloading preprocess_cancellation-0.2.1-py3-none-any.whl.metadata (3.6 kB)
Collecting jinja2==3.1.3 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 18))
  Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)
Collecting dbus-next==0.2.3 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 19))
  Downloading dbus_next-0.2.3-py3-none-any.whl.metadata (7.0 kB)
Collecting apprise==1.7.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading apprise-1.7.1-py3-none-any.whl.metadata (44 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.0/44.0 kB 2.0 MB/s eta 0:00:00
Collecting ldap3==2.9.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 21))
  Downloading ldap3-2.9.1-py2.py3-none-any.whl.metadata (5.4 kB)
Collecting python-periphery==2.4.1 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 22))
  Downloading python_periphery-2.4.1-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting smart_open<=6.4.0 (from -r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 23))
  Downloading smart_open-6.4.0-py3-none-any.whl.metadata (21 kB)
Collecting ifaddr>=0.1.7 (from zeroconf==0.131.0->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 16))
  Downloading ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
Collecting MarkupSafe>=2.0 (from jinja2==3.1.3->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 18))
  Downloading MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (3.0 kB)
Collecting certifi (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting requests (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting requests-oauthlib (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl.metadata (11 kB)
Collecting click>=5.0 (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting markdown (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading Markdown-3.6-py3-none-any.whl.metadata (7.0 kB)
Collecting PyYAML (from apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.1 kB)
Collecting pyasn1>=0.4.6 (from ldap3==2.9.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 21))
  Downloading pyasn1-0.6.0-py2.py3-none-any.whl.metadata (8.3 kB)
Collecting charset-normalizer<4,>=2 (from requests->apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests->apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting oauthlib>=3.0.0 (from requests-oauthlib->apprise==1.7.1->-r /home/mks/moonraker/scripts/moonraker-requirements.txt (line 20))
  Downloading oauthlib-3.2.2-py3-none-any.whl.metadata (7.5 kB)
Downloading tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (435 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 435.9/435.9 kB 5.7 MB/s eta 0:00:00
Using cached pyserial-3.4-py2.py3-none-any.whl (193 kB)
Downloading pyserial_asyncio-0.6-py3-none-any.whl (7.6 kB)
Downloading pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl (4.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 6.4 MB/s eta 0:00:00
Downloading lmdb-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (301 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 301.6/301.6 kB 4.6 MB/s eta 0:00:00
Downloading distro-1.9.0-py3-none-any.whl (20 kB)
Downloading libnacl-2.1.0-py3-none-any.whl (21 kB)
Downloading zeroconf-0.131.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 5.9 MB/s eta 0:00:00
Downloading preprocess_cancellation-0.2.1-py3-none-any.whl (18 kB)
Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.2/133.2 kB 4.8 MB/s eta 0:00:00
Downloading dbus_next-0.2.3-py3-none-any.whl (57 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.9/57.9 kB 2.5 MB/s eta 0:00:00
Downloading apprise-1.7.1-py3-none-any.whl (1.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 6.7 MB/s eta 0:00:00
Downloading ldap3-2.9.1-py2.py3-none-any.whl (432 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 432.2/432.2 kB 5.9 MB/s eta 0:00:00
Downloading python_periphery-2.4.1-py2.py3-none-any.whl (36 kB)
Downloading smart_open-6.4.0-py3-none-any.whl (57 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.0/57.0 kB 2.4 MB/s eta 0:00:00
Downloading click-8.1.7-py3-none-any.whl (97 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 4.1 MB/s eta 0:00:00
Downloading ifaddr-0.2.0-py3-none-any.whl (12 kB)
Downloading MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (29 kB)
Downloading pyasn1-0.6.0-py2.py3-none-any.whl (85 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.3/85.3 kB 3.4 MB/s eta 0:00:00
Downloading certifi-2024.2.2-py3-none-any.whl (163 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 163.8/163.8 kB 3.6 MB/s eta 0:00:00
Downloading Markdown-3.6-py3-none-any.whl (105 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 105.4/105.4 kB 4.2 MB/s eta 0:00:00
Downloading PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (732 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 732.2/732.2 kB 5.6 MB/s eta 0:00:00
Downloading requests-2.31.0-py3-none-any.whl (62 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 kB 2.6 MB/s eta 0:00:00
Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)
Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (136 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 136.6/136.6 kB 4.9 MB/s eta 0:00:00
Downloading idna-3.7-py3-none-any.whl (66 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.8/66.8 kB 3.0 MB/s eta 0:00:00
Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 5.5 MB/s eta 0:00:00
Downloading urllib3-2.2.1-py3-none-any.whl (121 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 kB 4.6 MB/s eta 0:00:00
Building wheels for collected packages: streaming-form-data, inotify-simple, paho-mqtt
  Building wheel for streaming-form-data (setup.py) ... done
  Created wheel for streaming-form-data: filename=streaming_form_data-1.13.0-cp311-cp311-linux_aarch64.whl size=355800 sha256=55da5955dde096c2b1d2e0714552afa492b82b28165af611e6118f48b9c8348c
  Stored in directory: /home/mks/.cache/pip/wheels/d4/97/18/9025a411325fdb035145d6c4c8bafaed4b0ce325540f094d18
  Building wheel for inotify-simple (setup.py) ... done
  Created wheel for inotify-simple: filename=inotify_simple-1.3.5-py3-none-any.whl size=7689 sha256=d5b38900167d59f95f04adb595f1fae23ce15a85873197accf0f644b6c2466ad
  Stored in directory: /home/mks/.cache/pip/wheels/62/4d/7f/e5e1cee8d11c6cd5bde3b7a60afe4498e46123173d92dd981c
  Building wheel for paho-mqtt (setup.py) ... done
  Created wheel for paho-mqtt: filename=paho_mqtt-1.6.1-py3-none-any.whl size=62118 sha256=57545148afee0afbea31576f34cc6a2ff6620d0e0abbcb6cab8d2d6394e77ca0
  Stored in directory: /home/mks/.cache/pip/wheels/29/ea/a5/ba9a63aaf4cd4e16e8a87ee31fb4d11b04ff5e1735d312619a
Successfully built streaming-form-data inotify-simple paho-mqtt
Installing collected packages: python-periphery, pyserial, paho-mqtt, lmdb, ifaddr, zeroconf, urllib3, tornado, smart_open, PyYAML, pyserial-asyncio, pyasn1, preprocess-cancellation, pillow, oauthlib, MarkupSafe, markdown, libnacl, inotify-simple, idna, distro, dbus-next, click, charset-normalizer, certifi, streaming-form-data, requests, ldap3, jinja2, requests-oauthlib, apprise
Successfully installed MarkupSafe-2.1.5 PyYAML-6.0.1 apprise-1.7.1 certifi-2024.2.2 charset-normalizer-3.3.2 click-8.1.7 dbus-next-0.2.3 distro-1.9.0 idna-3.7 ifaddr-0.2.0 inotify-simple-1.3.5 jinja2-3.1.3 ldap3-2.9.1 libnacl-2.1.0 lmdb-1.4.1 markdown-3.6 oauthlib-3.2.2 paho-mqtt-1.6.1 pillow-10.3.0 preprocess-cancellation-0.2.1 pyasn1-0.6.0 pyserial-3.4 pyserial-asyncio-0.6 python-periphery-2.4.1 requests-2.31.0 requests-oauthlib-2.0.0 smart_open-6.4.0 streaming-form-data-1.13.0 tornado-6.4 urllib3-2.2.1 zeroconf-0.131.0

###### Creating moonraker.conf in /home/mks/printer_data/config ...
[✓ OK] moonraker.conf created!

###### Creating Moonraker Service  ...
[✓ OK] Moonraker instance created!

###### Installing Moonraker policykit rules ...


###### PolicyKit Version 122 Detected


###### Installing PolicyKit Rules to /usr/share/polkit-1/rules.d/moonraker.rules...


###### Restarting Moonraker...
[✓ OK] Moonraker policykit rules installed!

###### Enable moonraker.service ...
Created symlink /etc/systemd/system/multi-user.target.wants/moonraker.service → /etc/systemd/system/moonraker.service.
[✓ OK] Enable moonraker.service successfull!

###### Start moonraker.service ...
[✓ OK] Start moonraker.service successfull!

#=======================================================#
 Moonraker has been set up!
#=======================================================#

   ● Instance 1: 192.168.1.126:7125

Retour au menu principal, cette fois Moonraker est signalé comme installé

kiauh-moonraker-installed.jpg.ff0973c846a79300dd1d9f6e8e092bda.jpg

INTERFACES d'ACCÈS WEB

Interfaces Web permettant l'accès à partir d'un navigateur Internet à Klipper via les APIs de Moonraker choix (3) pour Mainsail et (4) pour Fluidd.

On peut n'en installer qu'une des deux, l'installation de la première, par défaut, communiquera avec le port HTTP standard (80). Pour la seconde, il faudra fournir un autre numéro de port.

MAINSAIL

Lors de cette première installation, répondre Yes (Oui) à la demande d'installation des macros «client» (PAUSE, RESUME, …)

Citation

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/

###### Checking for the following dependencies:
● wget
● nginx

###### Installing the following dependencies:
● nginx


###### Installing packages...
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
  nginx-common
Paquets suggérés :
  fcgiwrap nginx-doc ssl-cert
Les NOUVEAUX paquets suivants seront installés :
  nginx nginx-common
0 mis à jour, 2 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 606 ko dans les archives.
Après cette opération, 1708 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://deb.debian.org/debian bookworm/main arm64 nginx-common all 1.22.1-9 [112 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main arm64 nginx arm64 1.22.1-9 [494 kB]
606 ko réceptionnés en 0s (2253 ko/s)
Preconfiguring packages ...
Sélection du paquet nginx-common précédemment désélectionné.
(Lecture de la base de données... 74996 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../nginx-common_1.22.1-9_all.deb ...
Dépaquetage de nginx-common (1.22.1-9) ...
Sélection du paquet nginx précédemment désélectionné.
Préparation du dépaquetage de .../nginx_1.22.1-9_arm64.deb ...
Dépaquetage de nginx (1.22.1-9) ...
Paramétrage de nginx-common (1.22.1-9) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
Paramétrage de nginx (1.22.1-9) ...
Upgrading binary: nginx.
Traitement des actions différées (« triggers ») pour man-db (2.11.2-2) ...
[✓ OK] Dependencies packages installed!

###### Initializing Mainsail installation ...

###### Create KIAUH backup directory ...
[✓ OK] Directory created!

###### Timestamp: 240501-1719

###### Create backup of /home/mks/printer_data/config ...
[✓ OK] Backup created in:
/home/mks/kiauh-backups/configs/240501-1719/printer_data

###### Downloading Mainsail from https://github.com/mainsail-crew/mainsail/releases/latest/download/mainsail.zip ...
--2024-05-01 17:19:02--  https://github.com/mainsail-crew/mainsail/releases/latest/download/mainsail.zip
Résolution de github.com (github.com)… 140.82.121.3
Connexion à github.com (github.com)|140.82.121.3|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://github.com/mainsail-crew/mainsail/releases/download/v2.11.1/mainsail.zip [suivant]
--2024-05-01 17:19:02--  https://github.com/mainsail-crew/mainsail/releases/download/v2.11.1/mainsail.zip
Réutilisation de la connexion existante à github.com:443.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://objects.githubusercontent.com/github-production-release-asset-2e65be/240875926/9cc07641-5ed4-4195-ba80-2c13aefcd6c5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240501%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240501T151902Z&X-Amz-Expires=300&X-Amz-Signature=0bdf2e3c08915e29b1d1d8a4b89d20ce5ac4c3c9b2092134dcd7844377d5d420&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=240875926&response-content-disposition=attachment%3B filename%3Dmainsail.zip&response-content-type=application%2Foctet-stream [suivant]
--2024-05-01 17:19:02--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/240875926/9cc07641-5ed4-4195-ba80-2c13aefcd6c5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240501%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240501T151902Z&X-Amz-Expires=300&X-Amz-Signature=0bdf2e3c08915e29b1d1d8a4b89d20ce5ac4c3c9b2092134dcd7844377d5d420&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=240875926&response-content-disposition=attachment%3B filename%3Dmainsail.zip&response-content-type=application%2Foctet-stream
Résolution de objects.githubusercontent.com (objects.githubusercontent.com)… 185.199.111.133, 185.199.110.133, 185.199.108.133, ...
Connexion à objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2114772 (2,0M) [application/octet-stream]
Sauvegarde en : « mainsail.zip »

mainsail.zip        100%[===================>]   2,02M  9,79MB/s    ds 0,2s

2024-05-01 17:19:03 (9,79 MB/s) — « mainsail.zip » sauvegardé [2114772/2114772]

[✓ OK] Download complete!

###### Extracting archive ...
[✓ OK] Done!

###### Remove downloaded archive ...
[✓ OK] Done!

/=======================================================\
| It is recommended to use special macros in order to   |
| have Mainsail fully functional and working.           |
|                                                       |
| The recommended macros for Mainsail can be seen here: |
| https://github.com/mainsail-crew/mainsail-config |
|                                                       |
| If you already use these macros skip this step.       |
| Otherwise you should consider to answer with 'yes' to |
| download the recommended macros.                      |
\=======================================================/
###### Download the recommended macros? (Y/n):
   [➔] Yes

###### Cloning mainsail-config ...
Clonage dans '/home/mks/mainsail-config'...
remote: Enumerating objects: 89, done.
remote: Counting objects: 100% (56/56), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 89 (delta 51), reused 21 (delta 21), pack-reused 33
Réception d'objets: 100% (89/89), 43.76 Kio | 1.68 Mio/s, fait.
Résolution des deltas: 100% (52/52), fait.

###### Adding Mainsail-Config to update manager in file:
       /home/mks/printer_data/config/moonraker.conf

###### Restart moonraker.service ...
[✓ OK] Restart moonraker.service successfull!
[✓ OK] Done!

###### Checking for the following dependencies:
● nginx
[✓ OK] Dependencies already met!

###### Creating NGINX configuration for Mainsail ...
[✓ OK] Mainsail configured for port 80!
[✓ OK] NGINX configuration for Mainsail was set!

###### Granting NGINX the required permissions ...
[✓ OK] Done!

###### Creating symlink for /var/log/nginx/mainsail-access.log ...
[✓ OK] Symlink created: /home/mks/printer_data/logs/mainsail-access.log

###### Creating symlink for /var/log/nginx/mainsail-error.log ...
[✓ OK] Symlink created: /home/mks/printer_data/logs/mainsail-error.log

###### Adding Mainsail to update manager in file:
       /home/mks/printer_data/config/moonraker.conf

###### Restart moonraker.service ...
[✓ OK] Restart moonraker.service successfull!

#=======================================================#
 Mainsail has been set up!
#=======================================================#

Mainsail installé

kiauh-mainsail-installed.jpg.2e96c92902a4de88bdd1255132210947.jpg

FLUIDD

Mainsail (si installé en premier) utilise le port standard HTTP (80), il est nécessaire d'en indiquer un différent pour l'accès à Fluidd (Qidi Tech utilise le port 10088).

Normalement, Mainsail ayant déjà été installé, les macros (client.cfg) indispensables ont elles-aussi été ajoutées, inutile de les réinstaller pour Fluidd (répondre Non à la demande d'installation). Ces deux interfaces Web utilisent désormais les mêmes macros (PAUSE, RESUME. …).

Citation

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/

###### Checking for the following dependencies:
● wget
● nginx
[✓ OK] Dependencies already met!

###### Initializing Fluidd installation ...

###### Timestamp: 240501-1720

###### Create backup of /home/mks/printer_data/config ...
[✓ OK] Backup created in:
/home/mks/kiauh-backups/configs/240501-1720/printer_data

###### Detected other enabled interfaces:
   ● Mainsail - Port: 80

/=======================================================\
|                    !!!WARNING!!!                      |
| You need to choose a different port for Fluidd!       |
| The following web interface is listening at port 80:  |
|                                                       |
|  ● Mainsail                                           |
|                                                       |
| Make sure you don't choose a port which was already   |
| assigned to another webinterface!                     |
|                                                       |
| Be aware: there is NO sanity check for the following  |
| input. So make sure to choose a valid port!           |
\=======================================================/
Please enter a new Port: 10088
   [➔] Setting port 10088 for Fluidd!

###### Downloading Fluidd from https://github.com/fluidd-core/fluidd/releases/latest/download/fluidd.zip ...
--2024-05-01 17:20:42--  https://github.com/fluidd-core/fluidd/releases/latest/download/fluidd.zip
Résolution de github.com (github.com)… 140.82.121.3
Connexion à github.com (github.com)|140.82.121.3|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://github.com/fluidd-core/fluidd/releases/download/v1.29.1/fluidd.zip [suivant]
--2024-05-01 17:20:42--  https://github.com/fluidd-core/fluidd/releases/download/v1.29.1/fluidd.zip
Réutilisation de la connexion existante à github.com:443.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://objects.githubusercontent.com/github-production-release-asset-2e65be/295836951/71aafabe-9e9a-4a9f-b9a5-2e09cd260505?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240501%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240501T152042Z&X-Amz-Expires=300&X-Amz-Signature=299bc438661e5cadaa68d3ce18bc341ed7a4eeabafe973d269bcb6c5f53515a3&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=295836951&response-content-disposition=attachment%3B filename%3Dfluidd.zip&response-content-type=application%2Foctet-stream [suivant]
--2024-05-01 17:20:42--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/295836951/71aafabe-9e9a-4a9f-b9a5-2e09cd260505?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240501%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240501T152042Z&X-Amz-Expires=300&X-Amz-Signature=299bc438661e5cadaa68d3ce18bc341ed7a4eeabafe973d269bcb6c5f53515a3&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=295836951&response-content-disposition=attachment%3B filename%3Dfluidd.zip&response-content-type=application%2Foctet-stream
Résolution de objects.githubusercontent.com (objects.githubusercontent.com)… 185.199.109.133, 185.199.108.133, 185.199.110.133, ...
Connexion à objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 3684373 (3,5M) [application/octet-stream]
Sauvegarde en : « fluidd.zip »

fluidd.zip          100%[===================>]   3,51M  9,63MB/s    ds 0,4s

2024-05-01 17:20:43 (9,63 MB/s) — « fluidd.zip » sauvegardé [3684373/3684373]

[✓ OK] Download complete!

###### Extracting archive ...
[✓ OK] Done!

###### Remove downloaded archive ...
[✓ OK] Done!

/=======================================================\
| It is recommended to use special macros in order to   |
| have Fluidd fully functional and working.             |
|                                                       |
| The recommended macros for Fluidd can be found here:  |
| https://github.com/fluidd-core/fluidd-config |
|                                                       |
| If you already use these macros skip this step.       |
| Otherwise you should consider to answer with 'yes' to |
| download the recommended macros.                      |
\=======================================================/
###### Download the recommended macros? (Y/n): n
   [➔] No

###### Checking for the following dependencies:
● nginx
[✓ OK] Dependencies already met!

###### Creating NGINX configuration for Fluidd ...
[✓ OK] Fluidd configured for port 10088!
[✓ OK] NGINX configuration for Fluidd was set!

###### Granting NGINX the required permissions ...
[✓ OK] Done!

###### Creating symlink for /var/log/nginx/fluidd-access.log ...
[✓ OK] Symlink created: /home/mks/printer_data/logs/fluidd-access.log

###### Creating symlink for /var/log/nginx/fluidd-error.log ...
[✓ OK] Symlink created: /home/mks/printer_data/logs/fluidd-error.log

###### Adding Fluidd to update manager in file:
       /home/mks/printer_data/config/moonraker.conf

###### Restart moonraker.service ...
[✓ OK] Restart moonraker.service successfull!

#=======================================================#
 Fluidd has been set up!
#=======================================================#

A l'issue de ces installations:

kiauh-fluidd-installed.jpg.a4ae35e4a3ec9f3926ee0c1ab94d369a.jpg

 

-----------------------------------------------------------------------

Installations facultatives mais bien pratiques

-----------------------------------------------------------------------

CROWSNEST

Crowsnest est responsable de la configuration et du contrôle des webcams (même en l'absence de caméra, autant l'installer de suite).

Citation

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/

###### Cloning 'crowsnest' repository ...
Clonage dans '/home/mks/crowsnest'...
remote: Enumerating objects: 1698, done.
remote: Counting objects: 100% (320/320), done.
remote: Compressing objects: 100% (163/163), done.
remote: Total 1698 (delta 197), reused 235 (delta 150), pack-reused 1378
Réception d'objets: 100% (1698/1698), 656.79 Kio | 3.08 Mio/s, fait.
Résolution des deltas: 100% (1021/1021), fait.

###### Checking for the following dependencies:
● git
● make
[✓ OK] Dependencies already met!
Installer will prompt you for sudo password!

###### Launching crowsnest installer ...
crowsnest - A webcam daemon for multiple cams and stream services.

        Ahoy!
        Thank you for installing crowsnest 😉
        This will take a while ...
        Please reboot after the installation has finished.

Running apt-get update first ...

Atteint :1 http://security.debian.org bookworm-security InRelease
Atteint :2 http://deb.debian.org/debian bookworm InRelease
Réception de :3 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]
Réception de :4 http://deb.debian.org/debian bookworm-backports InRelease [56,5 kB]
Atteint :5 http://fi.mirror.armbian.de/apt bookworm InRelease
Réception de :6 http://deb.debian.org/debian bookworm-backports/main arm64 Packages.diff/Index [63,3 kB]
Réception de :7 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb).diff/Index [63,4 kB]
Réception de :8 http://deb.debian.org/debian bookworm-backports/main all Contents (deb).diff/Index [63,6 kB]
Réception de :9 http://deb.debian.org/debian bookworm-backports/main arm64 Packages T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [3429 B]
Réception de :10 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb) T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [401 B]
Réception de :9 http://deb.debian.org/debian bookworm-backports/main arm64 Packages T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [3429 B]
Réception de :10 http://deb.debian.org/debian bookworm-backports/main arm64 Contents (deb) T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [401 B]
Réception de :11 http://deb.debian.org/debian bookworm-backports/main all Contents (deb) T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [579 B]
Réception de :11 http://deb.debian.org/debian bookworm-backports/main all Contents (deb) T-2024-05-01-1413.56-F-2024-05-01-1413.56.pdiff [579 B]
307 ko réceptionnés en 10s (29,6 ko/s)
Lecture des listes de paquets…
Running apt-get update first ... [OK]
Doing some tests ...

Checking for mjpg-streamer ...

Checking for mjpg-streamer ... [OK]
Checking for camera-streamer dependencies ...

Checking if device is a Raspberry Pi ...

Checking if device is a Raspberry Pi ... [FAILED]
This device is not a Raspberry Pi therefore camera-streeamer cannot be installed ...
Doing some tests ... [OK]
Installing without camera-streamer ...

Installing dependencies ...

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait
git est déjà la version la plus récente (1:2.39.2-1.1).
bsdutils est déjà la version la plus récente (1:2.38.1-5+deb12u1).
findutils est déjà la version la plus récente (4.9.0-4).
curl est déjà la version la plus récente (7.88.1-10+deb12u5).
build-essential est déjà la version la plus récente (12.9).
libjpeg-dev est déjà la version la plus récente (1:2.1.5-2).
Les paquets supplémentaires suivants seront installés :
  libevent-2.1-7 libevent-extra-2.1-7 libevent-openssl-2.1-7
  libevent-pthreads-2.1-7 libmd-dev libv4l-0 libv4l2rds0 libv4lconvert0
  python3-iniparse
Les NOUVEAUX paquets suivants seront installés :
  crudini libbsd-dev libevent-2.1-7 libevent-dev libevent-extra-2.1-7
  libevent-openssl-2.1-7 libevent-pthreads-2.1-7 libmd-dev libv4l-0
  libv4l2rds0 libv4lconvert0 python3-iniparse v4l-utils
0 mis à jour, 13 nouvellement installés, 0 à enlever et 8 non mis à jour.
Il est nécessaire de prendre 1953 ko dans les archives.
Après cette opération, 8080 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://deb.debian.org/debian bookworm/main arm64 python3-iniparse all 0.5-1 [21,9 kB]
Réception de :2 http://deb.debian.org/debian bookworm/main arm64 crudini arm64 0.9.4-1 [18,6 kB]
Réception de :3 http://deb.debian.org/debian bookworm/main arm64 libmd-dev arm64 1.0.4-2 [47,4 kB]
Réception de :4 http://deb.debian.org/debian bookworm/main arm64 libbsd-dev arm64 0.11.7-2 [242 kB]
Réception de :5 http://deb.debian.org/debian bookworm/main arm64 libevent-2.1-7 arm64 2.1.12-stable-8 [168 kB]
Réception de :6 http://deb.debian.org/debian bookworm/main arm64 libevent-extra-2.1-7 arm64 2.1.12-stable-8 [101 kB]
Réception de :7 http://deb.debian.org/debian bookworm/main arm64 libevent-pthreads-2.1-7 arm64 2.1.12-stable-8 [53,7 kB]
Réception de :8 http://deb.debian.org/debian bookworm/main arm64 libevent-openssl-2.1-7 arm64 2.1.12-stable-8 [59,7 kB]
Réception de :9 http://deb.debian.org/debian bookworm/main arm64 libevent-dev arm64 2.1.12-stable-8 [302 kB]
Réception de :10 http://deb.debian.org/debian bookworm/main arm64 libv4lconvert0 arm64 1.22.1-5+b2 [141 kB]
Réception de :11 http://deb.debian.org/debian bookworm/main arm64 libv4l-0 arm64 1.22.1-5+b2 [107 kB]
Réception de :12 http://deb.debian.org/debian bookworm/main arm64 libv4l2rds0 arm64 1.22.1-5+b2 [80,3 kB]
Réception de :13 http://deb.debian.org/debian bookworm/main arm64 v4l-utils arm64 1.22.1-5+b2 [610 kB]
1953 ko réceptionnés en 0s (4501 ko/s)
Sélection du paquet python3-iniparse précédemment désélectionné.
(Lecture de la base de données... 75051 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../00-python3-iniparse_0.5-1_all.deb ...
Dépaquetage de python3-iniparse (0.5-1) ...
Sélection du paquet crudini précédemment désélectionné.
Préparation du dépaquetage de .../01-crudini_0.9.4-1_arm64.deb ...
Dépaquetage de crudini (0.9.4-1) ...
Sélection du paquet libmd-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../02-libmd-dev_1.0.4-2_arm64.deb ...
Dépaquetage de libmd-dev:arm64 (1.0.4-2) ...
Sélection du paquet libbsd-dev:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../03-libbsd-dev_0.11.7-2_arm64.deb ...
Dépaquetage de libbsd-dev:arm64 (0.11.7-2) ...
Sélection du paquet libevent-2.1-7:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../04-libevent-2.1-7_2.1.12-stable-8_arm64.deb ...
Dépaquetage de libevent-2.1-7:arm64 (2.1.12-stable-8) ...
Sélection du paquet libevent-extra-2.1-7:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../05-libevent-extra-2.1-7_2.1.12-stable-8_arm64.deb ...
Dépaquetage de libevent-extra-2.1-7:arm64 (2.1.12-stable-8) ...
Sélection du paquet libevent-pthreads-2.1-7:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../06-libevent-pthreads-2.1-7_2.1.12-stable-8_arm64.deb ...
Dépaquetage de libevent-pthreads-2.1-7:arm64 (2.1.12-stable-8) ...
Sélection du paquet libevent-openssl-2.1-7:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../07-libevent-openssl-2.1-7_2.1.12-stable-8_arm64.deb ...
Dépaquetage de libevent-openssl-2.1-7:arm64 (2.1.12-stable-8) ...
Sélection du paquet libevent-dev précédemment désélectionné.
Préparation du dépaquetage de .../08-libevent-dev_2.1.12-stable-8_arm64.deb ...
Dépaquetage de libevent-dev (2.1.12-stable-8) ...
Sélection du paquet libv4lconvert0:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../09-libv4lconvert0_1.22.1-5+b2_arm64.deb ...
Dépaquetage de libv4lconvert0:arm64 (1.22.1-5+b2) ...
Sélection du paquet libv4l-0:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../10-libv4l-0_1.22.1-5+b2_arm64.deb ...
Dépaquetage de libv4l-0:arm64 (1.22.1-5+b2) ...
Sélection du paquet libv4l2rds0:arm64 précédemment désélectionné.
Préparation du dépaquetage de .../11-libv4l2rds0_1.22.1-5+b2_arm64.deb ...
Dépaquetage de libv4l2rds0:arm64 (1.22.1-5+b2) ...
Sélection du paquet v4l-utils précédemment désélectionné.
Préparation du dépaquetage de .../12-v4l-utils_1.22.1-5+b2_arm64.deb ...
Dépaquetage de v4l-utils (1.22.1-5+b2) ...
Paramétrage de libevent-extra-2.1-7:arm64 (2.1.12-stable-8) ...
Paramétrage de libevent-openssl-2.1-7:arm64 (2.1.12-stable-8) ...
Paramétrage de libevent-2.1-7:arm64 (2.1.12-stable-8) ...
Paramétrage de libv4lconvert0:arm64 (1.22.1-5+b2) ...
Paramétrage de libmd-dev:arm64 (1.0.4-2) ...
Paramétrage de libv4l2rds0:arm64 (1.22.1-5+b2) ...
Paramétrage de libbsd-dev:arm64 (0.11.7-2) ...
Paramétrage de python3-iniparse (0.5-1) ...
Paramétrage de libevent-pthreads-2.1-7:arm64 (2.1.12-stable-8) ...
Paramétrage de crudini (0.9.4-1) ...
Paramétrage de libv4l-0:arm64 (1.22.1-5+b2) ...
Paramétrage de libevent-dev (2.1.12-stable-8) ...
Paramétrage de v4l-utils (1.22.1-5+b2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.36-9+deb12u6) ...
Traitement des actions différées (« triggers ») pour man-db (2.11.2-2) ...
Install dependencies ... [OK]
Reading configuration ...
No user configuration file found ...
Using default configuration ... [OK]
Creating file structure ...
Directory /home/mks/printer_data/config already exists ...
Directory /home/mks/printer_data/logs already exists ...
Directory /home/mks/printer_data/systemd already exists ...
Creating file structure ... [OK]
Link crowsnest to /usr/local/bin ... [OK]
Install service file ... [OK]
Install environment file ... [OK]
Install logrotate configuration ... [OK]
Install crowsnest.conf ... [OK]
Enable crowsnest.service ... [OK]
Add User mks to group 'video' ... [SKIPPED]
        ==> User mks is already in group 'video'
Build dependend Stream Apps ...
Cloning ustreamer repository ...
Clonage dans 'bin/ustreamer'...
remote: Enumerating objects: 201, done.
remote: Counting objects: 100% (201/201), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 201 (delta 69), reused 119 (delta 36), pack-reused 0
Réception d'objets: 100% (201/201), 178.44 Kio | 2.44 Mio/s, fait.
Résolution des deltas: 100% (69/69), fait.
Note : basculement sur '9ec59143dda445859e0ddb4027b44029ced5ac14'.

Vous êtes dans l'état « HEAD détachée ». Vous pouvez visiter, faire des modifications
expérimentales et les valider. Il vous suffit de faire un autre basculement pour
abandonner les commits que vous faites dans cet état sans impacter les autres branches

Si vous voulez créer une nouvelle branche pour conserver les commits que vous créez,
il vous suffit d'utiliser l'option -c de la commande switch comme ceci :

  git switch -c <nom-de-la-nouvelle-branche>

Ou annuler cette opération avec :

  git switch -

Désactivez ce conseil en renseignant la variable de configuration advice.detachedHead à false

Install of camera-streamer skipped, only supported on Raspberry SBC's! ...
Build 'ustreamer' using 2 Cores ...
make apps
make[1] : on entre dans le répertoire « /home/mks/crowsnest/bin/ustreamer »
make -C src
make[2] : on entre dans le répertoire « /home/mks/crowsnest/bin/ustreamer/src »
-- CC libs/base64.c
-- CC libs/capture.c
-- CC libs/fpsi.c
-- CC libs/frame.c
-- CC libs/frametext.c
-- CC libs/frametext_font.c
-- CC libs/logging.c
-- CC libs/memsink.c
-- CC libs/memsinksh.c
-- CC libs/options.c
-- CC libs/queue.c
-- CC libs/ring.c
-- CC libs/signal.c
-- CC libs/tc358743.c
-- CC libs/unjpeg.c
-- CC ustreamer/blank.c
-- CC ustreamer/data/favicon_ico.c
-- CC ustreamer/data/index_html.c
-- CC ustreamer/encoder.c
-- CC ustreamer/encoders/cpu/encoder.c
-- CC ustreamer/encoders/hw/encoder.c
-- CC ustreamer/http/bev.c
-- CC ustreamer/http/mime.c
-- CC ustreamer/http/path.c
-- CC ustreamer/http/server.c
-- CC ustreamer/http/static.c
-- CC ustreamer/http/unix.c
-- CC ustreamer/http/uri.c
-- CC ustreamer/m2m.c
-- CC ustreamer/main.c
-- CC ustreamer/options.c
-- CC ustreamer/stream.c
-- CC ustreamer/workers.c
-- CC dump/file.c
-- CC dump/main.c
== LD ustreamer.bin
== LD ustreamer-dump.bin
make[2] : on quitte le répertoire « /home/mks/crowsnest/bin/ustreamer/src »
for i in src/*.bin; do \
        test ! -x $i || ln -sf $i `basename $i .bin`; \
done
make[1] : on quitte le répertoire « /home/mks/crowsnest/bin/ustreamer »
Build 'ustreamer' ... [SUCCESS]
'/home/mks/crowsnest/bin/camera-streamer' does not exist! Build skipped ... [WARN]


Do you want to add 'update manager' entry to your moonraker.conf? [Y/n]: Y
Trying to add 'update manager' entry to moonraker.conf ...
Adding Crowsnest Update Manager entry to moonraker.conf ...  [OK]

Installation successful.

        Reboot your machine for the changes to take effect!

Reboot NOW? [y/N]: N

Not to reboot may cause issues!
Reboot as soon as possible!

Goodbye ...

Crowsnest installé

kiauh-crowsnest-installed.jpg.6fb6109fa40165dac4490e6d6eddc9ad.jpg

 

 NOTE IMPORTANTE

Un redémarrage du système sera nécessaire pour prendre pleinement en compte cette installation de Crowsnest

GCODE SHELL COMMAND

Permet d'étendre les fonctionnalités des macros G-code en utilisant des scripts shell.

Choix (4) du menu principal puis dans le nouveau menu choix (8)

kiauh-gcode-shell-command.jpg.42e11145eec33c428206486120aa6bcd.jpg

Citation

/=======================================================\
|     ~~~~~~~~~~~~~~~~~ [ KIAUH ] ~~~~~~~~~~~~~~~~~     |
|        Klipper Installation And Update Helper         |
|     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     |
\=======================================================/
/=======================================================\
| You are about to install the 'G-Code Shell Command'   |
| extension. Please make sure to read the instructions  |
| before you continue and remember that potential risks |
| can be involved after installing this extension!      |
|                                                       |
| You accept that you are doing this on your own risk!  |
\=======================================================/
###### Do you want to continue? (Y/n):
   [➔] Yes

###### Installing gcode shell command extension ...

###### Stop klipper.service ...
[✓ OK] Stop klipper.service successfull!

###### Copy 'gcode_shell_command.py' to '/home/mks/klipper/klippy/extras' ...
[✓ OK] Done!

###### Create an example shell command? (Y/n):
   [➔] Yes

###### Timestamp: 240501-1727

###### Create backup of /home/mks/printer_data/config ...
[✓ OK] Backup created in:
/home/mks/kiauh-backups/configs/240501-1727/printer_data

###### Copy shell_command.cfg to /home/mks/printer_data/config ...
[✓ OK] /home/mks/printer_data/config/shell_command.cfg created!

###### Restart klipper.service ...
[✓ OK] Restart klipper.service successfull!

#=======================================================#
 Shell command extension installed!
#=======================================================#

A la fin de ces installations, l'écosystème Klipper est prêt. Mon eMMC de 8Go est occupée à plus de 60%, il reste encore plus de 2.5Go disponibles (avec le système originel, on disposait de moins de 1Go).

 

 NOTE IMPORTANTE

Le menu principal affiche ce qui a été installé, le choix (2) permet de vérifier les versions des composants que l'on pourra mettre à jour si besoin

kiauh-update-menu.jpg.0afe5865f80fb54b39901ed8c2a4cf42.jpg

Les premières tentatives d'accès que ce soit avec Fluidd ou Mainsail affichent des messages d'erreurs

Mainsail                                                                                                                 

mainsail-error-no-printercfg.jpg.5241849e1e9a685e43bf657da83030aa.jpg                

Fluidd

 fluidd-error-no-printercfg.jpg.1adcda70af3404cb8e4f51648e7396db.jpg

Le fichier de configuration, printer.cfg installé par Klipper est minimaliste, vous devez le remplacer par le fichier printer.cfg que vous avez sauvegarder avant toute cette installation avec Fluidd ou Mainsail, vous devez également ajouter ces 2 fichiers : MKS_THR.cfg et include MCU_ID.cfg

Après enregistrement et redémarrage les erreurs sont plus précises, vous avez :

Capture.thumb.PNG.90b582fa47658dfd6816f5001756905e.PNG

Là il vous indique tout simplement qu'avec la dernière version de Klipper v0.12 les firmware ne sont pas à jour

---------------------------------------------------------------

Mainsail (et Fluidd) possède une bonne documentation. Ce lien (Mainsail) explique la raison de ce message d'erreur «MCU protocol error»:

De temps en temps, des changements sont réalisés dans la communication Klipper entre l'hôte et le MCU. Cela nécessite de mettre à jour tous vos MCU pour corriger l'erreur de communication.

---------------------------------------------------------------

Le firmware Klipper n'est à jour sur aucun des MCUs utilisés. Le dépôt Klipper a installé une version 0.12.x alors que les firmwares Klipper flashés sur les MCUs sont en version 0.10.x (version utilisée par Two Trees).

Il reste à installer le firmware Klipper sur les MCU (Micro Controler Unit) de l'imprimante :

  • carte contrôleur (STM32F402)
  • la carte MKS-THR de la tête (RP2040)
  • le Linux MCU (nommé fréquemment «rpi»)
Modifié (le) par pascal_lb
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

RAPPEL 

La carte mère «tout-en-un» s'occupe à la fois du fonctionnement de Klipper (klippy) via le système d'exploitation et de la gestion matérielle (voir ce sujet pour plus d'explications si besoin) via les firmwares installés sur chaque MCU.

Les deux unités ci-dessous communiquent via une liaison série directement câblée.

  • une unité de calcul (SBC)
  • une unité de contrôle (MCU)

image.thumb.jpeg.0c20f9ca6cec4715de83a43af5e1320c.jpeg

Jusqu'à maintenant, on s'est occupé de la partie «unité de calculs» installée sur le système d'exploitation, il reste la partie MCU à mettre en place.

FIRMWARE KLIPPER

FIRMWARE, GÉNÉRALITÉS

Pour chacun des contrôleurs (MCU):

  • principal
  • secondaire (la tête «MKS-THR»)
  • Linux

les étapes à suivre sont quasi identiques:

  1. se placer dans le répertoire Klipper du dossier personnel de l'utilisateur «mks»: cd ~/klipper ou cd /home/mks/klipper ou si on est déjà dans le dossier perso cd klipper ou cd ./klipper
  2. configurer le firmware: make menuconfig
  3. dans la fenêtre de configuration, sélectionner les paramètres adéquats (dépend de chaque MCU)
  4. sauvegarder cette configuration
  5. préparer la compilation: make clean
  6. compiler: make (le microcontrôleur RK3328 possédant plusieurs cœurs, utiliser une compilation parallèle à l'aide de make -j4)
  7. à l'issue de la compilation, récupérer le firmware dans le dossier out (~/klipper/out/). Le nom du fichier compilé dépend des directives de compilation ( klipper.bin / klipper.uf2 / klipper.elf )
  8. flasher ce firmware sur le MCU ( la méthode dépend du MCU à flasher )

Connaissant le principe, on va pouvoir entrer dans les détails.

PRÉREQUIS

Quelques outils sont nécessaires:

  • clés Allen
  • Fer à souder maxi 30w
  • Etain avec âme décapante
  • Cable USB / 
  • carte μSD, clé USB ou adaptateur USB/μSD
  • logiciels:
    • pour l'accès distant (SSH)
    • pour le transfert de fichiers entre matériels en réseau

PRÉPARATION MATÉRIELLE

 Imprimante éteinte

  • accéder au dessous de l'imprimante pour retirer les vis du capot renfermant l'électronique
  • retirer ce capot

  Mettre sous tension l'Imprimante

  • accéder à l'aide d'un client SSH à l'imprimante via son adresse IP

  • se connecter en utilisateur mks (mot de passe par défaut si inchangé: makerbase)

  • se déplacer dans le dossier klipper

cd klipper
  • vérifier que l'on est dans le dossier correct

pwd

MCU PRINCIPAL

Configurer le firmware Klipper

Connecté en ssh, lancer la suite de commandes:

cd ~/klipper
make clean
make menuconfig

Le menu de configuration du firmware apparait, choisir les options :

  • cocher «Enable extra low-level»
  • STMicroelectronic STM32 comme famille de contrôleur
    image.jpeg
  • Processor model (STM32F401) (le STM32F402 de la carte en est un 😉)
    image.jpeg.e263a12c4495c23fcf5012e166897c4c.jpeg
  • Bootloader offset (32 Kio bootloader)
    image.jpeg.c844129fff27b5b6d390f752e6bad35f.jpeg
  • Communication interface (USB (on PA11/PA12)
    usb.PNG.d107509f5158dc90ceb91f8a2ba579bb.PNG
  • Au final, la configuration complète doit être comme ci-dessous :
    final.PNG.41138ea13c5168f8dd9f36e3df1274d1.PNG
  • une fois ces options sélectionnées, presser Q pour sortir de ce menu, valider par Y pour sauvegarder la configuration
    image.jpeg.782fce394055f2a8990e8d749638eff3.jpeg

Compiler

  • compiler le firmware (utiliser une compilation parallèle à l'aide de plusieurs cœurs du contrôleur RK3328 => paramètre -j4)
make -j4
  • attendre que le processus se termine
    image.jpeg.e44d0c68e1f05a664ade2201e15f5d4f.jpeg

Le firmware compilé se trouve dans le dossier ~/klipper/out et porte le nom klipper.bin

Flasher le firmware

Le processus de flashage utilise une carte μSD (formatée FAT32 d'une capacité de moins de 32 Go) introduite dans le lecteur de carte μSD situé sur la carte mère

carte_sk1.jpg.c75f030795a5d259deb436537dda8dae.jpg

Important

Pour que le flashage réussisse, le fichier klipper.bin doit porter un nom précis : mks_skipr_mini.bin

Important 

Reste à récupérer ce fichier, le renommer puis le copier à la racine de la carte μSD

Récupérer (télécharger) le firmware

Plusieurs méthodes permettent de le faire :

  1. le copier dans le répertoire de configuration de Klipper (~/printer_data/config) c'est la méthode que j'ai utilisé 😉
cp ~/klipper/out/klipper.bin ~/printer_data/config/mks_skipr_mini.bin

Le récupérer ensuite en utilisant Fluidd (clic droit sur le fichier, télécharger)

image.jpeg.487c5f4a7d9a9efacb61f3ac41c4b255.jpeg

  1. le mettre à disposition sur le réseau local via Python qui possède un serveur web
python3 -m http.server -d "/home/mks/klipper/out" 8888

Une fois le serveur lancé sur le port utilisé dans la commande précédente (8888):
- via un navigateur, accéder à l'adresse http://adresse-ip-imprimante:8888
image.jpeg.961845df2a55b4a201023078c4233e7f.jpeg
récupérer le fichier klipper.bin
- le renommer en mks_skipr_mini.bin
- le copier sur la carte μSD
- CTRL + C pour interrompre et quitter le serveur Web
image.jpeg

  1. Si Samba a été ajouté au système, on peut accéder au répertoire personnel de l'utilisateur «mks» à partir de l'explorateur de fichiers
    image.jpeg.67cf0cbda3b0d1001993a084bc04b3b6.jpeg
  2. Si l'automontage de périphériques de stockage a été installé sur le système, utiliser une clé USB adaptateur SD après l'avoir insérée :
cp ~/klipper/out/klipper.bin ~/printer_data/gcodes/USB/mks_skipr_mini.bin

Procéder au flashage

une fois le fichier mks_skipr_mini.bin recopié à la racine de la carte μSD:

  • introduire celle-ci dans le lecteur de carte
  • allumer l'imprimante (si elle était allumée, l'éteindre et patienter au moins 30 secondes, le temps que le supercondensateur se décharge, allumer alors)
  • Patienter (très peu de temps), le temps que le processus de flashage se termine
Modifié (le) par pascal_lb
Lien vers le commentaire
Partager sur d’autres sites

MCU Linux (contrôleur de la carte X-4 / X-6, Rockchip RK3328)

Source

Les microcontrôleurs dédiés au contrôle des imprimantes 3D disposent d'un nombre limité et pré-configuré de broches gérant les principales fonctions d'impression (thermistances, extrudeurs, pilotes moteurs, …). L'utilisation du contrôleur, ici le Rockchip RK3328 où Klipper est installé, en tant que MCU secondaire donne la possibilité d'utiliser directement les GPIO et les bus (i2c, spi) du contrôleur directement via Klipper

Installer le script RC

Une étape préliminaire est nécessaire: pour utiliser l'hôte comme MCU secondaire, un daemon système (klipper_mcu) doit être installé. Son démarrage devra se faire avant celui de Klipper

cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service

Configurer Klipper

cd ~/klipper/
make menuconfig

Le menu de configuration du firmware apparait, choisir les options :

  • cocher «Enable extra low-level»
  • Linux process comme contrôleur
    image.jpeg.1e1954d6ea2bf6342878bf1b55da223c.jpeg
  • au final :
    image.jpeg.5f9a724b0cc476cacdd80bd90253ff8b.jpeg
  • une fois ces options sélectionnées, presser Q pour sortir de ce menu, valider par Y pour sauvegarder la configuration
    image.jpeg.27bab4d86cfb1ac88ac238f342bdaba4.jpeg

Flasher

  • compiler et installer le nouveau code du microcontrôleur
sudo systemctl stop klipper
make flash
sudo systemctl start klipper
  • pour utiliser ce «MCU», il faut ajouter au fichier printer.cfg la section suivante :
[mcu host]
serial: /tmp/klipper_host_mcu

 

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

MCU tête (carte THR contrôleur RP2040)

C'est maintenant qu'il va falloir faire un peu de soudure

Il faut préparer un cable USB et lui mettre une prise JST-XH 2.54 femelle (4 broches), personnellement j'ai récupéré un morceau de câble avec la prise sur un ancien câble moteur

cable.thumb.jpg.dccd7df1eead65d4f3155fc81ada157f.jpg

Bien respecter les couleurs (droite sur la photo c'est le câble blanc 😉

1722120071135.thumb.jpg.e987d7616cb448c4815c46d70bcedaa9.jpg

  • à l'aide d'un petit tournevis cruciforme, retirer les quatre vis de fixation du capot arrière de la tête pour pouvoir accéder à la carte fille «MKS-THR» 
  • dévisser la vis qui maintient la chaine câble au dessus de la tête
  • retirer le passe fils en haut et à l'arrière de la tête (2 vis cruciforme)
  • débrancher la grosse prise noire à 4 fils sur le haut de la carte THR

flash-step-1.jpg.a1e039960d4cf370eb60b28f6a1a06c4.jpg

Crédit photo Tom's Basement

dévisser les 4 vis de maintient de la carte fille, vous pouvez maintenant basculer la carte, attention la carte peut être collé...

Sur la carte THR il faut soudeur une prise JST-XH 2.54 male (4 broches)

usb-header.jpg.a0e7fdce687c172db0ff00c41b5dd483.jpg

Crédit photo Tom's Basement

Sur le dos de la carte, en bas à droite on peut voir la prise soudé ainsi que le sens du branchement

fil rouge => 5v

fil noir => G

fil vert => D+

fil blanc => D-

arriere_carte.thumb.jpg.685eae9ce2670ac15424a8e733a75417.jpg

Vous pouvez maintenant refixer la carte avec les 4 vis cruciformes, mais ne remontez pas le capot arrière 

Préparer le firmware

Connecté en ssh, lancer la suite de commandes:

cd ~/klipper
make clean
make menuconfig

Le menu de configuration du firmware apparait, choisir les options :

  • cocher «Enable extra low-level»
  • RP2040 comme contrôleur
    image.jpeg.49b9164368c32c45a5b8fbc0d5d24d27.jpeg
  • Pas de chargeur de démarrage
  • UART0 on GPIO0/GPIO1 comme interface de communication
     image.png.442c23ef20a21ff306bc5e03946c266f.png
  •  ce qui donne comme configuration complète:
     image.png.e6a178f8df979ac3425f7781f4d055e1.png
  • une fois ces options sélectionnées, presser Q pour sortir de ce menu, valider par Y pour sauvegarder la configuration
    image.jpeg.8d058de61b72b58517bf1e4bd5b6f6e9.jpeg
  • compiler le firmware 'make'. On peut profiter d'une compilation parallèle en utilisant plusieurs cœurs du contrôleur RK3328 avec un 'make -j4'
  • attendre que le processus se termine
    image.jpeg.1c09fac2f52d50c5aa401257b3889225.jpeg

Le firmware a été compilé et se trouve dans le dossier ~/klipper/out et porte le nom klipper.uf2

 

Flasher le firmware

Pour flasher ce firmware, le contrôleur RP2040 doit passer en mode émulation du stockage (BOOTSEL mode).

Maintenant il faut dans l'ordre :

  • éteindre l'imprimante
  • Débrancher le câble avec la prise noire en haut de la carte THR
  • brancher le câble USB 
  • brancher la prise JST-XH
  • appuyer sur le bouton Boot (bouton juste au dessus de la prise que vous avez soudée)
  • mettre en route la machine (maintenir le bouton Boot appuyé pendant une trentaine de secondes pour donner le temps à la machine de démarrer)
  • se connecter en SSH
  • et faire
make flash FLASH_DEVICE=2e8a:0003

Vous devriez avoir :

Citation

mks@mkspi:~/klipper$ make flash FLASH_DEVICE=2e8a:0003
  Building rp2040_flash
gcc -c -Wall -ggdb -I../rp2040/ `pkg-config libusb-1.0 --cflags` main.c -o main.o
gcc -c -Wall -ggdb -I../rp2040/ `pkg-config libusb-1.0 --cflags` picoboot_connection.c -o picoboot_connection.o
gcc  main.o picoboot_connection.o `pkg-config libusb-1.0 --libs` -o rp2040_flash
  Flashing out/klipper.uf2 to 2e8a:0003
sudo lib/rp2040_flash/rp2040_flash out/klipper.uf2
Loaded UF2 image with 131 pages
Found rp2040 device on USB bus 2 address 2
Flashing...
Resetting interface
Locking
Exiting XIP mode
Erasing
Flashing
Rebooting device

Le RP2040 de la carte THR a été flashé

Vous prouvez maintenant :

  • éteindre la machine
  • débrancher le câble USB/JST-XH
  • rebrancher le câble en haut de la carte THR

avant de remettre le capot il est préférable de vérifier que tout fonctionne :

  • allumer l'imprimante
  • se connecter via fluidd ou mainsail

Vous devriez avoir à peu près ces messages d'erreurs et ne plus avoir de message concernant la carte THR

Capture.PNG.965019aa16d2d65fd411c02645fe086f.PNG

Fluidd / Mainsail sont plutôt explicites et donnent la solution

  • il faut supprimer le "max_accel_to_decel" dans le printer.cfg c'est une option «dépréciée» qui à terme sera abandonnée
  • modifier la section [virtual_sdcard] dans le printer.cfg en 
[virtual_sdcard]
path: ~/printer_data/gcodes

Ensuite après enregistrement et redémarrage vous ne devriez plus avoir d'erreur 

Arrivé à ce stade, votre SK1 est fonctionnel en la pilotant par fluidd ou mainsail via le port ethernet

Quelques infos complémentaires pour prouver que l'on est bien sur la version d'Armbian Bookworm  😉

Capture.PNG.9ecd6c3aab7669819f1e9d8d25e3f917.PNG

Capture2.PNG.f64a77ee2d6fca4c4a59b9c506a0c2a7.PNG

 

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

Wifi

Jusqu'à maintenant le wifi n'était pas opérationnel, voici la procédure pour l'ajouter :

  • si vous avez remis la plaque du dessous de la SK1, il va falloir la démonter pour accéder à l'électronique
  • retirer l'eMMC et branchez le sur l'adaptateur eMMC/USB et branchez le sur votre PC
  • fermer toutes les fenêtres vous demandant de formater le lecteur
  • dans l'explorateur windows vous avez accès à la partition /boot (qui est en fat32)
  • rendez vous dans le répertoire /boot/dtb/rockchip/ 
  • recherchez le fichier rk3328-roc-cc.dtb et renommez le par exemple en rk3328-roc-cc.dtb.bookworm
  • maintenant vous allez prendre ce fichier rk3328-roc-cc.dtb.txt
  • le renommer en rk3328-roc-cc.dtb (j'ai juste mis l'extension .txt pour pouvoir l'ajouter sur ce forum)
  • copier le dans le répertoire /boot/dtb/rockchip/
  • vous allez maintenant pouvoir remettre l'eMMC sur votre Sk1 et la redémarrer

Il va falloir maintenant l'activer

  • connectez vous en SSH
sudo iwconfig

le retour va vous donner ça

sudo iwconfig
[sudo] Mot de passe de mks :
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

ouvrez l'utilitaire réseau nmtui

sudo nmtui

image.png.cc51c80466ee9662492536474085aaa1.png

allez à Modifier une connexion 

nmtui.PNG.4713b092cfbf2c9a4bec8103b0a257c7.PNG

<Ajouter>, vous entrez le nom du profil et le périphérique comme indiquer ci-dessous et vous <validez>

nmtui_3.PNG.c81845e528abf1343665ce0f957c4925.PNG

ça devient comme ça :

image.png.72d9d2602618642f3a7e89aee52840d9.png

et une fois enregistré c'est le système qui demande directement les SSID et mot de passe

image.png.b21361dd38c432fca1d3314b5fd3b0ff.png

Vous <validez> et vous redémarrez votre SK1

Pour vérifier, et pour connaitre votre adresse IP wifi (wlan0) ouvrez Fluidd et allez dans Information système

image.png.75f4fd2e543fb66b60042a86da91801d.png

Au passage vous voyez que le système n'occupe que 5.1 Go 😉

Voilà c'est terminé, vous avez maintenant un système récent qui peut être mis à jour via Fluidd ou Mainsail

Votre Two Trees SK1 est totalement opérationnelle 😉

Concernant l'écran celui d'origine comme annoncé au début de ce tuto ne fonctionnera pas, je reviendrai compléter ce tuto avec une solution qu'a donné @fran6p (mon maitre, mon prof 😇) pour sa Qidi x-max3

Pour ma part, j'attend l'arrivée d'un écran BIGTREETECH K-Touch et je ne manquerai pas de vous faire un retour.

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

la-ola.gif.90dfc7ce48209766835b0f0215fa3c57.gif

Beau boulot

Et une nouvelle imprimante libérée de ses chaines 😄

 

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

Posté(e) (modifié)

Voilà j'ai reçu et installé l'écran BIGTREETECH K-Touch

k-touch.png.24790cec381a973d7a4200a99aa55ba9.png 

Si vous souhaitez un écran ayant à peu près les mêmes fonctionnalités que l'écran d'origine de la SK1 le K-Touch fera le job.

Très facile d'installation, le K-Touch se connectera via Wifi => Wifi ou Ethernet de votre imprimante

J'ai créé un support pour l'installer sur la SK1 support_ecran_ktouch_v2.stl

il vous faudra 2 vis M3x12 et 2 vis M3x8 et 2 écrous M3

image.png.21bd6aa7f83e79cf7d782b80203a9643.png

 

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

  • 2 weeks later...
Posté(e) (modifié)

ÉCRAN TACTILE

Nous l'avons vu plus haut, on ne peut pas garder l'écran d'origine de la Two Trees SK1, l'écran BIGTREETECH K-Touch est une option mais ne correspond pas à mes attentes, j'ai donc décidé de me tourner vers la solution que propose notre ami @fran6p pour sa Qidi X-max3

Matériels nécessaires

  • un écran tactile, par exemple celui-ci de Bigtreetech ( BTT HDMI 5" , manuel )
  • un SBC, par exemple un Raspberry Pi 0 v2 ou ce kit avec câblage et radiateur
  • un câble HDMI avec les bons connecteurs ou pour le côté RPi0v2 un adaptateur HDMI femelle vers HDMI mini mâle
  • un câble USB pour la gestion du tactile
  • une alimentation 5V 3A, elle servira à alimenter la carte PI et l'écran, j'ai utilisé un chargeur de téléphone Xiaomi
  • une carte μSD (8 Go ou plus)

Logiciel nécessaire

Installation du système Raspberry Pi OS

  • Prendre la la carte μSD et la brancher sur votre ordinateur
  • lancer le logiciel Raspberry Pi Imager
  • dans model de Raspberry Pi on sélectionne le type de carte, dans mon cas Raspberry Pi Zero 2W
  • dans système d'exploitation on sélectionne  Raspberry Pi OS (other) => Raspberry Pi OS lite, Bookworm, 64 bits
  • dans stockage on sélectionne la carte μSD
  • après avoir cliqué sur suivant vous avez cet écran

image.png.7a1b04da23a5161b87a49e10ffe95d1c.png

Modifier réglages

image.png.85da76d5edaa252d5f63c12b9bb48010.png

Remplir cette fenêtre avec les mêmes paramètres que ci-dessus (pour peu que vous habitiez en France et que votre langue soit le français 😉, utilisateur «mks» avec son mot de passe «makerbase» et en dessous les paramètres de votre réseau wifi, enregistrer, cliquer sur oui, encore une fois sur oui et maintenant l'écriture de votre OS commence.

Une fois l'installation et la vérification terminée, en fonction de l'écran HDMI, utilisé, il faut réaliser quelques ajustements dans le fichier config.txt (/bootfs/config.txt).  Le dossier /bootfs est sur une partition en FAT32, avec l'explorateur Windows on peut donc y accéder pour éditer ce fichier.

Pour mon écran, voici les lignes que j'ai ajoutées en fin de fichier (si vous utilisez un autre écran, veuillez consulter le site web du fabricant) :

# BTT HDMI5
hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
hdmi_drive=2

Enregistrer ces modifications, éjecter proprement la carte SD

  • démarrer le Raspberry Pi 0v2 avec la carte μSD sur laquelle l'OS a été installé
  • récupérer par tout moyen approprié l'adresse IP du RPi0v2 et s'y connecter en ssh avec par exemple Putty (vous connaissez la procédure😉)
  • faire les mises à jour
sudo apt update && sudo apt upgrade -y
  • installer git (normalement déjà présent mais ça ne peut pas faire de mal)
$ sudo apt install git -y
  • comme on n'installe pas Klipper, créer les dossiers printer_data/config et printer_data/logs
mkdir -p ~/printer_data/config ~/printer_data/logs
  • cloner le dépôt KIAUH
git clone https://github.com/dw-0/kiauh
  • lancer KIAUH
./kiauh/kiauh.sh
  • dans KIAUH, installer KlipperScreen choix 1 [Install] puis 5 [KlipperScreen]
  • quitter KIAUH
  • créer le fichier de configuration KlipperScreen.conf ( K et S en majuscules 😉 )
cd printer_data/config
nano KlipperScreen.conf
  • ajouter ces lignes de configuration, quitter nano en enregistrant ces modifications)

Le fichier KlipperScreen.conf :

[main]

[printer Nom-de-l-imprimante-a-afficher]
moonraker_host: IP-de-l-imprimante
moonraker_port: 7125

…
Ce qui donne par exemple chez moi :
[main]

[printer SK1]
moonraker_host: 192.168.0.40
moonraker_port: 7125
  • redémarrer le RPi
sudo shutdown -r now  (ou sudo reboot)

Si vous avez tout branché, à l'issue du redémarrage, si tout s'est bien passé, l'écran de Klipperscreen s'affiche...

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

Posté(e) (modifié)

Voilà l'écran fonctionne très bien, pas de latence bien que les commandes passent par le wifi, certaines macros devront être adaptées pour qu'elles fonctionnent avec l'écran.

J'ai modifié un support pour l'adapter à la SK1, l'écran BTT HDMI 5" V1.2 a les prises USB et HDMI derrière la carte et ça prend beaucoup de place 

IMG_20240816_015525.thumb.jpg.dc4d209c99046cebb85bf49dfe38b136.jpg

IMG_20240816_015123.thumb.jpg.ff0f52c34d771453d39b698ddb886c03.jpg

IMG_20240816_015157.thumb.jpg.2bac3a0d2801dab8627b04dafc336b1a.jpg

Certains diront que la vitre de la porte est sale... Et bien oui je n'ai pas encore donné un coup de propre 😉

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

Posté(e) (modifié)

Voici les fichiers STL du support d'écran BTT HDMI 5" v1.2, c'est une version modifié du model "Creality K1 BTT HDMI 5 v1.2 Mount"

ecran bbt hdmi 5-devant.stlecran bbt hdmi 5-fond.stlecran bbt hdmi 5-piece_1.stlecran bbt hdmi 5-piece_2.stl

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

Posté(e) (modifié)

Maintenant que vous avez tout installé, une petite astuce pour avoir comme sur cette image les températures du processeur Rockchip, du RP2040 et du STM32 

image.png.a9cef4c8167394115e23488be45f0254.png

Dans le fichier printer.cfg ajouter le code ci dessous

#################################################
#             Temperature settings              #
#################################################

# Affichage températures du processeur et du contrôleur
# dans l'interface Fluidd
[temperature_sensor Rockchip] # RK3328
sensor_type: rpi_temperature 
sensor_type: temperature_host
min_temp: 5
max_temp: 80

#[temperature_sensor mcu_temp] #STM32F401
[temperature_sensor STM32]
sensor_type: temperature_mcu

[temperature_sensor RP2040] # RP2040
sensor_type: temperature_mcu
sensor_mcu: MKS_THR
min_temp: 0
max_temp: 80

Enregistrer, redémarrer et le tour est joué 😉

Pas de panique si vous voyez la température du processeur Rockchip monter à 50/55° c'est normal  

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

Posté(e) (modifié)

Une deuxième astuce, si vous avez le kit enclosure pour la Two Tree SK1 avec le ventilateur additionnel et le ventilateur de filtration et que vous utilisez OrcaSlicer il y a une modification à faire pour que ces ventilateurs soient pris en compte 

Attention si vous avez l'OS de la machine et l'écran d'origine, ne pas faire ces modifications sous peine de ne plus pouvoir commander les ventilateurs via l'écran 

Dans le fichier printer.cfg vous allez devoir remplacer ces lignes :

#[fan]
#pin: MKS_THR:gpio3

#[fan_generic Side_fan]
#pin: PC9

#[fan_generic Filter_fan]
#pin: PC12

par ces lignes (source OrcaSlicer:

# instead of using [fan], we define the default part cooling fan with [fan_generic] here
# this is the default part cooling fan
[fan_generic fan0]
pin: MKS_THR:gpio3
cycle_time: 0.01
hardware_pwm: false

# this is the auxiliary fan
# comment out it if you don't have auxiliary fan
[fan_generic fan2]
pin: PC9
cycle_time: 0.01
hardware_pwm: false

# this is the exhaust fan
# comment out it if you don't have exhaust fan
[fan_generic fan3]
pin: PC12
cycle_time: 0.01
hardware_pwm: false

[gcode_macro M106]
gcode:
    {% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
    {% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
    SET_FAN_SPEED FAN={fan} SPEED={speed}

Vous devrez ensuite activer ces ventilateurs dans ce slicer

Le ventilateur additionnel ou auxiliaire dans paramètres de l'imprimante :

image.png.3d098ed27fa2df5f452d8a3bc9b840fd.png

Dans réglages du filament => refroidissement (vous devez le mettre à 100% sinon il ne tournera pas)  :

image.png.659a9d18cee802715e3521c00553d0da.png

Pour le ventilateur de filtration ou d'extraction dans Réglages filament => refroidissement :

image.png.9ef0452c97b732b94a05478db3b0575e.png

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

Posté(e) (modifié)

Si comme moi vous êtes passé sous Bookworm, un écran tactile connecté via un Pi zéro et Klipperscreen vous allez vous apercevoir que certaines fonctionnalités ne fonctionnent plus avec ce nouvel écran, par exemple le chargement et le déchargement du filament...

En effet dans votre fichier printer.cfg la macro originale pour les chargements se nomme "LOAD_MATERIAL" hors pour que cela fonctionne avec le nouvel écran elle doit se nommer "LOAD_FILAMENT" et de manière identique la macro de déchargement se nomme "UNLOAD_MATERIAL" et doit se nommer maintenant "UNLOAD_FILAMENT"

Comme d'autres macros appellent ces macros de chargement et de déchargement, j'ai du faire des modifications dans ces autres macros, j'ai fait également quelques modifs pour que par exemple le système vous demande un préchauffage avant un chargement ou un déchargement.

Remplacer la macro PAUSE :

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
variable_pause_detected: 0
gcode:
    {% if pause_detected == 0 %}
        M400 
        {% set current_temp = printer.extruder.temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=saved_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unsaved_temperature VALUE={current_temp}
        {% set current_bed = printer["heater_bed"].temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_bed VALUE={current_bed}

        {% set z = params.Z|default(10)|int %}                                                   
        {% set e = params.E|default(2.5) %} 
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}                             
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}                                              
        SAVE_GCODE_STATE NAME=PAUSE                                                                  
        M25                                                                              
        {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %}       
        G91
            M83
            G1 E-{e} F2100
        G1 Z{z} F900                                                                     
        {% else %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
        {% endif %}
        SAVE_GCODE_STATE NAME=PAUSEPARK
        G90                                                                                  
        G1 X10 Y220 F6000
        G1 E{e} F2100	
        SET_IDLE_TIMEOUT TIMEOUT=43200        
        SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=load_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unload_detected VALUE=1
    {% endif %}

par :

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
variable_pause_detected: 0
gcode:
    {% if pause_detected == 0 %}
        M400 
        {% set current_temp = printer.extruder.temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=saved_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unsaved_temperature VALUE={current_temp}
        {% set current_bed = printer["heater_bed"].temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_bed VALUE={current_bed}

        {% set z = params.Z|default(10)|int %}                                                   
        {% set e = params.E|default(2.5) %} 
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}                             
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}                                              
        SAVE_GCODE_STATE NAME=PAUSE                                                                  
        M25                                                                              
        {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %}       
        G91
            M83
            G1 E-{e} F2100
        G1 Z{z} F900                                                                     
        {% else %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
        {% endif %}
        SAVE_GCODE_STATE NAME=PAUSEPARK
        G90                                                                                  
        G1 X10 Y220 F6000
        G1 E{e} F2100	
        SET_IDLE_TIMEOUT TIMEOUT=43200        
        SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=load_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unload_detected VALUE=1
    {% endif %}

 

Remplacer la macro CANCEL_PRINT :

[gcode_macro CANCEL_PRINT]
variable_runout_detected: 0
rename_existing: BASE_CANCEL_PRINT
gcode:
    SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} 
    SDCARD_RESET_FILE
    M400 							            ; wait for buffer to clear
    G92 E0 							          ; zero the extruder
    G1 E-1.0 F1200 				      ; retract filament
    TURN_OFF_HEATERS
    M107 							            ; turn off fan
    G28 X0 Y0
    M84
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=load_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unload_detected VALUE=0

Par :

[gcode_macro CANCEL_PRINT]
variable_runout_detected: 0
rename_existing: BASE_CANCEL_PRINT
gcode:
    SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} 
    SDCARD_RESET_FILE
    M400 							            ; wait for buffer to clear
    G92 E0 							          ; zero the extruder
    G1 E-1.0 F1200 				      ; retract filament
    TURN_OFF_HEATERS
    M107 							            ; turn off fan
    G28 X0 Y0
    M84
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=load_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unload_detected VALUE=0

 

Remplacer la macro END_PRINT :

[gcode_macro END_PRINT]
gcode:
    G4 P10000
    Side_fan_Off
    Filter_fan_Off
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=load_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unload_detected VALUE=0

Par :

[gcode_macro END_PRINT]
gcode:
    G4 P10000
    Side_fan_Off
    Filter_fan_Off
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=load_detected VALUE=0
    SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unload_detected VALUE=0

 

Remplacer la macro LOAD_MATERIAL :

[gcode_macro LOAD_MATERIAL]
variable_load_detected: 0
variable_saved_temperature: 240
gcode:
											   
																																		  
			  
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=1
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=1
    SAVE_GCODE_STATE NAME=recovery_state
    G92 E0 
    PUSH
    {% if load_detected == 1 %}
        M104 S{saved_temperature}
    {% else %}
        M104 S0
    {% endif %}
    RESTORE_GCODE_STATE NAME=recovery_state
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=0
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=0

Par la macro LOAD_FILAMENT :

[gcode_macro LOAD_FILAMENT]
variable_load_detected: 0
variable_saved_temperature: 240
gcode:
    {% if printer.extruder.temperature < 180 %}
    RESPOND TYPE=error MSG='{"Load filament aborted !!! %s° not hot enough, please heat more than 180°" % printer.extruder.temperature}'
    {% else %}
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=1
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=1
    SAVE_GCODE_STATE NAME=recovery_state
    G92 E0 
    PUSH
    {% if load_detected == 1 %}
        M104 S{saved_temperature}
    {% else %}
        M104 S0
    {% endif %}
    RESTORE_GCODE_STATE NAME=recovery_state
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=0
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=0
    {% endif %}

 

Remplacer la macro UNLOAD_MATERIAL :

[gcode_macro UNLOAD_MATERIAL]
variable_unload_detected: 0
variable_unsaved_temperature: 240
gcode:
											   
																																		  
			  
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=1
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=1
    SAVE_GCODE_STATE NAME=recovery_state
    G92 E0  
    M109 S220
    M400
    M83
    G1 E100 F300 
    INVERT
    G4 P20000
    INVERT
    M83
    G1 E-30 F30
    M83
    G1 E-20 F1800
    M83
    G1 E-30 F300
    M400
    {% if unload_detected == 1 %}
        M104 S{unsaved_temperature}
    {% else %}
        M104 S0
    {% endif %}
    RESTORE_GCODE_STATE NAME=recovery_state
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=0
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=0

Par la macro UNLOAD_FILAMENT :

[gcode_macro UNLOAD_FILAMENT]
variable_unload_detected: 0
variable_unsaved_temperature: 240
gcode:
    {% if printer.extruder.temperature < 180 %}
    RESPOND TYPE=error MSG='{"Load filament aborted !!! %s° not hot enough, please heat more than 180°" % printer.extruder.temperature}'
    {% else %}
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=1
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=1
    SAVE_GCODE_STATE NAME=recovery_state
    G92 E0  
    M109 S220
    M400
    M83
    G1 E100 F300 
    INVERT
    G4 P20000
    INVERT
    M83
    G1 E-30 F30
    M83
    G1 E-20 F1800
    M83
    G1 E-30 F300
    M400
    {% if unload_detected == 1 %}
        M104 S{unsaved_temperature}
    {% else %}
        M104 S0
    {% endif %}
    RESTORE_GCODE_STATE NAME=recovery_state
    SET_GCODE_VARIABLE MACRO=INSERT_FILA VARIABLE=insert_watchdog VALUE=0
    SET_GCODE_VARIABLE MACRO=RUNOUT_FILA VARIABLE=runout_watchdog VALUE=0
    {% endif %}

 

Remplacer la macro RUNOUT_FILA :

[gcode_macro RUNOUT_FILA]
variable_runout_watchdog: 0
gcode:
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=1
    SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_flag VALUE=1
    {% if printer["output_pin caselight"].value == 0 %}
        SET_PIN PIN=caselight VALUE=1
        SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_light VALUE=0
    {% else %}
        SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_light VALUE=1
    {% endif %}
    {% if runout_watchdog == 0 %}
        SAVE_GCODE_STATE NAME=runout_state
        {% set current_temp = printer.extruder.temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=saved_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unsaved_temperature VALUE={current_temp}
        
        SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL VARIABLE=load_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=UNLOAD_MATERIAL VARIABLE=unload_detected VALUE=1
        
        RESTORE_GCODE_STATE NAME=runout_state
    {% endif %}

    {% for i in range(4) %} #8
        SET_PIN PIN=biii VALUE=1
        G4 P300
        SET_PIN PIN=biii VALUE=0
        G4 P200
    {% endfor %}
    SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1

Par :

[gcode_macro RUNOUT_FILA]
variable_runout_watchdog: 0
gcode:
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=pause_detected VALUE=1
    SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_flag VALUE=1
    {% if printer["output_pin caselight"].value == 0 %}
        SET_PIN PIN=caselight VALUE=1
        SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_light VALUE=0
    {% else %}
        SET_GCODE_VARIABLE MACRO=INSERT_BII VARIABLE=insert_light VALUE=1
    {% endif %}
    {% if runout_watchdog == 0 %}
        SAVE_GCODE_STATE NAME=runout_state
        {% set current_temp = printer.extruder.temperature %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=resume_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=saved_temperature VALUE={current_temp}
        SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unsaved_temperature VALUE={current_temp}
        
        SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=load_detected VALUE=1
        SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=unload_detected VALUE=1
        
        RESTORE_GCODE_STATE NAME=runout_state
    {% endif %}

    {% for i in range(4) %} #8
        SET_PIN PIN=biii VALUE=1
        G4 P300
        SET_PIN PIN=biii VALUE=0
        G4 P200
    {% endfor %}
    SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1

 

Voilà ce fut long mais c'est fini 😉

Si vous avez des questions ou remarques sur ce tuto, merci d'ouvrir un autre sujet en spécifiant que c'est pour la version Bookworm pour SK1

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

Il n'y a pas de notion d'alias pour les macros ?

ou l'équivalent de faire une macro B qui appel juste une macro A pour faire des alias d'une même fonction ?

Lien vers le commentaire
Partager sur d’autres sites

On pourrait effectivement mais TT dans un soucis de transparence ☹️ mettait dans le printer.cfg des macros qui n'étaient pas complètes par rapport au macros qui étaient dans l'écran, exemple dans LOAD_FILAMENT le contrôle de la température fonctionnait avec l'écran mais n'y ai pas dans le printer.cfg

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

Citation

l n'y a pas de notion d'alias pour les macros ?

Si ça existe mais ça ne fonctionnera pas toujours 😉

Il suffit de créer une macro avec un nom différent.

Exemple avec PRINT_START qu'on trouve parfois sous la dénomination START_PRINT.

Si on a déjà la macro PRINT_START, on peut en faire un alias nommé START_PRINT :

[Gcode_macro START_PRINT]
description: alias de PRINT_START
gcode:
  PRINT_START {rawparams} 

Je n'ai rien inventé 😉 Les guides de Zippy sont une bonne lecture.

🙂

  • Merci ! 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...