Updating Firmware on the Librem 5

Doubtful, in my opinion. Binary blob - Wikipedia

I see. Thank you. So more realistic to have future Librem 5 version X with 100% free firmware/hardware

It is a hard job for a little company to provide all it needs to make a device fully free. So sure, there is a chance that future versions will be completely free, but I would not count on it, yet. There are still more important tasks to solve to make L5 a device that more people can daily drive than nowadays.

To be clear: Purism still hopes to have the FSF agree that the Librem 5 is RYF ( Respects Your Freedom (RYF) certification requirements | RYF ) . That would require that, in regard to updates to non-Free firmware, be assumed “not intended after the user obtains the product”.

Purism supplying an application that checked whether there are updates to non-Free firmware would defeat that assumption.

<opinion>

Near future? No!

Any future? Not all blobs are created equal. A sensible person would have to look at the potential risks of the blob and benefits from de-blobbing v. the difficulty of doing so.

Consider the touchscreen v. the cellular modem.

I think most people would decide that in a mobile phone the benefits of deblobbing the cellular modem are the highest, compared with the other blackbox components - but someone can always argue otherwise.

(It is vaguely possible that in the future a cellular modem module becomes available that out-of-the-box comes with open firmware and which works in the Librem 5, in which case it may be an option for you to upgrade the module i.e. carefully remove existing module and install new module.)

Here’s another crazy crystal ball claim … AI will mean that reverse engineering can be done easily and quickly. I would love that to be true. I don’t know how realistic it is. Also: reverse engineering doesn’t get rid of legal or contractual issues.

No.

You should update a blob under select conditions, including but not limited to,

  • you are directed to by Purism Support because you are experiencing a specific problem that is resolved by a different version of a blob
  • you are experiencing a problem and you punt that a different version of a blob will resolve the problem
  • reliable information becomes available that there is a security issue with the version of a blob that you have
  • reliable information becomes available that a later version of a blob contains new functionality that you are interested in using

Randomly updating firmware could in fact be a recipe for instability.

</opinion>

So the corollary would seem to be that the script would have to come from the community.

I recently fired up a Librem 5 USA version 1 that has been sitting in its unopened box for a few years. I re-flashed to the latest version of Crimson and got everything working fine, except for calls. I can send and receive SMS/MMS just fine, so I have the network configured correctly but I can’t make or receive calls.

Since the phone has been sitting unused for so long I was wondering if I the modem firmware was extremely out of date. mmcli tells me my firmware version is firmware revision: MPSS.JO.2.0.2.c1.1-00032-9607_GENNS_PACK-1 1 [Feb 25 2019 01:00:00] which looks very out of date. Is the best way to update it still to reach out to Purism support? Does the USA version need different firmware so I know what to request?

Side note: I wonder what other firmware is also very out of date.

Which FW version date does the app BM818 Tool show? (Should be at least 20220930.)

And do you have VoLTE enabled?

BM818 Tool shows 20190510 so it is out of date. Enabling VoLTE got calls working so good call on that, but looks like I still need to update the firmware.

Here are the instructions: Reflashing modem firmware - Purism user documentation

Shouldn’t there be some automated mechanism that informs users when firmware has to be updated? Or ideally, should firmware not be updated automatically with system updates? I can imagine that not too tech savvy customers do not think of firmware that has to be updated, and maybe they will blame the device of having bad quality.

As far as I observe, Purism generally believes that no firmware in any given Librem 5 needs to be updated as long as a particular customer does not experience a concrete issue in using their own device. Then, any such issues are handled as customer support tickets. So, any reference to “out of date” probably means that Purism moved to using newer versions of the firmware internally, for manufacturing, and for customer support cases. It does not necessarily mean that every customer should follow.

Yes and no.

That would be a convenience for some users.

But it might be perceived as violating libre software principles / FSF guidelines (assuming that the firmware is not open source).

And if a user intentionally does not upgrade the firmware then constant badgering by apt would be annoying and expecting users to Pin their firmware versions might be trading one bad thing for another.

In some cases that will be quite impossible. For example, I updated the USB-C PD firmware on my phone and that procedure required booting in serial download mode - so apt isn’t going to cut it.

There are in any case practical security considerations in deliberately making it difficult to update the firmware.

So there are plenty of trade-offs and no one approach will keep everybody happy.

Interesting. I seem to have missed that [one of the several firmwares to update to the latest]…

… and it’s annoying that these still need to be hunted down by users by hand. Does anyone know if all these firmwares are checked in the new update tool (could it be implemented?), or any other automatic script that is part of PureOS?

Again: I’m pretty sure that Purism is still trying for RYF. And, as I read RYF, they don’t want to supply a tool that will automate updating non-Free firmware. Just by the pathname ( firmware-tps6598x-nonfree/-/raw/master/tps65982-librem5-dp-alt-mode.bin ), I’m pretty sure this is non-Free firmware.

By the way, your link was a nice reminder of how much FranklyFlawless added to this forum ( Updating Firmware on the Librem 5 - #3 by tracy ).

Which raises the separate weaker question of whether it would be OK to provide a dashboard somewhere that merely tells you how your version compares with the latest version, for each component’s firmware v. doing anything to actually apply a firmware update.

This would likely be painful though since random blobware provides no consistent interface for interrogating the version. Each component would probably require special case code just to find the version on the device.

:heart:
…

@carlosgonz I’m pretty sure that Purism will substitute all blobs in Librem 5 with open drivers like they’re doing now with etnaviv GPU throw reverse engineering! They just need time (and money :sweat_smile:) so, one day, updating blobs will be senseless!