System76 and the LVFS

Update 2021-11-12: System76 is now using the LVFS to distribute firmware. We’re working together to put much more firmware on the LVFS in the future.

System76 is a hardware vendor that builds laptops with the Pop_OS! Linux distribution pre-loaded. System76 machines do get firmware updates, but do not use the fwupd and LVFS shared infrastructure. I’m writing this blog post so I can point people at some static text rather than writing out long replies to each person that emails me wanting to know why they don’t just use the LVFS.

In April of last year, System76 contacted me, wanting to work out how to get on the LVFS. We wrote 30+ cordial emails back and forth with technical details. Discussions got stuck when we found out they currently use a nonfree firmware flash tool called afuefi rather than use the UEFI specification called UpdateCapsule. All vendors have support for capsule updates as a requirement for the Windows 10 compliance sticker, so it should be pretty easy to use this instead. Every major vendor of consumer laptops is already using capsules, e.g. Dell, HP, Lenovo and many others.

There was some resistance to not using the proprietary AUEFI executable to do the flashing. We certainly can’t include the non-free and non-redistributable afuefi as a binary in the .cab file uploaded to the LVFS, as even if System76 does have special permission to distribute it, as the LVFS would be a 3rd party and is mirrored to various places. IANAL and all that.

An employee of System76 wrote a userspace tool in rust to flash the embedded controller (EC) using a reverse engineered protocol (fwupd is written in C) and the intention was add a plugin to fwupd to do this. Peter Jones suggested that most vendors just include the EC update as part of the capsule as the EC and system firmware typically form a tightly-coupled pair. Peter also thought that afuefi is really just a wrapper for UpdateCapsule, and S76 was going to find out how to make the AMI BIOS just accept a capsule. Apparently they even built a capsule that works using UpdateCapsule.

I was really confused when things went so off-course with a surprise announcement in July that System76 had decided that they would not use the LVFS and fwupd afterall even after all the discussion and how it all looked like it was moving forwards. Looking at the code it seems the firmware update notifier and update process is now completely custom to System76 machines.

Apparently System76 decided that having their own client tools and firmware repository was a better fit for them. At this point the founder of System76 got cc’d and told me this wasn’t about politics, and it wasn’t competition. I then got told that I’d made the LVFS and fwupd more complicated than it needed to be, and that I should have adopted the infrastructure that System76 had built instead.

The way forward from my point of view would be for System76 to spend a few hours making UpdateCapsule work correctly, another few days to build an EFI binary with the EC update, and a few more hours to write the metadata for the LVFS. I don’t require an apology, and would happily create them a OEM account on the LVFS. I guess it might make sense for them to require Pop_OS! on their hardware but it’s not going to help when people buy System76 hardware and want to run Red Hat Enterprise Linux in a business. It also means System76 also gets to maintain all this security-sensitive server and client code themselves for eternity.

It was a hugely disappointing end to the discussion as I had high hopes System76 would do the right thing and work with other vendors on shared infrastructure. I don’t actually mind if System76 doesn’t use fwupd and the LVFS, I just don’t want people to buy new hardware and be disappointed. I’ve heard nothing more from System76 about uploading firmware to the LVFS or using fwupd since about November, and I’d given multiple people many chances to clarify the way forward.

Published by

hughsie

Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

28 thoughts on “System76 and the LVFS”

  1. That’s disappointing. I’ve been looking forward to a S76 machine for my next laptop. Do you have any idea if this is also true of their desktops?

    1. I wrote my reply when I’d only heard your side of the story. I’ve now read their official reply (http://blog.system76.com/post/173801677358/system76-and-lvfs-what-really-happened) and it seems your post was non-objective at best, and maybe misrepresentative of the truth, which is probably somewhere in between your account and theirs (as neither of you are disinterested parties). I still think it’s a shame that a vendor can’t use existing infrastructure, but frankly I don’t know much about LVFS and its merits, and I don’t think their decision is simply NIH syndrome. But I do find it disappointing that you made strong claims without proof (e.g. that their update software won’t be available except on Pop!_OS, which they claim is not true) which then appear on Planet GNOME.

  2. Folks used to blame Canonical for the not invented here syndrome, now that Canonical is showing healthy signs of recovering from past mistakes we seems to have a new player in town that likes to reinvent wheels. Sorry System76, I love you, but this is just lame.

  3. This is just the sort of behavior one would NOT expect from a firm like System76. I like to think we are all just one big, happy Linux family. I detest disillusionment.

  4. That *really* is a shame. I to was looking forward to buying my best laptop from S76. I started using Pop_OS! a few days ago, and I love it! However, since I detest lock-in of any kind–I guess I will install either Ubuntu or Fedora.

  5. WOW! What most strikes me are the responses of the System76 guys talking about FUD. Come on, I like to know the conditions of what I’m going to buy and I was liking what they were doing, but not anymore (it’s not because they don’t use LVFS, but because of the low level of discussion they can reach)

  6. This is exactly why gnome lost many people… it is either their way or no way!

    Gnome people is not flexible, do not allow differences and is a pain to accept anything that it is outside their “vision”. And remember, their “vision” is always perfect

    This is clearly a way to give users TODAY a tool for then to update the firmware… by releasing this they are not closing the LVFS door… postponing a bit, sure, but as gnome people should now, developers have a limited time, so having their current tool now they can push to fix other problems and revisit this in a few months. spectre and friends bugs can’t wait for months of changes and finetune to finally update the firmware.

    It is not black or white… you have many layers of grey!

    Like i always said, gnome people need to relax, learn to listen and stop believing that their way is the only ( holy) way. With that “new way” of thinking and view the world, you would understand that this is a temporary solution and this bad taste blog entry would not even exist.

    1. I’m not sure you understand what the situation is. System 76 decided to come up with their own system, this fits the description of “it is either their way or no way!” I’d say.

      But I suppose you have to get your anti-GNOME, anti-Red Hat attack in.

      1. no, they already had their solution, tried to use LVFS, noticed that it would take longer and they needed to push the spectre firmware updates now… so they pushed their own solution as it was already done and pospone LVFS. They never said they would give up from it, they actually reported toRichard BEFORE this post that they would work on it, it would only take longer.

        But Richard attacked hard a completely reasonable decision and as they refused to support LVFS! does it sound as a good decision?
        If i sound anti-gnome is because this kind of reaction is common in gnome projects over the last 10 years, something that most other open source projects do not have as much. All projects have problems, but gnome reactions are usually bad/breaking ones, reactions that make people leave… Lets see if system76 will cancel LVFS after all due to this attack… i really hope not!

        Finally, i didn’t even talked about RedHat… but for all the redhat supported projects, gnome is the only that have this problem. Actually, some Gnome people could learn a lot from some other RedHat projects!

    2. Totally agree with that argument.

      I’m OK with freedom, or thinking different to others. When you start with the speech “No! I’m right! You are wrong!” is ridiculous.

      Also I agree with Hugh’s remarks, but this is not a problem of life or death. We likely would want some opensource solution, but ROMs are already closedsource, so, what’s the problem here?

  7. In reading this post and then the System76 response, it sounds like their decision is based mainly on resource constraints, which is actually a good way to make decisions, and is heartening to hear, because a company that tries to be all things to all people is doomed. 30 emails is no small matter, and I suspect if it was a trivial change that would have taken a few hours, it would have been done already. It appears that you’re trying to publicly shame them, and for some reason this has risen up the charts on Hacker News.

    There are so few Linux-specific hardware vendors out there, and even fewer that are trying to build hardware in the US. I just can’t understand why you would take the time to trash-talk System76 publicly for what actually seems like a reasonable decision.

    1. I can assure you it’s more engineering time creating your own server and client tools rather than using existing infrastructure.

      1. Not if they already exist.
        It is easier to use existent tools/servers than to rebuild things. It also require different teams, sysadmin/devops vs developers

  8. I am sorry you two cannot work together. But your recommendation for going with a Dell XPS Linux machine is lauaghable and ILL-advised. Dell does not support and ship updates anywhere near as close and tight as System76.
    Not to mention the sheer headache of ordering the damn thing and dealing with their sales department, people. Relying on Dell for service is a DOA proposal. Their hardware is just fine. Nothing wrong with it at all.

    NO. I would rather my companies money go toward System76 and supporting a small company who truly gives a shit about quality and service for their customers. That will never be Dell. Maybe way, way back in the 90’s when they were much much smaller and had to compete.

    You failed to mention a basic fact — their firmware tool runs just fine on other versions of Linux. Your tone was poor. Obviously I did not care for it. What you just said is akin to saying Chrome truly only runs properly on Google made Chromebooks. But *may* not work on Windows, Mac or Linux OSes. What a Asinine statement. Jesus, do you always throw out the baby with the bath water?

    This low level petty garbage is what sets open source/Linux 15 years. Goddamn nerds, we shoot ourselves in the foot instead of looking at the big picture.

    Why don’t you just come out and say how you really feel instead of a mealy mouthed passive aggressive blog post?

    I know I sound tough on you but you need to put the big picture out there. Would you rather a person come into Linux and have a good experience or have a bad one (which could forever paint their perspections of it thereafter)?
    I do not have any answers for you either. But would really hope you would come back around to at least being open to the possibility of partnering with System76 in the future. But I do respect your right to say F off to them too. You do not have to do anything. Period. Times like these when I would point to the very meaning of Ubuntu.

    1. I’ve been very impressed with the firmware team at Dell. For the record, I’d welcome System76 with open arms to the LVFS in the future, but I don’t think it’s a priority for them at all.

    2. > their firmware tool runs just fine on other versions of Linux

      It is not quite true. For Ubuntu derivatives it works fine, but not so good for Debian and the AUR package in Arch. For other distros it is only necessary to build or wait for someone else to package it, not very different from other hardware providers.

  9. All your post will do is confuse and scare people who have no idea what LVFS is, whereas it would seem it is not something that is needed on a System76 laptop due to them using their own equivalent.

    That’s poor taste.

    1. The tool is only available for the pre-installed OS, and I’m sure many people will want to install their own OS on the machines they have bought.

  10. This is pretty unfortunately, and I really don’t understand their reasoning. They say its about “shipping now” but they’ve had nearly a year to do the work.

    I was looking at getting a System76 laptop, but after this, definitely not.

  11. Personally, I think this can be resolved in time. Remember that UEFI itself started as a Wintel lock in plan, anti Linux, but has moved far from that, though it is still highly proprietary and closed source on Dell and other vendors’ platforms.

    Sounds like LVFS is somewhat no responsive, itself. Not through bad intentions, of course. More like ego. I watched X community blow up based on ego. One long term result was that there was an opening for open source alternatives and broader cooperation on better solutions … Vulkan, for example, is a reasonable and exciting new approach that unifies graphics and compute based on todays SIMD GPUs.

    Solving the whole problem may take seeing a bigger picture here.

    I see legit frustration on both sides. A mediator might be useful, which might take some humility on both sides.

    Love to see that result!

  12. I can’t see myself purchasing a System76 laptop and run a dual boot just so I can run their firmware updater…

  13. Just bought a DELL Inspiron 7370 13.3″ with Intel® Core™ i7-8550U CPU @ 1.80GHz × 8, UHD Graphics 620 and 16 GB of RAM for about 1000€. Unfortunately you can’t buy it with Linux preloaded (at least here in Germany).

    I’m more than happy with it and *everything* (except fingerprint reader I guess) works out-of-box :) using Fedora 28 (secure boot enabled). Let’s see if BIOS updates arrive via LVFS.

  14. Response by Cassidy James, employee at System76:
    https://plus.google.com/+CassidyJames/posts/RDKMJtGoX62

    Official response from System76:
    http://blog.system76.com/post/173801677358/system76-and-lvfs-what-really-happened

    Weird response imo. It first go on saying that they still want to support LVFS and claim that they were badly misrepresented, but then it suddenly turn around 180 degrees with “We had intended to use LVFS in the future, but that is no longer the case”. So Richard you were right when you said this on Twitter: https://twitter.com/hughsient/status/953375956412108806
    They also go on linking to the badly researched FossPost article which has already been disproved. Sorry System76, but this just went from bad to worse. As a company you should have handled this a lot better.

Comments are closed.