Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.

One of the companies that Valve fund for improvements across Linux, SteamOS and Steam Deck is Collabora and a developer has gone into more detail on the upgrades to the update system in SteamOS 3.6 that's now in Preview.

The Collabora blog post from Ludovico de Nittis gives a refresher on how the update system works, which in simple terms has two partitions one for the live system and one for updates which then replaces the live system. One part of this process uses a tool called casync, a tool for distributing file system images.

However, they identified a number of points that could be improved for example: how it uses a single thread for calculating the current image seed which "On the Steam Deck this usually means that when you press the "apply update" button, nearly the full first minute is spent to chunk and hash the entire image that is currently in use, with one CPU core at 100% usage." amongst other issues affecting the time it takes to actually do a SteamOS update.

They ended up finding the tool desync which is pretty much a drop-in replacement, has proper active development on it, along with various other enhancements they wanted like multiple parallel HTTP(S) requests support and multi-threaded chunking. But some work was still needed and they sent multiple patches to the desync project (which have been merged).

By now you're probably wanting to know the benefits which are:

  • It is now significantly faster to apply system updates. How much "faster" heavily depends on the size of the update and the Internet connection speed. From our testings, usually the overall update process was consistently at least 30%-50% faster.

  • If the download of an update fails midway, e.g. if there is a connection error, the second download attempt will be able to quickly resume from the point previously reached.

  • The download progress percentage is more precise and refreshed more frequently.

  • It allows us to quickly check if the current image is pristine or has been altered. Useful for example during the factory reset operation to avoid having to download an image from the Internet unless necessary.

  • Lays out the base to allow in the future the ability for the clients to quickly estimate the download size of system updates.

This is just another reason why I love the Steam Deck and SteamOS, the majority of it is all based on open source and Valve fund contributions to so many projects I've lost count that improve things for everyone.

Article taken from GamingOnLinux.com.
19 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
7 comments

tfk May 10
So, in layman terms, it does Bleep bloop Bleep instead of Bleep bloop bloop bloop Bleep, and that makes it faster?
Woodlandor May 10
Quoting: tfkSo, in layman terms, it does Bleep bloop Bleep instead of Bleep bloop bloop bloop Bleep, and that makes it faster?

That’s bleep-oulutley corr-bloop 🤖


Last edited by Woodlandor on 10 May 2024 at 5:11 pm UTC
jams3223 May 10
Quoting: Woodlandor
Quoting: tfkSo, in layman terms, it does Bleep bloop Bleep instead of Bleep bloop bloop bloop Bleep, and that makes it faster?

That’s bleep-oulutley corr-bloop 🤖
More like bloopity blip bloop
Quoting: jams3223
Quoting: Woodlandor
Quoting: tfkSo, in layman terms, it does Bleep bloop Bleep instead of Bleep bloop bloop bloop Bleep, and that makes it faster?

That’s bleep-oulutley corr-bloop 🤖
More like bloopity blip bloop
Man, I can never understand these technical discussions.
> the majority of it is all based on open source and Valve fund contributions to so many projects I've lost count that improve things for everyone.

Stuff like this is why I will forever be unapologetic in supporting Valve and adore the Steam Deck and everything it is, but also everything that has gone into it. Even if Valve were to vanish into a puff of smoke tomorrow, their contributions up to this point alone would have a lasting impact for years to come and have genuinely made the world of tech a better place for it.

Keep on being you Valve, you made me into a loyal customer.
It still questioning why they still not use BtrFS snapshots for this.
One snapshot is the running one and then a new snapshots is used for the update and also just flipped over. As the SteamDeck already uses BtrFS for their root filesystem.

No need for two partitions, less space requirements as you do not need a full copy of the OS and bootloader (there are actually 5 partitions on Steam Deck 2x Boot loader, 2x The root filesystem and 1x the home partition) and no need for hashing the os image. What ever this is used for. Also using the BtrFS snapshot changes made by a user would keep persistent across updates too.

I would appreciate if someone could explain this to me? 😅


Last edited by Vortex_Acherontic on 11 May 2024 at 6:59 am UTC
LoudTechie May 11
Quoting: tfkSo, in layman terms, it does Bleep bloop Bleep instead of Bleep bloop bloop bloop Bleep, and that makes it faster?

Meh, more like:
it does Bleep Bleep Bleep Bleep instead of Bleep bloop bloop Bleep and that makes it faster.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.