When will Byzantium launch?

Eh? I suppose I got ahead of myself – you all had pretty much already answered my question!

Will there be an official recommendation to upgrade to Byzantium at some point, or are users supposed to take the initiative?

I thought perhaps Byzantium wasn’t ready yet, but now that I am hearing about phones shipping with Byzantium installed, I feel as if I may have missed the release announcement.

I’m not using my Librem 5 to its full potential, because I do not want to write a lot of personal data into unencrypted storage, so if Byzantium is ready to use and supports encrypted storage then I would be keen to install it. Should I flash Byzantium onto my Librem 5 now (following the relevant instructions), or wait to be advised to do so?

I am not sure I fully understand the relationship between Amber and Byzantium. Are they simply two successive releases in the same series of releases, or are they two separate release branches, having different release schedules and policies, with Byzantium not necessarily succeeding Amber? The naming scheme suggests the former, but both of them seem to be “current” at the same time, which implies the latter, but it could instead just mean that releases have overlapping support periods, like Debian releases.


Short: Just do it (bring your Librem 5 to the next level)! Long: What should be wrong with (if/when) flashing your L5 into the PureOS Byzantium environment? Not stable/mature enough for your needs or something else? This might help, indirectly: “At any given time, there is one stable release of Debian, which has the support of the Debian security team. When a new stable version is released, the security team will usually cover the previous version for a year or so, while they also cover the new/current version. Only stable is recommended for production use.” Meaning (to me) that the current security team cycle, related to PureOS Byzantium, has been around since October 9, 2021.

As well, please take a look at the command under: https://wiki.debian.org/DebianStability. And, isn’t it true that you own your Linux smartphone now (the way you want it to be … within outer frame(s) that is (are) already achieved and publicly available, from Purism Team side here, ready to be fully explored and even fully used from you and anyone else that is interested to change something by themselves)?


I think the key word in the enquiry was “official”.

I believe it does but not (yet) using the OpenPGP card. So depending on whether that is important to you …

I’m still on amber though, contemplating when I am prepared for a multi-day outage on the phone while I reestablish all installed software and configuration etc. …

That is my understanding.

(However some distros don’t provide an upgrade path from release X to release Y, ∀X ∀Y. I don’t know whether the current situation regarding amber and byzantium is a one-off or indicative of the future. I prefer a distro that provides upgrade paths rather than one that requires you to start again each time. However starting from scratch has the potential to wipe away accumulated bugs and cruft. So each approach has advantages.)


Yes, I might understand what you think, but not sure if Purism agrees with such, additional, kind of nurture: “do not leave me alone nurture” as they do provide more than enough of very relevant (very official) support to the end user, IMHO.

