Keď som asi pred dvomi rokmi staval Tridenta, ako mozog som použil vtedy aktuálny Armbian založený na Debiane 11 s úpravami od BTT. Je už trocha zastaralý, tak sa dnes pozrieme na to, ako som ho upgradol na Bookworma (12).
Obával som sa tohto upgradu, ale tým, že ako základ v BTT použili štandardný Armbian, len s vlastným kernelom s drobnými úpravami pre BTT-CB1, nejednalo sa o žiadnu drámu. Má to však svoje špecifiká a tak som to radšej spísal pre budúce generácie a predpokladám, že i budúce verzie Armbianu sa budú upgradovať podobne. Upgrade tiež nerieši starší kernel 5.x, takže ak chcete novší kernel 6.x, musíte si ho tiež upgradovať ručne, ale lepšie je začať na zelenej lúke. Odzálohujte si konfiguráciu a stiahnite si novší image od BTT, ktorý už je založený priamo na štandardnom Armbiane Bookworm a používa teda aj štandardný kernel. Mne sa s tým nechcelo prcať, tak som 5.x kernel neriešil lebo funguje dobre.
Upgrade som musel rozložiť do niekoľkých fáz. Je treba aktualizovať samotný Armbian 11, potom všetko pod Mainsailom, až následne sa môže upgradovať Armbian na Bookworm. Tým sa rozbijú environmenty Moonrakera a Klippera, ktoré treba následne doaktualizovať a tým by mal byť upgrade hotový. Dosť bolo kecov, poďme na to.
Fáza prvá – ak nemáte v systéme nejaké chuťovky, aktualizácia Armbian Bullseye sa urobí štandardným spôsobom:
sudo apt -y update
sudo apt -y upgrade
Dobehnete tým všetko, čo sa stihlo v Bullseye aktualizovať a ak ste to robili pravidelne, nemalo by to ani dlho trvať.
Fáza druhá – treba aktualizovať všetky moduly v Mainsaile, aby boli v zelenom stave UP-TO-DATE. Ani tu by ste nemali mať problémy, ak nemáte nejakú veľmi starú inštaláciu. Buď kliknete na hromadný update, alebo si to zaktualizujte jedno po druhom, ak sa bojíte, že by sa vám to rozsypalo.
Tretia fáza – upgrade OS na Bookworm. V /etc/apt/sources.list presmerujeme všetko na Bookworm a upravíme aj názov non-free repozitára, keďže v Bookworme sa to zmenilo. Následne spustíme plný upgrade:
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i 's/non-free/non-free-firmware/g' /etc/apt/sources.list
sudo apt -y update
sudo apt -y full-upgrade
sudo reboot
Počas tohto procesu dostanete pár otázok, ja som na ne odpovedal takto:
Vy samozrejme zvolíte odpovede, ktoré vyhovujú vašej konfigurácii. Napríklad posledná voľba by vám mohla rozbiť ssh, ak ho máte nejako prispôsobené pre vlastné potreby. Ja nič podobné nemám, takže nový súbor mi neuškodil. Práve naopak sudoers je dobré si zachovať, lebo v ňom máte vlastné zmeny takmer určite. Ak sa nič nezosypalo, po reboote by vám mal systém normálne nabehnúť, avšak ako som spomínal, bude rozbitý Moonraker aj Klipper, takže Mainsail vám nenabehne.
Štvrá fáza – aktualizácia environmentov Moonrakera a Klippera by nám mala tento problém vyriešiť. Ako prvé si stiahnite príkaz get-pip:
curl https://bootstrap.pypa.io/get-pip.py -o ~/get-pip.py
Keď ho máte stiahnutý, aktivujte si Moonraker environment, stiahnite si pip a aktualizujte a doinštalujte čo treba. Potom Moonraker-env deaktivujte a zreštartujte servis:
source ~/moonraker-env/bin/activate
python ~/get-pip.py
python -m pip install --upgrade pip setuptools wheel
pip install importlib-metadata pyserial
deactivate
sudo systemctl restart moonraker
Obdobne postupujeme aj s Klipperom. Aktivujte environment, stiahnite si pip a potom aktualizujte a doinštalujte príslušné moduly:
source ~/klippy-env/bin/activate
python ~/get-pip.py
python -m pip install --upgrade pip setuptools wheel
pip install greenlet cffi jinja2 pyserial python-can
Tým by sme mali aktualizáciu hotovú, no ešte treba skontrolovať, či sa nič nepokašľalo. Pozrite si logy Klippera aj Moonrakera pomocou príkazu journalctl, pri Moonrakeri si dajte trocha načas, najprv vyzerá neaktívne, ale ešte si dotiahne nejaké závislosti:
journalctl -fu klipper
journalctl -fu moonraker
Ak je všetko v poriadku, stačí servisy pre istotu zreštartovať a následne môžete Klipper-env deaktivovať a nastaviť policykit pravidlá:
sudo systemctl restart klipper
sudo systemctl restart moonraker
deactivate
~/moonraker/scripts/set-policykit-rules.sh
Ako posledný krok je ešte treba reinštalovať KlipperScreen. Nebýva v ňom nič zásadné, takže ja som jeho environment proste zmazal a spustil som čerstvú inštaláciu. Ako si ju skonfigurujete je už na vás (ja som dal default a X):
rm -rf ~/.KlipperScreen-env/
~/KlipperScreen/scripts/KlipperScreen-install.sh
Teraz je aj vhodný čas skontrolovať, či netreba reinštalovať, alebo aktualizovať pluginy čo máte, ako napríklad Klipper LED plugin a podobne. Ja pluginy veľmi nevyužívam a tie čo mám sa rozbehli, takže som ich zatiaľ nechal tak. To však nemusí byť váš prípad, takže tento krok rozhodne nevynechajte.
No a úplné finále je očistenie Bookworma od osirelých balíkov štandardným príkazom, ja som nevynechal ani reboot, ktorý preverí či je všetko nakonfigurované správne:
sudo apt -y autoremove
sudo reboot
Mne sa všetko rozbehlo, no skončil som s výstrahou, že treba aktualizovať Klipper firmware v hlavnej doske a toolheade. Ale to už je iný príbeh. Ak ho chcete sfúknuť jedným dychom, čítajte v nasledujúcom článku.