Author: Jeff

In memory of James M. Rufer

Purism has lost an important voice. We are deeply saddened to learn that our colleague James M. Rufer has passed away on September 27th, 2018, at the age of 39. He is survived by his loving wife Mary; sons Xander and Paxton; mother-in-law Sylvia; and friends he made outside and inside Purism.

James has been with Purism since its early days, being the very first team member to join and has remained a dedicated, honest, hardworking chap who brought enjoyment to our lives daily.

James meeting with us on his last birthday

Purism is a team of people located in all corners of the world, and those of us who have had the privilege to meet James in person know that his human qualities were a model to us all. James was one of the warmest, pure-hearted and kind people you can find, and had a passion for bringing ethical technology within the reach of the general public. I wish he lived on to see the long-term impact of his efforts on society.

François and James casually chatting

James was the customer’s advocate as director of product, and also the cheerful voice of Purism on social media from 2016 to this day. If you have interacted with Purism on Twitter, Mastodon, Google+, Facebook and other outlets, know that in 99% of cases, you had been discussing with James. He was also the main writer behind the “Frequently Asked Questions” area of our website, and the shift in tone in our social media interactions when he took over in 2016 was largely thanks to him and his humane, down-to-earth approach.

In recent months, James had been deeply involved in defining requirements and improvements to our current and future products.

More importantly, James was not just a close collaborator, he had quickly become a personal friend of mine. We shared the joys, the laughter and the burdens of moving mountains to fulfill our mission as a social purpose corporation taking on the world against all odds.

I and various Purism team members will be travelling to attend James’ memorial service this Saturday.

In honor of James, we hope to engrave his name into the interior of the Librem 5 phone. We are working with his close family to support them in these difficult times. Additionally, we are giving James a special send-off and honoring his wife’s request by having James’ remains sent to space in 2019 for his kids. It will be a farewell for him, and he will return to earth and burn up as a “shooting star”.

Goodbye James, you will be sorely missed.
— Jeff

Many purists join me in mourning him, and some here wanted to add below a personal public statement to this effect.

Mladen Pejaković said:

Farewell James, I’ll miss our meetings and the fun and laugh we had. Rest in peace, dear colleague.

David Seaward said:

I finally got to meet James in person this year after working with him remotely. I had always admired his affability, warmth and respect for people, but was really blown away when I got to experience those qualities from him first-hand. I remember how lucky I felt to get to know such a great guy better. How lucky I felt that there was someone at work so capable of bringing those attributes which are all too often missing in our industry. I wish I could preserve that feeling and that memory in a bottle and leave it here for his children so that they could know what a humble and humane man their father was. I hope his family and friends know how much his colleagues appreciated him.

Everyone in our finance team said:

All is silent with James. Rest in peace, brother. Your colleagues here are dedicated to carrying our shared ideals to the four corners of the globe. A tribute to you and the life you led…

Todd Weaver said:

The universe is less bright without James in it and I will miss him immensely. He was a funny, thoughtful, and caring person who brightened up everything just by being present.

Nicole Færber said:

During a lifetime one meets a lot of people. Some you like to forget instantaneously again, some you are fine to work with but you don’t want them to be around more than necessary, some are good pals for a party, a hangout or a special occasion, some are great to talk to.

And then there are some people who you simply enjoy having around you whenever and wherever, who fill any room with kindness, understanding and empathy, who make you feel welcome, understood and accepted, unconditionally—this is what James was to me.

I had the honor and pleasure to work with James, mostly remote over the Internet, but still his positive energy could always be felt, even through the wires. Just a few weeks ago we finally had the pleasure to meet in person and enjoyed a wonderful time together with the team, which even further increased our bond.

James leaves a big hole in our hearts.
Our thoughts are with his family now, his wife and children.

Farewell James, may peace be with you, we miss you. We will try our best to keep your spirit alive, but it will never be the same without you.

François Téchené a dit:

Thank you James. Thank you for having been such a great colleague, such a nice and bright person. Thank you for having been my friend. I am very proud to have been working with you, for the last three years, on making the world a better place. It feels empty without you. I will sincerely miss you. May you know peace forever.