On official Purism side/site there exist (ready for download) two images (beside others and as of today and every new upcoming day): luks ​librem5r4 ​byzantium ​image (Build #9411) and plain ​librem5r4 ​byzantium ​image (Build #9399). I’d start there if intending to install brand new image for/on my Evergreen (librem5r4.img.xz) Linux smartphone. If anyone interested (although number of quite valuable guidance posts already exist and ready to be searched for inside this Forum) I might provide further steps on how to proceed, yet not today, please. @irvinewade sorry for my tone within previous post and @patch just let me know if any additional help needed!



(But I won’t worry about it until the phone appears, then I’ll scramble on the howto. I’ll have to remember this post.)

1 Like

I just upgraded from Amber to Byzantium. I initially tried the upgrade using Ubuntu 20.04 LTS but the necessary uuu installation became a mess (for me). I upgraded the PC to Ubuntu 21.04 Hirsute Hippo and everything went smoothly according the the upgrade instructions. If you are using Ubuntu, consider upgrading to 21.04 before your upgrading to Byzantium.


There will be, once some extra pieces fall into place.

There’s a semi-official recommendation from me for the Librem 5: upgrade! It’s more polished than Amber, and we need your bug reports for what’s still missing - also to know what to prioritize.


Hmm, guess i just ran into a bug using the flash script:

$ ./scripts/librem5-flash-image --debug
2021-11-01 18:37:11 INFO Looking for librem5r4 plain byzantium image
2021-11-01 18:37:11 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2021-11-01 18:37:12 DEBUG https://arm01.puri.sm:443 “GET /crumbIssuer/api/json HTTP/1.1” 200 155
2021-11-01 18:37:12 DEBUG https://arm01.puri.sm:443 “GET /job/Images/job/Image%20Build/api/json?depth=0 HTTP/1.1” 200 1064
2021-11-01 18:37:12 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2021-11-01 18:37:12 DEBUG https://arm01.puri.sm:443 “GET /job/Images/job/Image%20Build/9411//api/json HTTP/1.1” 200 915
2021-11-01 18:37:12 DEBUG Starting new HTTPS connection (1): arm01.puri.sm:443
2021-11-01 18:37:13 DEBUG https://arm01.puri.sm:443 “GET /job/Images/job/Image%20Build/9410//api/json HTTP/1.1” 200 631
Traceback (most recent call last):
File “/opt/000-Librem5/librem5-flash-image/./scripts/librem5-flash-image”, line 471, in
File “/opt/000-Librem5/librem5-flash-image/./scripts/librem5-flash-image”, line 408, in main
image_ref = find_image(args.image_job, board, args.variant, args.dist)
File “/opt/000-Librem5/librem5-flash-image/./scripts/librem5-flash-image”, line 222, in find_image
if (json[‘description’].startswith(variant + ’ ’ + type) and
AttributeError: ‘NoneType’ object has no attribute ‘startswith’

Perhaps, the script attempts to collect the possible images first (here 9411, 9410, …) and fails because the image 9410 is empty. But that is only a wild guess from my side. May be it misses something different. It fails to download the image in any case.

Does anyone here knows a work-around, please?


Not sure if you need --debug option there yet sudo after …:~$ line is needed:
sudo ./scripts/librem5-flash-image

P.S. Please search this Forum with here provided command.

1 Like

Sorry @dort, but I forgot to ask you if you used ./scripts/librem5-flash-image --udev command? I hope so, prior to the above, in your post, described one.

1 Like

Yes, i did. Anyway it is too soon for this command to be of interest, since the “librem5-flash-image” script fails to download the image. I only added the “–debug”, to make the command more verbose.

Hmm, my suspicion is, that the state of build-host https://arm01.puri.sm/job/Images/job/Image%20Build/ might be the reason. Can you download the image via “librem5-flash-image”?

1 Like

Yes, it is coming down (downloading) to my just created folder (8min. left). Sorry, this is via normal download. Let me see …

EDIT: I have old librem5-flash-image file (not working one) so I’m recommending to you to repeat things by creating new folder and download current:
git clone https://source.puri.sm/Librem5/librem5-devkit-tools.git
Cloning into ‘librem5-devkit-tools’…
remote: Enumerating objects: 107, done.
remote: Counting objects: 100% (107/107), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 1920 (delta 49), reused 90 (delta 40), pack-reused 1813
Receiving objects: 100% (1920/1920), 3.41 MiB | 3.21 MiB/s, done.
Resolving deltas: 100% (1159/1159), done.

EDIT II: It is late for me but particular folder looks different and particular file is named flash-image:
…/librem5-devkit-tools/scripts# ls -l
total 48

-rwxr-xr-x 1 root root 3777 Nov 1 21:13 flash-image

$ ./scripts/flash-image
Traceback (most recent call last):
File “…/librem5-devkit-tools/./scripts/flash-image”, line 123, in
File “…/librem5-devkit-tools/./scripts/flash-image”, line 87, in main
outdir = tempfile.mkdtemp(prefix=‘flash_’, dir=’.’)
File “/usr/lib/python3.9/tempfile.py”, line 498, in mkdtemp
_os.mkdir(file, 0o700)
PermissionError: [Errno 13] Permission denied: ‘./flash_42ceqfo9’

That’s it from my side, hopefully you’ll solve this until tomorrow.

1 Like

On the non-L5 machines in my home, I enjoy using NixOS for the ease of cloning configuration. But that gets me thinking… surely SOMEONE has hacked together a script to save off system state (manually installed packages, config settings, etc.) & later restore from the artifact that had been stashed somewhere safe? Certainly there will be complications (e.g. config file changes between versions), but there’s gotta be something to get at least partway there.

Before migrating to NixOS, I used a shell script that would install a list of packages, and make certain config settings with gsettings/dconf/kwriteconfig5/perl. I suppose the next iteration would’ve been what’s described above, instead of just installing the hardcoded changes.

1 Like

@dort, new day is coming, I realized that made mistake within my previous post. Actually my advice/direction was all right but I used (wasn’t focused), took down unrelated librem5-devkit-tools.git file. Here is correct clone with HTTPS, to Librem 5 related, approach:
git clone https://source.puri.sm/Librem5/librem5-flash-image.git
Cloning into ‘librem5-flash-image’…
remote: Enumerating objects: 72, done.
remote: Counting objects: 100% (72/72), done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 360 (delta 27), reused 47 (delta 10), pack-reused 288
Receiving objects: 100% (360/360), 70.81 KiB | 3.93 MiB/s, done.
Resolving deltas: 100% (208/208), done.

2021-11-02 05:04:41,278 INFO Looking for librem5r4 plain byzantium image
2021-11-02 05:04:44,971 INFO Found disk image Build 9417 ‘plain librem5r4 byzantium image’ from Tue Nov 2 03:14:54 2021
2021-11-02 05:04:47,939 INFO Found uboot Build 82 from Fri Sep 10 20:19:03 2021
2021-11-02 05:04:47,940 INFO Downloading to ./devkit_image_txfdf42h
2021-11-02 05:04:48,859 INFO Downloading image from https://arm01.puri.sm/job/Images/job/Image%20Build/9417/artifact/librem5r4.img.xz
Download: 3%|█ | 35479552/1279658148 [00:09<03:39, 5680473.65it/s^C2021-11-02 05:04:58,921 ERROR CTRL-C pressed. | 73204908/4500000256 [00:09<09:39, 7642740.18it/s]
2021-11-02 05:04:58,924 INFO Cleaning up.

Second address, clone with SSH option is available as well: git@source.puri.sm:Librem5/librem5-flash-image.git.


Yes, ./scripts/librem5r4-flash-image --variant luks is another option. Thanks, @Skalman!

1 Like

Thank you @Quarnero, i retried this morning, too, and had positive results, also.

Unfortunately, i re-cloned the repository before retrying, so i cannot fully exclude a handling mistake from my side yesterday, but i doubt. I was precisely using the procedure in Reflashing the Phone, which is identical to the procedure in your post.

My suspicion is, that the script died because of the state of the build-host. Please note that image 9405-9410 failed to build though 9411 appeared to be present yesterday.

Anyway, i can confirm that it works well today. Immediately after that, i ran into the “expired root account” issue while trying to get ssh going, so installation is still not as smooth as it could be, but that one was easy enough for me to figure out.

Thanks again, @Quarnero, for trying the procedure.

1 Like

As for the “luks” variant, it it already to your liking? I have an OpenPGP card with the phone. Is the “luks” variant integrated with it?

There is an integration of the OpenPGP card for LUKS (I only tested it with a seperate USB OpenPGP card reader):

May be you would also like to change
the master key before flashing: