Guide to Switching Klipper Versions
This document applies only to FLYOS-FAST. The operations described below are intended for compatibility with plugins that genuinely require third-party Klipper branches and are not recommended as a routine upgrade method.
After switching to Kalico or the official Klipper version, custom features of FLYOS-FAST such as power-loss resume and USB drive printing will become unavailable. Please keep the system's built-in Klipper if you need these features.
Before switching, back up /usr/share/printer_data/config. Downloading the target version and replacing the runtime directory must be performed separately to avoid leaving an incomplete /data/klipper after a network interruption.
Install Kalico
Pull or Update Kalico
This step requires a connection to GitHub but will not modify the currently used /data/klipper.
cd /data
if [ -d /data/kalico/.git ]; then
git -C /data/kalico pull --ff-only
else
git clone https://github.com/KalicoCrew/kalico.git /data/kalico
fi
Switch the Runtime Directory
Proceed only after confirming the pull was successful and that /data/klipper-flyos-fast does not exist:
systemctl stop klipper
mv /data/klipper /data/klipper-flyos-fast
mv /data/kalico /data/klipper
systemctl start klipper
systemctl is-active klipper
A return of active only indicates that the service has started. You still need to check the Klipper logs and confirm that the printer configuration has no version compatibility errors.
Install Official Klipper
Pull or Update the Official Version
cd /data
if [ -d /data/klipper-upstream/.git ]; then
git -C /data/klipper-upstream pull --ff-only
else
git clone https://github.com/Klipper3d/klipper.git /data/klipper-upstream
fi
Switch the Runtime Directory
Proceed only after confirming the pull was successful and that /data/klipper-flyos-fast does not exist:
systemctl stop klipper
mv /data/klipper /data/klipper-flyos-fast
mv /data/klipper-upstream /data/klipper
systemctl start klipper
systemctl is-active klipper
Restore FLYOS-FAST Built-in Klipper
Before restoring, confirm that /data/klipper-flyos-fast is the original directory preserved during the switch:
systemctl stop klipper
mv /data/klipper "/data/klipper-third-party-$(date +%Y%m%d-%H%M%S)"
mv /data/klipper-flyos-fast /data/klipper
systemctl start klipper
systemctl is-active klipper
Once the restoration is successful, the service status should return to active, and the FLYOS-FAST custom features will again use the system's built-in implementation. The current third-party directory will be retained with a timestamped name and will not be deleted directly.