Zlatan Todorić said:

James and I have been working together for nearly three years, so we had time to become friends. Even though we never met in person, I can say that James was a rare genuinely good, kind-hearted person. His presence in our chats, and his voice in our meetings were soothing to me. He will be dearly missed but he will live through-out our memories of him. His beliefs in a better world will continue to live in me forever. Thank you my friend for having presence in my life and may you watch over us wherever you are now.

Heather Ellsworth said:

James was always a pleasure to work with and had a wonderful way of making his team members around the world laugh. I feel fortunate to have been his teammate and he will always have a fond place in my thoughts. My deepest sympathies go out to the family in this difficult time and may they too find peace in their cherished memories.

Kyle Rankin said:

People in technology have a tendency to solve problems in a way that suits only their own selfish needs. But not James. The word advocate gets overused these days, to the point that it sometimes has lost its meaning. Yet James was a real and true advocate for technology working for everyone, not out of some cynical drive to grow market share, but because that’s where his heart was. He believed that technology should be accessible and intuitive, and he consistently pushed to improve everything we did with that in mind. Those fingerprints are in everything we have made so far. If only we had more people with a heart like James in technology, we would all be much better off.

Chris Lamb said:

Whilst I never had the privilege of meeting James in-person I will not quickly forget the many thoughtful conversations and interactions I had with him. That he appeared to make an immediate impact on everyone who was fortunate enough to have come across him, even through the oft-distancing medium of faceless and impersonal technology, is truly a credit to his character. My deepest sympathies towards his wife and his children.

Theodotos Andreou wrote:

Farewell beloved colleague. Purism will miss you.

Purism launches Librem Key, the first and only security key to offer tamper evident protection to laptop users

New OpenPGP smart cards now available for purchase on Purism’s website

SAN FRANCISCO, Calif., September 20, 2018 — Purism, the social purpose corporation which designs and produces popular digital rights respecting hardware, software, and services, has launched its new security token, the Librem Key, which is the first and only OpenPGP smart card providing a Heads-firmware-integrated tamper-evident boot process. The new Librem Key, built with Open Hardware USB OpenPGP security tokens from Nitrokey, can store up to 4096-bit RSA keys and up to 512-bit ECC keys and can securely generate them directly on the device. Librem Keys are now available for purchase on Purism’s website, with Librem laptops or as a single order. Librem Keys will be able to provide basic security token functions on any laptop, but have extended features that work exclusively with Purism’s Librem laptop line and other devices that support Trammel Hudson’s Heads security firmware. Read more

Librem 5 general development report — September 6th, 2018


Some of the Purism team members attended Akademy 2018 in Vienna. This conference facilitated further discussions with KDE developers and it was nice to meet everyone in person!

There were also some team members that attended FrOSCon. Coming up, we have Todd presenting at AllThingsOpen, and Capitole du Libre where François and Adrien will be manning a booth (so be sure to stop by and say bonjour if you’re there).


More improvements have been made to the shell mock-ups and those should be complete soon! Also some exciting new icons are on the horizon and we will use them early in our development builds and on the apps shipping with the phone; GNOME’s new icons are slated for inclusion in the 3.32 release in 2019.

Software Work


Now the qcow2 images are archived as well as the raw image file. This makes the x86_64 VM image more accessible to those “can’t wait” to try things out today, or who haven’t ordered a development board. You can find the most recent builds and build artifacts here. See below for a demo of rotation in the qcow2 image. Also, a couple of packages have been added to the images to enable the resizing of the rootfs to fill the partitioned space.

We are now transforming Plasma Mobile’s Debian packaging into git repositories suitable for our build jobs and building them. These packages will eventually be included in a Plasma Mobile Librem 5 image. There is ongoing work with upstream Plasma developers to resolve the remaining build issues.


