Bazzite based on Fedora 41 releases today alongside Fedora 41, bringing additional handheld support, a lot of backend improvements from our side, and goodies from upstream.
In this release, we debut our new kernel, kernel-bazzite, built directly on top of Fedora’s kernel-ark and 6.11 with a bunch of new handheld patches for Ayaneo, OneXPlayer, Ayn, basic controller support for the MSI Claw, new automatically generated changelogs to keep you in the know, Gamescope goodies for all devices, and GNOME 47 with accent colors and greater touch support.
Enhanced Handheld Support
In this release, we add speaker patches for Ayaneo Geek, Geek 1S, 1S, 2, 2S, Kun, Flip KB, Flip DS, and Ayn Loki MiniPro and display quirks for Ayaneo Flip DS, Neo 2S, GEEK, Founder edition, 2, by porting over the patches from ChimeraOS to our kernel (thanks guys). For the ones using the Awinic amplifier, unfortunately for now it’s Bring Your Own Firmware (see here) (all except Geek, Geek 1S, 2, 2S). Bear in mind, these devices may have other issues, but audio and screen orientation during boot are no longer a problem.
For the ROG Ally, we adopt Texas Instrument’s new amplifier patch from Baojun Xu that selects the correct firmware for the Ally speakers, offering superior performance for users that used the incorrect firmware previously.
Then, we expand the oxp-sensors
driver with support for charge limiting and charge bypass for the OneXPlayer X1, X1 Mini (Handheld Daemon support and sending upstream pending; KDE charge limit works) and to allow control of its Turbo LED. We hope to expand that control to other OneXPlayer devices, so jump on our discord.
And finally, we add support for the controller of the MSI Claw to Handheld Daemon, where the front OEM buttons and the controller will work properly in Steam Gaming Mode now. Unfortunately, no TDP controls, back buttons, or Gyro yet. Sleep has issues too. We heard these can be found for cheap now though, so it might be worth it to you.
Gamescope / Steam Gaming Mode Changes
As promised, this release brings some optimizations to Gamescope. Namely, the framerate slider of the Ally will now work down to 12 Hz while VRR is enabled, where down to 48 Hz VRR will be used and below VRR will be automatically disabled. This affects low framerate compensation, so please use 120hz on heavy games that cannot reach 60hz.
Then, we disable VRR and limit the FPS on the Steam menu, which halves battery use while on SteamUI on the Ally, Legion Go, and any display that is 120 Hz or more, from 30-40W to 15-20W. Disabling VRR should also eliminate the perceived flashing certain sensitive users of VRR displays have, after Steam stops releasing frames due to inactivity.
GNOME 47
This release brings GNOME 47, which features accent colors (top 1 requested feature!). It also includes some nice small screen improvements for handheld devices, so perhaps it is time to take it for a spin on your favorite handheld. For KDE folks, Plasma 6.2.2 has already been available. You’re probably running it right now!
Better Changelogs
Automatic changelogs are finally here, allowing you to see exactly what changes between Bazzite versions, per package. You might not be aware, but there are 1-3 Bazzite stable updates per week (and around 5-20 testing builds). This has been obscure up to now. But not anymore!
Utilizing metadata left by our rechunk tool that brought you 2.5X smaller updates, we can now generate detailed and automated changelogs for each Bazzite build, that will reside in Github releases, which is also available as an RSS feed.
So you can now be aware of Bazzite updates 24/7.
Sneak preview:
New Kernel
One of our sticking points with our previous kernel setup was our slow iteration time (3-14 days) and lack of experimentation. When our second article on Ally X support comes out, you will hear more about it for sure.
A lot of you have asked for kernel patches for your devices and we have had to keep you waiting. Even worse, a bug in AutoUMA management introduced in kernel 6.10 caused crashes in handheld devices, which meant we had to skip it.
For Fedora 41, we knew we had to be based on kernel 6.11, and as part of that we did some spring cleaning, and moved the kernel from COPR to a new fancy setup on Github, kernel-bazzite.
In this new kernel, we use a two-stage repository setup, mirroring Fedora’s. We begin on a Linux kernel tree, placing our patches on top of Fedora’s kernel-ark. When the patches are ready, we git format-patch
them and place them on a dist-git repository, which is forked from Fedora’s kernel rpm repository.
The benefits from this are clear: we can rebase to new kernel versions in 3-5 minutes, with the confidence that our patches will merge cleanly and compile. We can cherry-pick commits from lore.kernel.org, the kernel’s git repositories, and collaborate with other source based kernel distributions, such as ChimeraOS and CachyOS. Then, our kernel builds take only 2 hours, instead of 5-8, and we have a full backlog of kernel versions in case an issue is found. As part of this repo, we also publish Pacman packages. (btw)
And the benefits for you are clear as well: thanks to this kernel, we managed to fix the AutoUMA bug (still present on 6.11 and a total blocker), include the aforementioned speaker patches, and sneak in some Bluetooth patches for the new MinisForum AtomMan from 6.12. All in the last 2 weeks.
Universal Blue Growth
These were the noteworthy changes in this release so let us end with a sweet note. We have come a long way with Bazzite and Universal Blue. Our community is growing rapidly, and as part of this release we are happy to share some statistics.
In August, we changed the release IDs used in Universal Blue in order to be properly counted in Fedora’s “countme” system.
With a bit of data science and extrapolation, we are happy to bring you this chart, showcasing our growth over last year:
This chart showcases the number of Universal Blue users on Bazzite, Bluefin, and Aurora that ping Fedora’s package repository every week (these are hits, not users; i.e., not everyone is included: there is a degree of undercounting). We added Kinoite and Silverblue to be able to do the extrapolation.
For the extrapolation, we attributed excess growth from Kinoite and Silverblue to Universal Blue from this year until we changed the release IDs. The extrapolation lines up perfectly with the real data after we enabled statistics, so we are confident in that assumption.
Kinoite and Silverblue are doing great, featuring a 40% growth for Silverblue and 120% growth for Kinoite over the last year. Universal Blue’s batteries included Kinoite and Silverblue base images are still part of the base Kinoite and Silverblue stats, so we hope we helped a bit there as well. We expect continued growth as the OCI initiatives and bootc
(rpm-ostree
’s successor) continue to mature. bootc
is also new in this release, and you can use it to rebase locally to your own custom images (sudo bootc update
)!
As for us, we kicked off the year with a bang: a New Year’s Eve mention on Hacker News which added 2k starts to the Bazzite github repo and we have been exponential ever since.
For some more detail, here are the raw data with all of our flagship images (where you can clearly see when we changed the IDs):
These statistics show to us that there is a need out there for a Linux option that is batteries included and just works, as people begin to take control of which operating system they use.
We firmly believe that Linux should not be just for tinkerers and we are happy to play a part in a lot of you starting your Linux journey.
We are deeply thankful to all of you that joined our community this year!
And on this joyful note, we wrap up this update announcement. So tell us, what was the headline feature for you in this release (with ID 41-20240929
)?
If you have layered packages, you might need to remove them to update properly:
sudo rpm-ostree reset
sudo rpm-ostree update
In case you missed it, Digital Foundry made a video about Bazzite recently, so have a look: