Supporting Byzantium and Crimson

Thanks for tuning in!  Like in March, we have a number of updates for April.  We’ve been working up the stack to finalize the remaining packages that make up the PureOS Crimson release.

While that is ongoing, we’ve also made more fixes and reliability improvements to the Linux kernel used in the Librem 5.  These changes benefit both PureOS Crimson and existing installations on PureOS Byzantium.

Working downstream

It’s our goal to upstream as much work as we can.  Upstreaming takes a lot of effort (and hence cost) but it is essential for software longevity.  It’s a key part of avoiding planned obsolescence and ensuring that you can use your hardware with the software you choose, even if it isn’t ours.

With that said, we also want to provide fixes and improvements to our customers before upstream incorporates them.  That can take a long time.  In some cases, field experience with potential change is necessary to polish the change for upstream.

Screenshot of the Librem5/linux source repository, which is the kernel for the Librem 5 and its devkit

To accomplish those goals, we maintain a Linux kernel fork for the Librem 5.  Most development occurs here first, reaches our customers quickly, then moves upstream when ready.

The Linux kernel has a very stable interface to the rest of the system – by design, programs and software are not tightly coupled to a kernel version.  This enables us to ship a current kernel for both Byzantium and Crimson at the same time.  Software in Byzantium might not take advantage of the newest kernel features, but we can provide reliability improvements just by shipping the latest kernel.

Panel power sequencing

In April, we made several reliability improvements in the Librem 5 kernel.

Have you ever seen a white glow or “halo” around the edge of your Librem 5 display, or some temporary “burn-in” after displaying a still image for a long time?  A few devices showed this more frequently than others.

We improved the power sequencing for the Librem 5 display panel to solve this problem.  Many components in modern electronics have complex power sequencing requirements.  Their numerous power signals must turn on in the right order and with the right delays between each.

What happens if one of the delays or steps is wrong?  Well, most devices will still work, most of the time.  There are natural variations in the production of any real components, so most components will power up faster than the required timing.  But a few will not, and it will vary with other factors like temperature.  We’ve seen this before – in the Librem 14, the EC performs some essential power sequencing.

Getting the timing right for all devices in all conditions is challenging, but with the latest improvements, Librem 5 halos and temporary burn-in should be gone for good!

Recovery and reliability

Besides the panel, we also improved the reliability of the SparkLAN wireless card by reducing its bus frequency.  The lower frequency is still sufficient to reach the SparkLAN card’s maximum throughput, so there’s no downside to this change.

An improvement to our device tree enables recovery on all of the Librem 5’s I2C buses in case they would get stuck in a transaction with a device.  I2C is a very common low-speed internal bus used in many electronics.  In the Librem 5, this includes many of the sensors, the internal cameras, and a number of internal power components.

The Librem 5’s hardware kill switches enable you to turn off the cameras at any time.  That could even happen in the middle of an I2C transaction with the camera.  Although that’s rare, the bus needs to continue working if it happens, so I2C recovery is essential.

A couple of minor improvements reduce power consumption slightly.  These are only a few milliamps each, or a few percent of the phone’s typical consumption, but every small change adds up to more battery life.

Meanwhile, packaging continues

At the same time, we’re working up the stack of packages in Crimson toward the release milestones.  We’ve addressed issues in gnome-contacts and pureos-store to bring them to parity with Byzantium.  We’ve also started work for gnome-clocks and mesa.

The kernel changes above are merged, and they will reach Librem 5 owners in the next kernel release.  We’re proud to bring these improvements directly to customers while work on PureOS Crimson continues.

To stay informed to the latest updates, watch our news page for updates, and check out the progress on the PureOS milestones!  We greatly appreciate the support of all PureOS subscribers, and we look forward to seeing you again next month!

 

Recent Posts

Related Content

Tags