Many fixes and tweaks have occurred in phosh in the last few weeks. Size calculations have been fixed (and therefore menu positions) on scaled displays with custom modes. The German translation has been updated. Now a login shell is used when we launch gnome-session, which ensures XDG_* is set up correctly so icons of flatpak applications are correctly recognized by phosh. To make phosh more robust, more compile warnings were enabled and the resulting errors were addressed.


To lay the ground work for configuring your modem, an upstream discussion has been started to discuss how gnome-settings-daemon should behave regarding modems.


Wlroots was known to crash when phosh reconnects and that has been fixed. We also continue to keep wlroots up to date with new upstream snapshots.

GTK+ 4 and libhandy

Since the compositor and GTK+ need to work well together, an issue was fixed to make the xdg-shell’s app_id match GApplication’s application-id property. This makes it simpler for compositors to match applications to desktop files in Wayland.

Among the many fixes in libhandy recently, it has been made more robust during builds to now fail on warnings. There are three GTK+ bugs that currently affect the ability to create adaptive UIs that have been brought up with the upstream developers: a non-rounded corner issue, an off-screen popover issue, and an issue that causes the separator to sometimes be transparent. For the separator issue, a solution has been proposed as well. There is ongoing work upstream on the separator to add a selection mode variant and make adding a separator less complicated that is quite necessary to have cleanly defined panels in HdyLeaflet. Furthermore, the libhandy flatpak runtime (org.gnome.Platform) has been updated from 3.26 to master so we can be on the bleeding edge.


On the OSK front, the text-input-v3 patch-set has been included in wayland-protocols and gtk-3.24. The preliminary support of text-input-v3 has also been added to wlroots. Additionally, the virtual-keyboard protocol patch has been updated and is in review. There has even been an input-method-v2 protocol RFC posted. So get ready to type on your virtual keyboard!

Calls and messaging

Since the decision to implement a ModemManager back-end to the Calls application, some changes were needed to Calls. To give ModemManager more privileges, some policy kit files were created. To improve the UI of Calls, some of the Calls display code was cleaned up and made the Calls UI closer to the final design.

New and exciting things are on the horizon for the Messaging app. A new SMS libpurple-plugin has begun development and testing is ongoing with the Pidgin-Debug window to check if the ModemManager interface works. Work is advancing to glue the Chatty GTK+ objects to libpurple UiOps structs and signals for conversation handling. A blog post on Chatty—complete with a demo video—has just been published so go read it if you haven’t already!


A significant effort has been put in to make the 4.18 kernel work with the devkit SoM. In order to help debug kernel hangs, some work was done on openocd like adding a board configuration for the particular board that will be used on the dev kits and warn when the CPU is not halted by invoking phys2virt. The openOCD folks were a great help on this effort!

Efforts continue on other pieces of the kernel too. Work continues on the power supply driver for the battery charger with upstream kernel developers and should be accepted soon. USB 2 has been tested and is working. There were also some clock issues that were resolved and both SDMA and RTC are both now working as well.

Hardware Work

The Purism hardware team has sent out the manufacturing files for PCB fabrication and assembly of the prototypes. The files are currently under review.

Community Outreach

An issue template has been added to the current phosh, libhandy, calls, chatty, docs, and virtboard projects to guide the user to provide all of the necessary information when filing an issue against these projects. For more information on filing issues, see our documentation page on reporting an issue.

A big Thanks goes out to all of the external teams that have helped review and merge changes into upstream projects. Everyone’s time and contribution is much appreciated!

That’s all for now folks. Stay tuned for more exciting updates to come!

Librem 5, the world’s first ethical, user-controlled smartphone, makes steady progress for initial shipping beginning April 2019

Device maker Purism shares new details on the smartphone’s status and production schedule

SAN FRANCISCO, Calif., September 4, 2018 — Purism, the social purpose corporation which designs and produces popular digital rights respecting hardware, software, and services, is sharing the much anticipated progress and scheduling for its Librem 5 smartphone. Read more

The Back to School sale is on!

For some of you, it is a time to return your educational institution and continue the important process of learning about the world around you—maybe for some of you it is the first time being part of higher education, while some of you might be long-time academic researchers and associates. For those who are sick of their thick laptops weighing down on their backpacks and who would also want something with security in mind, what better way to start the school year than with a Purism laptop?!

While learning important topics like economics, computer science, mathematics, history and law, why not also be the teacher and show folks around you the importance of privacy and security? At Purism, our laptops are geared for exactly that.

Now you can save money with our back to school special. From now till September 9th, enjoy significant savings on our in-stock laptops and be protected: on any of our current Librem 13 or Librem 15 laptops, use coupon BTS-SHJXO-18 to benefit from rebates ranging from $100 to $465 (Librem 13) and from $115 to over $480 (Librem 15) depending on the configuration. The more you spend on upgrades and accessories, the greater the savings! Of course, if you want to order laptops for a whole classroom, we won’t stop you…

If you’re looking for even more affordable alternatives and don’t need the uncompromising anti physical tampering features that our TPM-enabled laptops provide, you may be interested in the non-TPM variants of our laptops on clearance (limited quantities available, depending on the keyboard layout you choose). The same coupon code applies, allowing you to grab some of those laptops for as low as $927.07!

Librem 5 general development report – Updated August 6, 2018

The Librem 5 team has been a busy group with GUADEC along with lots of exciting development changes. Here’s a summary of what has been going on with the Librem 5 team the last few weeks.


Recently most of the Librem 5 team members attended GUADEC. Some of the Librem 5 attendees gave talks as well. Since many of the talks are still being edited, here are a few of them for your viewing pleasure:

There were also talks given on security items and implementing phone UIs with GTK+. We’ll link to those talks when the editing is complete.


The Librem 5 will look beautiful but that doesn’t come without effort. Lately, our design team has been hard at work on a new icon style for GNOME 3.30 that will be used by the phone. They have also been working on expanding the mockups for the cellular settings panel with more advanced features as well as more detailed work on the shell.


Software Work


The images were taking a long time to build so we were able to cut down the total build time by making a few tweaks. This makes development and testing a little nicer. There was also the first prototype aarch64 build with PureOS wich worked well. The images haven’t completely shifted over to PureOS as a base (instead of Debian buster) but that is coming real soon. If you’ve been running the x86_64 VM, then you’ll be happy to know that recent images allow you to resize your rootfs to fill a larger (31GB) space. This will make development much easier since previously the image was only 3.6GB. There is still work to be done on resizing the rootfs but it’s in a usable state now.


Phosh has seen many under-the-hood improvements in the form of bug fixes, like several potential crashers and missing initializations. Also the brightness slider was fixed to behave properly when moved.

Wayland global handling was moved into a separate GObject. A lockscreen-manager object was introduced to unclutter things (it also picks up the timeout form GSettings now) and all remaining Layersurfaces were converted into PhoshLayerSurfaces.

It’s these code clean ups that really pave the way for community contributions because the more organized code is, the easier it is to understand and contribute.

The integrity of phosh is critical since it is the phone shell so a gitlab smoketest has been added to run phosh under Valgrind. Also it’s just a start to our eventual language support, but Spanish and German translations have been added.

And there were some odds and ends fixed up in phosh too. As we mentioned in the last progress report blog post, there was some ongoing redshift work. This code was merged to master including a fix for race conditions when listing video modes. Phosh/wlroots now starts via gnome-session and a (software) home button was added to the bottom of the screen.


In the land of wlroots there were also plenty of under-the-hood changes. Some custom video mode patches were merged upstream to allow any custom video mode to be defined. Since the Librem 5 will ultimately not include X support, we needed to remove the dependency on xwayland. So now wlroots is built both with and without xwayland support. A wlroots freeze has also been found to be caused by one logging out of the ssh session that started wlroots and there it is awaiting some upstream discussion on how to handle this.


The keyboard (virtboard) will ultimately benefit from the great text-input protocol work that has been recently worked on. The text-input-v3 patch has also been updated and sent upstream to Wayland for review. An implementation of the text-input protocol for GTK3 was submitted upstream and is a work in progress. For wlroots support, a recreated implementation has been drafted, soon to be submitted for review.


