Read this very cool blog:
Thanks to all who made this possible! And thanks for the nice blog!
Read this very cool blog:
Thanks to all who made this possible! And thanks for the nice blog!
Gnu Crimson is nice but is very old which doesnt excite me, thats is why i want Gnu Dawn for my Librem 5 to daily use.
Gnu Dawn most wanted for GLES3 to Full-Butter and Full-PowerSave for L5.
crimson reaching this point is a good sign for dawn (as mentioned in the PureOS Development Report).
It may also be that if someone wants to do an in-place upgrade, he or she has to update to crimson first, even if crimson is not exciting.
Yes, only upgrades from crimson will be supported for dawn (just like only upgrades from byzantium are supported now, don’t try upgrading from amber straight to crimson in place).
I’m very happy to see the announcement, however, I don’t see is a path from Crimson Alpha to Beta in place upgrade. Surely, this is supported?
The Development Report implies that if you are already running crimson then just do a regular update, nothing fancy needed (which by definition is in-place).
45 minutes to upgrade? Sounds like at least twice the amount that is actually required (if not super slow internet is used).
Happy to see that progress. Thanks everyone involved. I also upgraded the kernel to 6.12 and see no issue right now.
45 minutes to upgrade? Sounds like at least twice the amount that is actually required (if not super slow internet is used).
You are lucky then. My upgrade failed. Re-flashing and setting up the phone anew takes longer…
I updated manually in December. You probably should explain what happen when your upgrade failed that developers can fix it for the stable release.
I would if I had more to tell the devs that “it didn’t work for me”. The problem is I don’t know what the issue was:
I installed pureos-upgrade, launched it. I made some cleanup to make it happy (freed some space, removed a gcc-7 package that it considered “unknown”, etc). Then pureos-upgrade started the process, rebooted the phone to do the actual upgrade, then as it was around 7% done, the phone rebooted again for an unknown reason (it was plugged on the wall adapter, the battery was full, it didn’t feel hot), and … ![]()
I recently started using stock image of Crimson and it’s pretty nice. Solved an issue I was having.
Not sure if relevant; just a thought.
Technically, it’s not. Beta release was defined as the one where future upgradability is supported, the older ones could require a reinstallation or manual intervention to ensure full functionality.
Practically though, crimson has been in a pretty good shape for a while now.
That’s unfortunate, though without logs or repeated reports it’s not exactly actionable for us. At least Jumpdrive makes it trivial to get back to your backup and start over.
I had a failure to boot on kernel 6.12 and had to revert with Jumpdrive yesterday. What logs would be most useful? Output from journalctl -b 1 -p err or journalctl -b 1?
These are the last two errors I saw right after updating to 6.12 in the logs
systemd-cryptsetup[3886]: Device crypt_root is still in use.
systemd-cryptsetup[3886]: Failed to deactivate: Device or resource busy
Could you tell more about what “failure to boot” means?
Sure. I was already on crimson (and kernel 6.6) and updated with sudo apt update sudo apt upgrade. After installation, I selected “Restart…” from the top menu.
The phone never got past a green LED after that initial reboot and all subsequent power button presses. Screen never turned on, I was never able to reach the LUKS encrypted password prompt.
In essence:
So it would go off?
The installation log from apt could be helpful.
Yes the green LED would illuminate, then turn off.
Apt log files:
Log started: 2026-03-03 12:02:56
(Reading database …
(Reading database … 5%
(Reading database … 10%
(Reading database … 15%
(Reading database … 20%
(Reading database … 25%
(Reading database … 30%
(Reading database … 35%
(Reading database … 40%
(Reading database … 45%
(Reading database … 50%
(Reading database … 55%
(Reading database … 60%
(Reading database … 65%
(Reading database … 70%
(Reading database … 75%
(Reading database … 80%
(Reading database … 85%
(Reading database … 90%
(Reading database … 95%
(Reading database … 100%
(Reading database … 112552 files and directories currently installed.)
Preparing to unpack …/pureos-archive-keyring_2026.02.0_all.deb …
Unpacking pureos-archive-keyring (2026.02.0) over (2024.04.0) …
Preparing to unpack …/linux-image-6.6.0-1-librem5_6.6.127pureos1~cri1_arm64.deb …
Unpacking linux-image-6.6.0-1-librem5 (6.6.127pureos1~cri1) over (6.6.122pureos1~cri1) …
Preparing to unpack …/linux-image-librem5_6.6.127pureos1~cri1_arm64.deb …
Unpacking linux-image-librem5 (6.6.127pureos1~cri1) over (6.6.122pureos1~cri1) …
Setting up linux-image-6.6.0-1-librem5 (6.6.127pureos1~cri1) …
update-initramfs: Generating /boot/initrd.img-6.6.0-1-librem5
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: deferring update (trigger activated)
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: deferring update (trigger activated)
Setting up pureos-archive-keyring (2026.02.0) …
Setting up linux-image-librem5 (6.6.127pureos1~cri1) …
Processing triggers for flash-kernel (3.107pureos3) …
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: installing version 6.6.0-1-librem5
Generating boot script u-boot image… done.
Taking backup of boot.scr.
Installing new boot.scr.
Log ended: 2026-03-03 12:04:20
Log started: 2026-03-04 08:53:12
(Reading database …
(Reading database … 5%
(Reading database … 10%
(Reading database … 15%
(Reading database … 20%
(Reading database … 25%
(Reading database … 30%
(Reading database … 35%
(Reading database … 40%
(Reading database … 45%
(Reading database … 50%
(Reading database … 55%
(Reading database … 60%
(Reading database … 65%
(Reading database … 70%
(Reading database … 75%
(Reading database … 80%
(Reading database … 85%
(Reading database … 90%
(Reading database … 95%
(Reading database … 100%
(Reading database … 112554 files and directories currently installed.)
Preparing to unpack …/0-librem5-devkit-base_0.0.30pureos2_arm64.deb …
Unpacking librem5-devkit-base (0.0.30pureos2) over (0.0.29pureos1) …
Removed “/etc/systemd/system/getty.target.wants/serial-getty@ttyGS0.service”.
Preparing to unpack …/1-librem5-base-defaults_75pureos2_all.deb …
Unpacking librem5-base-defaults (75pureos2) over (74pureos1) …
Preparing to unpack …/2-librem5-base_75pureos2_all.deb …
Unpacking librem5-base (75pureos2) over (74pureos1) …
Preparing to unpack …/3-librem5-check_0.0.30pureos2_all.deb …
Unpacking librem5-check (0.0.30pureos2) over (0.0.29pureos1) …
Preparing to unpack …/4-librem5-gnome-base_75pureos2_all.deb …
Unpacking librem5-gnome-base (75pureos2) over (74pureos1) …
Preparing to unpack …/5-librem5-gnome-phone_75pureos2_all.deb …
Unpacking librem5-gnome-phone (75pureos2) over (74pureos1) …
Preparing to unpack …/6-librem5-non-gnome_75pureos2_all.deb …
Unpacking librem5-non-gnome (75pureos2) over (74pureos1) …
Preparing to unpack …/7-librem5-gnome_75pureos2_all.deb …
Unpacking librem5-gnome (75pureos2) over (74pureos1) …
Preparing to unpack …/8-network-manager-config-connectivity-pureos_75pureos2_all.deb …
Unpacking network-manager-config-connectivity-pureos (75pureos2) over (74pureos1) …
Setting up network-manager-config-connectivity-pureos (75pureos2) …
Setting up librem5-devkit-base (0.0.30pureos2) …
Removing obsolete conffile /etc/modprobe.d/librem5-devkit.conf …
Setting up librem5-non-gnome (75pureos2) …
Setting up librem5-base-defaults (75pureos2) …
update-initramfs: deferring update (trigger activated)
Setting up librem5-check (0.0.30pureos2) …
Processing triggers for libglib2.0-0:arm64 (2.74.6-2+deb12u8pureos1) …
Setting up librem5-base (75pureos2) …
Setting up librem5-gnome-base (75pureos2) …
Setting up librem5-gnome-phone (75pureos2) …
Setting up librem5-gnome (75pureos2) …
Processing triggers for initramfs-tools (0.142+deb12u3pureos1) …
update-initramfs: Generating /boot/initrd.img-6.6.0-1-librem5
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
Installing /usr/lib/linux-image-6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.6.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: installing version 6.6.0-1-librem5
Generating boot script u-boot image… done.
Taking backup of boot.scr.
Installing new boot.scr.
Log ended: 2026-03-04 08:54:40
Log started: 2026-03-05 10:51:48
(Reading database …
(Reading database … 5%
(Reading database … 10%
(Reading database … 15%
(Reading database … 20%
(Reading database … 25%
(Reading database … 30%
(Reading database … 35%
(Reading database … 40%
(Reading database … 45%
(Reading database … 50%
(Reading database … 55%
(Reading database … 60%
(Reading database … 65%
(Reading database … 70%
(Reading database … 75%
(Reading database … 80%
(Reading database … 85%
(Reading database … 90%
(Reading database … 95%
(Reading database … 100%
(Reading database … 112550 files and directories currently installed.)
Preparing to unpack …/0-evince-common_43.1-2+pureos1_all.deb …
Unpacking evince-common (43.1-2+pureos1) over (43.1-2) …
Preparing to unpack …/1-evince_43.1-2+pureos1_arm64.deb …
Unpacking evince (43.1-2+pureos1) over (43.1-2+b1) …
Preparing to unpack …/2-libevdocument3-4_43.1-2+pureos1_arm64.deb …
Unpacking libevdocument3-4:arm64 (43.1-2+pureos1) over (43.1-2+b1) …
Preparing to unpack …/3-libevview3-3_43.1-2+pureos1_arm64.deb …
Unpacking libevview3-3:arm64 (43.1-2+pureos1) over (43.1-2+b1) …
Preparing to unpack …/4-gir1.2-evince-3.0_43.1-2+pureos1_arm64.deb …
Unpacking gir1.2-evince-3.0:arm64 (43.1-2+pureos1) over (43.1-2+b1) …
Preparing to unpack …/5-gnome-maps_43.5-2~deb12u1pureos1_arm64.deb …
Unpacking gnome-maps (43.5-2~deb12u1pureos1) over (43.5-2~deb12u1) …
Preparing to unpack …/6-phosh-plugins_0.34.0-2pureos4_arm64.deb …
Unpacking phosh-plugins (0.34.0-2pureos4) over (0.34.0-2pureos3) …
Preparing to unpack …/7-phosh_0.34.0-2pureos4_arm64.deb …
Unpacking phosh (0.34.0-2pureos4) over (0.34.0-2pureos3) …
Preparing to unpack …/8-phosh-mobile-tweaks_0.34.0-2pureos4_all.deb …
Unpacking phosh-mobile-tweaks (0.34.0-2pureos4) over (0.34.0-2pureos3) …
Setting up gnome-maps (43.5-2~deb12u1pureos1) …
Setting up evince-common (43.1-2+pureos1) …
Setting up phosh-mobile-tweaks (0.34.0-2pureos4) …
Setting up libevdocument3-4:arm64 (43.1-2+pureos1) …
Setting up phosh (0.34.0-2pureos4) …
Setting up libevview3-3:arm64 (43.1-2+pureos1) …
Setting up evince (43.1-2+pureos1) …
Setting up gir1.2-evince-3.0:arm64 (43.1-2+pureos1) …
Processing triggers for hicolor-icon-theme (0.17-2) …
Processing triggers for libglib2.0-0:arm64 (2.74.6-2+deb12u8pureos1) …
Processing triggers for libc-bin (2.36-9+deb12u13) …
Processing triggers for man-db (2.11.2-2) …
Processing triggers for mailcap (3.70+nmu1) …
Processing triggers for desktop-file-utils (0.26-1) …
Setting up phosh-plugins (0.34.0-2pureos4) …
Log ended: 2026-03-05 10:52:15
Log started: 2026-03-16 09:30:23
(Reading database …
(Reading database … 5%
(Reading database … 10%
(Reading database … 15%
(Reading database … 20%
(Reading database … 25%
(Reading database … 30%
(Reading database … 35%
(Reading database … 40%
(Reading database … 45%
(Reading database … 50%
(Reading database … 55%
(Reading database … 60%
(Reading database … 65%
(Reading database … 70%
(Reading database … 75%
(Reading database … 80%
(Reading database … 85%
(Reading database … 90%
(Reading database … 95%
(Reading database … 100%
(Reading database … 112546 files and directories currently installed.)
Preparing to unpack …/0-imagemagick-6-common_8%3a6.9.11.60+dfsg-1.6+deb12u7_all.deb …
Unpacking imagemagick-6-common (8:6.9.11.60+dfsg-1.6+deb12u7) over (8:6.9.11.60+dfsg-1.6+deb12u6) …
Preparing to unpack …/1-libmagickcore-6.q16-6_8%3a6.9.11.60+dfsg-1.6+deb12u7_arm64.deb …
Unpacking libmagickcore-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) over (8:6.9.11.60+dfsg-1.6+deb12u6) …
Preparing to unpack …/2-libmagickwand-6.q16-6_8%3a6.9.11.60+dfsg-1.6+deb12u7_arm64.deb …
Unpacking libmagickwand-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) over (8:6.9.11.60+dfsg-1.6+deb12u6) …
Preparing to unpack …/3-libmagickcore-6.q16-6-extra_8%3a6.9.11.60+dfsg-1.6+deb12u7_arm64.deb …
Unpacking libmagickcore-6.q16-6-extra:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) over (8:6.9.11.60+dfsg-1.6+deb12u6) …
Selecting previously unselected package linux-image-6.12.0-1-librem5.
Preparing to unpack …/4-linux-image-6.12.0-1-librem5_6.12.75pureos1~cri1_arm64.deb …
Unpacking linux-image-6.12.0-1-librem5 (6.12.75pureos1~cri1) …
Preparing to unpack …/5-linux-image-librem5_6.12.75pureos1~cri1_arm64.deb …
Unpacking linux-image-librem5 (6.12.75pureos1~cri1) over (6.6.127pureos1~cri1) …
Setting up imagemagick-6-common (8:6.9.11.60+dfsg-1.6+deb12u7) …
Setting up linux-image-6.12.0-1-librem5 (6.12.75pureos1~cri1) …
update-initramfs: Generating /boot/initrd.img-6.12.0-1-librem5
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Installing new imx8mq-librem5-r4.dtb.
Installing /usr/lib/linux-image-6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: deferring update (trigger activated)
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
Installing /usr/lib/linux-image-6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: deferring update (trigger activated)
Setting up libmagickcore-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) …
Setting up linux-image-librem5 (6.12.75pureos1~cri1) …
Setting up libmagickwand-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) …
Setting up libmagickcore-6.q16-6-extra:arm64 (8:6.9.11.60+dfsg-1.6+deb12u7) …
Processing triggers for libc-bin (2.36-9+deb12u13) …
Processing triggers for flash-kernel (3.107pureos3) …
Using DTB: freescale/imx8mq-librem5-r4.dtb
Installing /usr/lib/linux-image-6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb into /boot/dtbs/6.12.0-1-librem5/freescale/imx8mq-librem5-r4.dtb
Taking backup of imx8mq-librem5-r4.dtb.
Installing new imx8mq-librem5-r4.dtb.
flash-kernel: installing version 6.12.0-1-librem5
Generating boot script u-boot image… done.
Taking backup of boot.scr.
Installing new boot.scr.
Log ended: 2026-03-16 09:31:51
Log started: 2026-03-16 15:26:13
(Reading database …
(Reading database … 5%
(Reading database … 10%
(Reading database … 15%
(Reading database … 20%
(Reading database … 25%
(Reading database … 30%
(Reading database … 35%
(Reading database … 40%
(Reading database … 45%
(Reading database … 50%
(Reading database … 55%
(Reading database … 60%
(Reading database … 65%
(Reading database … 70%
(Reading database … 75%
(Reading database … 80%
(Reading database … 85%
(Reading database … 90%
(Reading database … 95%
(Reading database … 100%
(Reading database … 114064 files and directories currently installed.)
Removing linux-image-6.5.0-1-librem5 (6.5.13pureos1~byz1) …
update-initramfs: Deleting /boot/initrd.img-6.5.0-1-librem5
Using DTB: freescale/imx8mq-librem5-r4.dtb
flash-kernel: Kernel 6.5.0-1-librem5 has been removed.
flash-kernel: A higher version (6.12.0-1-librem5) is still installed, no reflashing required.
Log ended: 2026-03-16 15:26:14
Start-Date: 2026-03-03 12:02:56
Commandline: apt upgrade
Requested-By: purism (1000)
Upgrade: pureos-archive-keyring:arm64 (2024.04.0, 2026.02.0), linux-image-6.6.0-1-librem5:arm64 (6.6.122pureos1~cri1, 6.6.127pureos1~cri1), linux-image-librem5:arm64 (6.6.122pureos1~cri1, 6.6.127pureos1~cri1)
End-Date: 2026-03-03 12:04:20
Start-Date: 2026-03-04 08:53:12
Commandline: apt upgrade
Requested-By: purism (1000)
Upgrade: librem5-base-defaults:arm64 (74pureos1, 75pureos2), librem5-base:arm64 (74pureos1, 75pureos2), librem5-check:arm64 (0.0.29pureos1, 0.0.30pureos2), librem5-gnome-base:arm64 (74pureos1, 75pureos2), librem5-gnome-phone:arm64 (74pureos1, 75pureos2), librem5-non-gnome:arm64 (74pureos1, 75pureos2), librem5-gnome:arm64 (74pureos1, 75pureos2), network-manager-config-connectivity-pureos:arm64 (74pureos1, 75pureos2), librem5-devkit-base:arm64 (0.0.29pureos1, 0.0.30pureos2)
End-Date: 2026-03-04 08:54:40
Start-Date: 2026-03-05 10:51:48
Commandline: apt upgrade
Requested-By: purism (1000)
Upgrade: evince:arm64 (43.1-2+b1, 43.1-2+pureos1), phosh-plugins:arm64 (0.34.0-2pureos3, 0.34.0-2pureos4), libevdocument3-4:arm64 (43.1-2+b1, 43.1-2+pureos1), libevview3-3:arm64 (43.1-2+b1, 43.1-2+pureos1), evince-common:arm64 (43.1-2, 43.1-2+pureos1), phosh:arm64 (0.34.0-2pureos3, 0.34.0-2pureos4), gnome-maps:arm64 (43.5-2~deb12u1, 43.5-2~deb12u1pureos1), gir1.2-evince-3.0:arm64 (43.1-2+b1, 43.1-2+pureos1), phosh-mobile-tweaks:arm64 (0.34.0-2pureos3, 0.34.0-2pureos4)
End-Date: 2026-03-05 10:52:15
Start-Date: 2026-03-16 09:30:23
Commandline: apt upgrade
Requested-By: purism (1000)
Install: linux-image-6.12.0-1-librem5:arm64 (6.12.75pureos1~cri1, automatic)
Upgrade: libmagickcore-6.q16-6-extra:arm64 (8:6.9.11.60+dfsg-1.6+deb12u6, 8:6.9.11.60+dfsg-1.6+deb12u7), libmagickwand-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u6, 8:6.9.11.60+dfsg-1.6+deb12u7), libmagickcore-6.q16-6:arm64 (8:6.9.11.60+dfsg-1.6+deb12u6, 8:6.9.11.60+dfsg-1.6+deb12u7), imagemagick-6-common:arm64 (8:6.9.11.60+dfsg-1.6+deb12u6, 8:6.9.11.60+dfsg-1.6+deb12u7), linux-image-librem5:arm64 (6.6.127pureos1~cri1, 6.12.75pureos1~cri1)
End-Date: 2026-03-16 09:31:51
Start-Date: 2026-03-16 15:26:13
Commandline: apt autoremove
Requested-By: purism (1000)
Remove: linux-image-6.5.0-1-librem5:arm64 (6.5.13pureos1~byz1)
End-Date: 2026-03-16 15:26:14
I don’t see anything suspicious in there.
The green LED turning off would mean that the kernel did in fact boot. It could have hanged before reaching screen initialization, or maybe it just failed to initialize the screen but continued booting. Unfortunately there won’t be any logs stored if you did not unlock the LUKS volume.
What’s the output of cat /proc/cmdline?
This is what it currently is, after reloading to 6.6.
cat /proc/cmdline
u_boot_version=2019.04-g17a6c2261c console=ttymxc0,115200 quiet fsck.repair=yes security=apparmor splash plymouth.ignore-serial-consoles vt.global_cursor_default=0
Is there a published procedure for the “manual intervention”? I’m perfectly willing to go there to get Crimson Beta without a new installation and having to configure everything from scratch again. I documented most of what I did, but it’s just a lot of time to spend. Manual intervention upgrade to CB is no risk, and little time lost, as I run Alpha from MicroSD and will just clone the card and do the upgrade on the clone. If it fails, I just put the old card back in and it’s ops normal.