In order to integrate Calls with the gnome-settings-daemon and gnome-control-center, it became clear from discussions at GUADEC that the best path forward was to switch to using ModemManager instead of ofono. So even though the testing thus far has been with an ofono implementation, this was an unavoidable necessary change. The initial implementation of ModemManager backend of Calls was completed and has started undergoing tests.

The UI of Calls has made some strides to look like the mockups from the design team. Below you can see the implementation (left) next to the mockup (right).


Some more bugs were fixed in libhandy too as well as more preparation for GTK+4. One of the issues found and fixed was memory leak was found and fixed. Also there was a bug found and fixed in HdyColumn where the wrong width was being used for column height calculation.

If you are following the librem-5-dev email list, then you may have seen that libhandy v0.0.2 has been released too!

Epiphany/GNOME Web

Nobody likes unsolicited ads so Better ad blocking was suggested to upstream to be used with epiphany and is undergoing discussion.


The phone will ship with an SMS app which also has E2EE messaging. We are working with the Fractal project upstream to get encryption implemented, but it’s not clear whether the Fractal 1-1 successor app (GNOME Messages) will have all the things we need by launch. For a more detailed analysis of Fractal’s role on the Librem 5 read the Banquets and Barbecues blog post.

This is why “Chatty”  (code name) is being developed by Purism, a new chat application using a libpurple backend, which will contain E2EE of XMPP messages via OMEMO from day 1 (when Librem 5 phones are shipped in January), as well as non-encrypted SMS. Since the revelation that ModemManager is needed instead of ofono for the Calls application, a D-BUS handler was created for the ModemManager backend of the messaging app. With this ModemManager setup, sending and receiving SMS is working so far!


Security is one of our favorite things (maybe you’ve noticed) so some research was done on TrustZone, TPM and other related topics. There have also been some internal discussions about tamper-resistant boot, Heads, and alternate USB modes for video output. So we’re really starting to think hard about implementing security measures for the Librem 5.


It is no small feat to get a working kernel and drivers ready for the i.MX8M board. With lots of hard work, we now have ethernet working. As a requirement for DRM and graphics support, the PCIe has been forward ported. The second SD port is now working but not SDIO yet (the SDIO board is powered by USB so need to get USB working first) so working on getting the designware USB core working. More i2c devices have been enabled. The board will also need some sort of battery charger and the one being tested now is the BQ25896 from TI, but a power supply driver had to be added and submitted upstream.

There is still a long road ahead towards getting the kernel and all of the drivers in working order, especially on the graphics front. If there are any graphics driver experts out there willing to lend a hand, please reach out to us in the Matrix chat rooms.

Hardware Work

We’re still working with our potential manufacturer of the development boards to review the schematic developed by the Librem 5 hardware engineers and make suggested changes. However, many things are set in stone for the development boards and many parts have been ordered so here are some components you can count on being on your development board:

Community Outreach

There is a new FAQ up on the developer documentation site, just based on some repeat questions we’ve seen in the community/librem-5 matrix channel. We are not aiming to answer ALL questions here that you can think of because that would require too much time but rather we’re adding questions that are just commonly asked.

A big Thanks goes out to all of the external teams that have helped review and merge changes into upstream projects. Everyone’s time and contribution is much appreciated!

That’s all for now folks. Stay tuned for more exciting updates to come!

An overview of this summer’s community conferences

This summer, we have been kept busy with a number of things. As you can see with the many blog posts from the Librem 5 phone development team (many more are scheduled to be published in the coming days and weeks), we have been heavily focused on preparing the software platform for the phone, as well as designing the hardware to be manufactured for the development kits and the components that will be used for the production phone.

However, our work does not happen in isolation, hence why many of us attend FLOSS conferences as part of our collaborative development model. Whenever and wherever possible, we aim to supplement our attendance with sponsorship of those important Free Software events.

  • The GUADEC 2018 conference attendees

    Some of you might already have met multiple Librem 5 developers who attended GUADEC at the beginning of the month, where we sponsored a coffee break to offset some of the costs of organizing the conference.

  • This week, our PureOS developers are attending the Debian conference, starting with “Debcamp” this week and then the core conference days this upcoming week. Like GUADEC, we are also supporting debconf by sponsoring the event in addition to sending team members there. You can see Zlatan, Jonas, Matthias and Chris Lamb roaming the venue, so make sure to say hi to them!
  • Shortly after debconf, some of us will be attending Akademy 2018, the KDE conference, which we are sponsoring at the bronze level.

Those are the essential conferences we’re attending this summer season. While we are careful with our travel and sponsorships this year with the significant investments that our R&D efforts require, we hope to continue to support such events close to our technological stack and communities, and to broaden our presence in the future.

Librem 5 general development report — July 16, 2018

These last few weeks, the Librem 5 team has been hard at work improving the current software stack as well as making great strides towards finalizing the development kit schematic. Here are the highlights of the exciting progress that has been made.

Software Work


The images produced for the i.MX6 board now have phosh as the default shell and we are experimenting with PureOS as the base OS (instead of Debian buster). There is also now an x86_64 raw VM image being produced and you can follow these instructions on getting a copy of the image and running it. The VM image uses the same screen resolution that the actual Librem5 phone will use.

While the i.MX6 images have been developed for the current hardware in the team’s hands, work continues on the image to be used on the i.MX8-based development board and actual phone. Note that during the investigation of the i.MX8 CPU, there were freedom issues that needed to be addressed. To read more about this, checkout the Solving the first FSF RYF hurdle for the Librem 5 blog post.

The image built for the i.MX8 board can now boot a very basic mainline kernel (instead of the vendor kernel offered up by the manufacturer). The next steps are to bring more components (like the display) online and to upstream these changes. All in all though, this i.MX8 image is really coming together!


At some point, most people will likely use their Librem 5 at night so having redshift in place makes the screen easier on the eyes. There was some work done to implement some of Mutter‘s DBus API in phosh, needed for e.g. display configuration and redshift. So now, phosh can detect the attached outputs and supported video modes and report them in a mutter/gnome-shell compatible way so they show up in gnome-settings and gnome-settings-daemon is happy. This is the base for future gamma control work (redshift). This depends on a patch to wlroots which is currently under discussion.

Other phosh usability improvements have been made as well. The lock screen timeout has been increased to allow for a bit more time to log in. Also, the favorites / home screen handling has been corrected to properly wrap columns and add scroll bars when necessary.

Since phosh is the shell and it works hand-in-hand with wlroots, they both are key areas for the image development. There have been frequent updates to wlroots to stay current with the upstream snapshots. A minor issue was fixed in upstream wlroots to improve the error handling of compiling for armhf. Also support for adding custom video modes has been added to wlroots. Work on Gcr system-prompt integration is being done in phosh. This  will solve a heap of authentication and modal dialog issues with PINs, PUKs, passwords, smart cards and keyrings by leveraging what’s already in GNOME.


There has been ongoing work into the onscreen keyboard (virtboard) which has led to virtboard being included in the images. In order for virtboard to show/hide when needed, merging of an input method (text-input) into wlroots was needed and GTK+ upstream was contacted about upstreaming the input method code. We are working on a patch securing the input method in our compositor. There has also been continued feedback from upstream on upstreaming the virtual keyboard protocol. The keyboard scales much better now too!


The calls application has also been added to the images for easy access. Within the calls app, the sending of DTMF tones has been added so that you can now hear those familiar sounds when touching a number on the keypad.

To make calls more robust, the possibility of doing unit tests of Calls’ oFono provider backend using the phonesim simulator were explored but unfortunately running ofonod requires root privileges in order to  take ownership of the well-known name, org.ofono, which makes testing a massive headache if not impractical. Still though, unit tests for the Calls Provider interface using the dummy implementation, as well as tests for Origin and Call interfaces have been added.


The libhandy GTK+ widget has seen some growth too. HdyColumn has been added to help out with dynamic column resizing. There have also been some unit tests added for HdyArrows (used for directional swiping). A first version of libhandy has been released and v0.0.1 has even been uploaded to Debian experimental!

Epiphany/GNOME Web

The web browser on the Librem 5 will be Epiphany so adaptive changes have been merged upstream to improve the usability on small screens. An in-window app-menu for Epiphany has started to be implemented and is still a work in progress.


A demo app for libpurple has been drafted and an XMPP conversation has been established between the demo app and Dino. For encryption, an OMEMO conversation running with libpurple and the Lurch plugin was established. There has also been a conversation-view that pulls avatar/account data from a buddy list stored in xml. The ofono interface in SMS/XMPP was implemented into the demo app as well.

Hardware Work

External factors have caused our development board schedule to slip beyond our initial June projected ship date. While developing the schematic for the development board, not all information was readily available so investigations were needed on various components (e.g. cameras, WLAN+BT, batteries, switches, push buttons, etc), and circuits needed to be added before the schematic is considered ready for review by the third party that will print the boards. The Librem 5 hardware team has done all of these required tasks and are in the process of ordering parts to be sent to the manufacturer of the boards. Our current rough estimate for shipment of the development boards is August 2018 but stay tuned for a more detailed blog post on the subject.

Community Outreach

The Librem 5 matrix chat rooms have really exploded with lots of fantastic feedback and questions. Some community members have even stepped up to help find new issues, fix some issues, and  add to the documentation. Due to the demand from the community, there is now an x86_64 VM raw image available that looks just like what the team is installing on the i.MX6 boards.

The Purism collaboration with the Plasma community continues as well. There are now some arm and aarch64 flatpaks of Plasma software. The Purism team is also actively investigating building a Plasma image for the i.MX6 boards as well.

Developer documentation changes have also been made to better guide everyone to the right places:

  • The volunteers page has been updated with more clear instructions on how to participate.
  • Regardless of the type of board (whether physical or emulated), common steps have been added to a first steps page.
  • There are now instructions on setting up the x86_64 VM image.
  • Contribution guidelines have been posted to demonstrate the preferred communication processes
  • A GTK+ page has been added with example apps and includes documentation on adaptive labels.
  • A phone constraints page has been added to outline some specific constraints that should be considered when developing apps for the Librem 5 phone.

We also recently attended the GUADEC conference in Spain where we got to interact with a lot of wonderful folks excited about the Librem 5. More on the GUADEC conference to com in a future progress report.

A big Thanks goes out to all of the external teams that have helped review and merge changes into upstream projects. Everyone’s time and contribution is much appreciated!

That’s all for now folks. Stay tuned for more exciting updates to come!

Solving the first FSF RYF hurdle for the Librem 5

While investigating using the i.MX 8 for the Librem 5 phone we found an issue that would have been problematic for us to obtain the Free Software Foundation’s “Respects Your Freedom” (RYF) hardware endorsement:

  • In U-Boot there are a number of firmware blobs that need to be loaded into the DDR PHY so that it can be trained to work with DDR4. This training is done on every boot.
  • The normal boot sequence for the i.MX 8 is that the internal ROM loader loads the Secondary Program Loader (SPL) which, in this case, is a small version of U-Boot that can initialize the DDR and load the full U-Boot into DDR to finish the boot process. Very early in the SPL, the training blobs get loaded into the DDR PHY and the training sequence is run. The DDR training procedure is completely un-documented so re-writing the firmware blobs with free/libre or open source versions would be an arduous process.
  • We can’t ignore the DDR PHY because it is interface between the i.MX 8 internal buses and the DDR4 chips outside of the SOC. The DDR PHY is also part of the i.MX 8 silicon so we can’t just replace the DDR PHY with a different one. It also appears that all DDR PHY’s required this training to work with DDR4, so going to a different SOC wouldn’t solve it either.

The RYF has a “secondary processor” exclusion that can be granted on a case by case basis. We will leverage this exclusion to load and train the DDR PHY on the i.MX 8. We will use a secondary processor to keep binary blobs out of u-boot and the kernel. Read more