12 ms·
When should we require that firmware be free?
- palata 2y agoI think it's a very interesting question! Sometimes it feels like it makes sense to keep some software proprietary (e.g. the algorithms running in a Garmin watch have a lot of value, customers don't just buy the hardware). Other times it feels like it really doesn't. I often give the example of Marshall smart speakers: the software seems to be very bad, it's never updated but it's connected to the internet, and the UX is not pleasing me. But initially I bought it for the hardware: it looks nice, and the sound is nice. In my opinion, when I buy hardware as a customer, I should have the right (and be given the tools) to interface with that hardware. So there should be some open source firmware that gives me reasonable access to the hardware I bought. In other words I should be able, legally and without impossible reverse engineering, to write my own system for hardware I buy. If I managed to write software that competed with Garmin on their own watches, so be it. That's fair competition (and that's probably super hard to do). The fact that Marshall can push me towards throwing away my perfectly fine hardware because they abandoned the bad software they once pushed on it is not fine. And it encourages companies to invent subscription models where my perfectly fine hardware becomes unusable if I stop paying them even though I don't want or need their updates. So somehow I think there is a middle ground that would help making products better and hardware more sustainable, and we are not there yet.
- stego-tech 2y agoThis is the same sort of middle-ground I increasingly find myself advocating for, with one caveat: once something is no longer being manufactured (hardware) or sold and supported (software), it should be entirely open sourced by law. After all, why shouldn’t (as a random example) the iPhone 4 be FOSS hardware and software in 2024? It’s perfectly usable if a bit sluggish by modern standards, could reduce eWaste (albeit by a small amount), and gives customers control over what they purchase. There’s also the additional disincentive to companies in the yearly release cadence or ending support too early just to drive sales. I look back at the mounds of perfectly functional hardware amassed over my life, hobbled or bricked solely by software a vendor refuses to fix or otherwise allow end users to repair themselves. A Wii U with bad flash, an Xbox with a corrupted bootloader, a smart TV with a bad OS that crashes the display, a universal remote no longer supported by its manufacturer with new codes or firmware. All of these should’ve been unshackled the moment their manufacturers abandoned them, so that their owners can fix and support them indefinitely if they so choose.
- hansvm 2y agoMy initial counterargument was going to bring up that Garmin example GP added, since largely the same valuable code is likely shared across many devices. Reflecting further though, the harm of a manufacturer crippling a physical device does seem worth guarding against regardless, and if the code is really that valuable then such a law might encourage longer support lifetimes (or, at the very least, not crippling a perfectly good piece of hardware).
- juicypt 2y agoI think there's a reasonable middle ground here. I would think it's fine for them to keep their algorithms closed-source, but be required to opensource the minimum amount of firmware to allow access to all of the hardware: bootloader, CPU, storage, memory, display, and sensors. No need to reveal any trade secrets at all. The above stuff is not the secret sauce that makes people buy their watches anyway: they use some of the most basic hardware in the market at their price point.
- palata 2y agoThis is exactly what I meant. I don't want Garmin to give me access to their algorithms. I want to have a way to flash a minimal system on it if I want to play with it. For something like Marshall smart speakers, it may end up making those products actually good: I could totally imagine an open source system for smart speakers. And that would be infinitely better than the crap Marshall put on the one I own. It works well for routers: on many routers you can install openwrt or opnsense.
- kube-system 2y ago> once something is no longer being manufactured (hardware) or sold and supported (software), it should be entirely open sourced by law. There are a lot of practical barriers to this being that simple. A couple of common examples: 1. Third-party dependencies are a thing. Many pieces of hardware or software contain pieces of other hardware and software from other organizations, and the end vendor may frequently not even have the right themselves to open source them. 2. Many products are abandoned when businesses fail, in which case, there may be no staff to open-source them.
- Aurornis 2y ago> If I managed to write software that competed with Garmin on their own watches, so be it. That's fair competition I worked on a line of products that allowed user modifications of the software. We didn’t explicitly endorse it, but we also had instructions on the website for how to get into the hardware and we designed it so users could modify things and persist their changes. It was fun to see what people did with the hardware, but the volume of support requests was also out of control after a while. Companies wouldn’t actually care if you created alternate software for something like a watch if there was no downside to them. It would sell more hardware to people who wanted to customize. The problem comes later, when many people casually modify their devices and then expect original customer service to get it back to the original state. You can try to place rules on customer support, but customers will lie through their teeth to customer support if they think it will get them what they want. We would get people demanding RMA replacements because their device “mysteriously” stopped working, then when engineering did random sampling of RMAs we would find that they had modified the software and didn’t know they could hard reset it. It’s a real problem. HN imagines the average person who modifies hardware to be highly knowledgeable and self sufficient. In the real world it’s usually someone following an outdated guide online where they copy and paste different commands until something works. Those same people are the first to try to return the product or request customer support when it doesn’t work perfectly. Prusa (IIRC) had an interesting solution where you had to break off a physical piece to void your warranty in order to try different firmware. People were up in arms about it, but I think it was the smartest way to handle this conundrum.
- brk 2y agoThis is very accurate. Most of the time the motivation behind restrictions and not releasing code is rooted in support costs. People can and will break things inadvertently, but they won't like that and will then go the route of requesting support, RMAs, etc. Additionally in some cases those people that developed random customizations will release them, and now other users will install or use them, and if an issue crops up, the support costs are now exponentially worse.
- AnthonyMouse 2y ago
- joshuaissac 2y agoOne approach might be to see if the software can be replaced with an open-source alternative that allows an equivalent level of access to the hardware functionality, with official support for performing such a replacement (though not necessarily for the replacement software itself). If so, then the manufacturer need not provide the source code. Whereas if there is no supported way of replacing the software with an open-source alternative, then compel the manufacturer to make the software available. Under this system, Garmin could keep their software closed-source as long as they provide a way to replace the firmware and software with an open-source alternative that can use all of the hardware features, while not necessarily having the software features.
- palata 2y agoYes, that's exactly what I meant! Also I don't really care about having the source code of the firmware if I have an API to access it. If I own Qualcomm hardware, I should not need a damn NDA to flash something on it.
- AnthonyMouse 2y ago> Sometimes it feels like it makes sense to keep some software proprietary (e.g. the algorithms running in a Garmin watch have a lot of value, customers don't just buy the hardware). The trouble with this is that it doesn't really work. A normal user of the watch is probably not going to reverse engineer the binary but a competitor will, so concealing the source code is hurting the customers more than the competition. Not only that, it hurts you more than it hurts competitors. If you publish the source code then customers make improvements to it and fix bugs. But it's still firmware, i.e. specific to the device, so you get the benefit of that rather than competitors. Customers contribute fixes so you need fewer developers yourself or your developers can spend more time adding features that make sales.
- necovek 2y agoAny larger competitor would surely discourage disassembling a competitor's code because mere exposure to it might make you liable to lawsuits if you develop similar features (and you can't trust that the fact you did it won't leak out).
- AnthonyMouse 2y agoIsn't this the argument for releasing the source code? Looking at the code would be as bad as disassembling it. You can release source code under a license that gives customers the right to modify it and distribute patches to your other customers who have the license that came with their hardware without giving competitors the right to ship it on their own hardware without paying you.
- necovek 2y agoSure, and some companies strongly discourage looking over other open source code for exactly that reason. But companies don't release their source code mostly for a different reason: they honestly believe that this is where their value is, or they believe support costs would outweight any benefits. For some, it's true, but for most, it's utterly false (or there is a tiny little bit of code somewhere that is valuable, with all the rest being boring code that nobody else could put to use).
- kuschku 2y ago> the algorithms running in a Garmin watch have a lot of value, customers don't just buy the hardware Algorithms are not subject to copyright. The law has already made a decision on this.
- jazzyjackson 2y agoGood reason to keep them a secret then
- bombcar 2y agoYou can remove some of that by making the "open platform" happen after a certain date (e.g, when the warranty has already expired).
- axus 2y agoManufacturers should not be mandated to spend extra money to support our hacking, but spending money/effort/lawyers to prevent that hacking could be prohibited.
- jmclnx 2y agoIMO, If you buy hardware, you should get firmware src too allow porting to whatever OS you want to run
- Cumpiler69 2y agoIf you buy SW should you also get the source code to port it to the HW you want or to make mods for it?
- ongy 2y agoYes.
- DowsingSpoon 2y agoObviously, if we’d like to require programmers to release software in source code form then we’re going to need some rules. If programmers are made to release software in some source code form then what languages should we require? Clearly, Brainfuck is out of the question, for example. Though, it would do no good to legislate the programming community into a religious war over FP or OOP. My proposal, however modest, is that the law require software be released in some kind of well-specified, portable language. Something succinct and powerful. Something symbolic, abstract, and much higher-level than the underlying hardware. Hm. How about x86_64 machine code?
- bryanlarsen 2y agoThat's generally handled with a "preferred form" clause -- it must be released in the form it was written in. If you originally wrote the firmware in Brainfuck, it's fine to release in Brainfuck. But you can't transpile to Brainfuck and release that.
- fredg333 2y agoThis isn’t obvious at all. Does everyone need to speak German for global logistics to work? Is all software out there Ruby? Why the sudden need for a rule that clearly isn’t being followed now and yet no giant foot has squashed us. The well specified form is local machine state. Run someone’s Ruby, automate capturing the machine state. You want it a certain way, be the change you want to see in the world.
- mschuster91 2y agoFrom the comments: > My primary use of non-free firmware is to stop free riding by hardware cloners. It really sucks to put a lot of effort into a hardware and software design, then have your product get cloned using your own firmware. That's a massive problem indeed. In ham circles, the tinySA spectrum analyzer is one prime example... there's tons of clones of them floating around despite the hardware actually being closed source, but the firmware being FOSS. And people turn up in ham forums asking why their "tinySA" doesn't work, only to find out they have been shipped counterfeits with sub-par components.
- immibis 2y agoTrademark law is for that. They can clone the product but they can't call it tinySA.
- flyingcircus3 2y agoPerhaps that would prevent people from selling clones as if they were authentic, but the stated problem is that clones are undercutting the original creators devices. Changing the name puts an increased burden on the cloners to get their name out there, but in a hobbyist market surrounding a technical subject, that seems pretty small compared to the burden of developing hw/fw that users are willing to pay for.
- immibis 2y agoIf you don't want people to copy and improve your software, don't give them permission to copy and improve your software. If you don't want people to copy and improve your hardware, don't give them permission to copy and improve your hardware. It works the same as software copyright, AFAIK. If you don't want people to make their own products that are similar to yours... sorry, that's not possible. Imagine what the world would be like if Elon Musk could claim a monopoly on Twitter-like services - if Mark Zuckerberg didn't first claim a monopoly on all social media - if IBM didn't first claim a monopoly on all computing products. You get to differentiate your product based on price and features, just like everyone else does.
- rollcat 2y ago> When should we require that firmware be free? Same as with any other requirement: when you can afford it. Slack's desktop client shouldn't require Electron (making it unusable on low-end devices), but it does. They can get away with that requirement, because there's hardly any alternative client worth your effort/attention. I was sceptical about BitWarden (versus 1Password), because their UX was quite far behind - but they're slowly catching up, and I might have to reconsider my choice there. If I wasn't "required" to run a dozen different proprietary/non-portable apps, I'd be using OpenBSD instead of macOS. I do not "require" X to be free, but given all other things being equal, it's my preferred choice. Unfortunately, a lot of the time, we do not have the luxury of being picky.
- 2OEH8eoCRo0 2y agoFor the amount that these services cost, where the fuck is my native desktop client? I don't want electron and I don't want to use a web browser. They're phoning it in with this trash because there isn't competition. They want to make their own lives easier rather than the customer's.
- bigstrat2003 2y ago> They want to make their own lives easier rather than the customer's. This right here is the crux of the matter and why I have no sympathy for the defenses of Electron. I don't care at all how easy it is for the company's developers to make something. I care that the software I get is high quality, and I'm not willing to sacrifice that so that the company can cut corners on their costs.
- rrr_oh_man 2y agoYou are clearly not a manager (That is not an insult)
- fulladder 2y agoMatrix, or Discord
- nelsoch 2y agofree? definitely when partially(however minute) funded by taxpayers
- Findecanor 2y agoI think software and firmware should be free if critical functionality depends on an Internet-based service. Or, it should at least be free whenever that service gets discontinued. I've been thinking that perhaps to be able to market a product where critical functionality depends on commercial software connected services, a company should be required by law to provide their source code to a government agency that holds it in escrow. Then when the company goes out of business or just decides to discontinue the product then that agency will publish the source code under an open source license. This shouldn't just apply to firmware in connected devices, but to all commercial connected software. There are countless games that can't be played any more only because a company behind it has discontinued its DRM servers. Of course there are details that need to be worked out with how this will work in practice. The publisher will have to prove to some degree that the provided source code is sufficient. You'd have to prevent the publisher from circumventing the solution in a future software update. And the publisher would have to pay a free for the privilege, to be able to fund the agency.
- crazygringo 2y agoI am sympathetic toward the idea. However: > a company should be required by law to provide their source code to a government agency that holds it in escrow The reality is that a lot of code can be licensed from third parties, and there's no moral principle by which it would be right to expose and open-source their code. So I'm really not sure how workable or useful this would actually be.
- hoherd 2y agoWhen the end of Spotify Car Thing was announced this is what I expected. I thought these perfectly good devices had been built on license encumbered libraries that would prohibit open sourcing the code, and that all those hardware devices would go to waste. Thankfully that was not the case, but most of the time it is. It's amazing how much licensing controls how software is used, and thus how much systems and software designers should consider the license of the libraries and frameworks they choose.
- sowbug 2y ago
- deleted 2y ago[deleted]
- mindslight 2y ago> The maximalist position is not to compromise at all - all software on a system, whether it's running at boot or during runtime, and whether it's running on the primary CPU or any other component on the board, should be free. As stated, I don't think this actually makes for a consistent position. The author throws out the terms "system" and "board" and hopefully assumes they define a good boundary, but they actually don't. PCIe expansion cards and hard drives are both not "on the board" but still part of the "system". Peripherals and other support devices (keyboard/usb switch/UPS/serial server) are not "on the system" or perhaps not even part of "the system" at all, yet significantly [ae]ffect the system. Defining that bound is important, because without it you end up with a wishy-washy escape hatch like "within which software installation is not intended after the user obtains the product", making the definition completely fail at being a maximalist position. (and then when taken as a maximalist/hardline position ends up causing strife...) The original FSF position was based on the copyright license status of what they shipped on distribution media. This is neatly consistent, but completely outmoded in today's globally networked software-pervasive environment. The spirit of this lives on in things like linux-libre. I'd say that any modern definition of software freedom must pull in a larger scope that focuses on effective individual freedom in the face of pervasive global networking. A mouse, a video card, and an IoT device can all have proprietary updateable firmware, but drastically different affects on your individual freedom - I've never wanted to change my mouse firmware, if/when video card firmware is updated is (almost) completely under your control and the card lacks easy backhaul, whereas a a proprietary IoT device is essentially a rogue agent on your network. My own definition involves something like a much more fine-grained definition of device, analyzing how easy it is to modify/inspect code on each device, as well as analyzing trust/security relationships between devices. This ends up being independent from maximalism, as you can choose how important it is for any given device to be libre or not, and see how any compromise specifically affects your freedom. For example I recognize that my hard drives themselves are completely and utterly non-free. But also my desire for libre hard drives is pretty low as well. The libre device/system those drives store data for protects itself by the use of full disk encryption, and the drives are unlikely to become active attackers due to lacking any network connections besides SATA/SAS to the libre system. Meanwhile the system they're attached to is a KGPE-D16 running libreboot, which has nearly zero proprietary code running in its main CPU domain. I compromise on CPU microcode because the small binary size means low complexity, I choose if/when to update, and it's similar trust to the unavoidable shipped silicon. But no javascript (I run web browsing on another machine with virt-viewer =). I'd say this is a much healthier way of analyzing software freedom, whereas the traditional way kind of lumps many things together and then finds reasons to ignore inconvenient details.
- sowbug 2y agoAs a purchaser of hardware, I want full control over the stuff I own, including the right to modify firmware. But I'm also sympathetic to hardware manufacturers, especially in this day and age where information travels so fast. A hardware company can say your warranty is void if you modify your purchase's firmware. But it can't stop you from flashing back the original firmware, saying it was broken when you received it, and still making a bogus warranty claim. Nor can it stop you from writing a terrible Amazon review about how complicated the product is, when all your complaints are self-inflicted from modified firmware you found online that the company didn't even write. Companies are responsible for the entire relationship between their products and their customers. So I can see why they want to define hard boundaries around it.
- boredatoms 2y agoThe percentage of people motivated to be modifying firmware would be vanishingly small. It wouldn’t meaningfully impact return rates
- oliwarner 2y agoI get why they want control over this stuff (simplification, segmentation and obsolescence) but the very second they lose interest, stop supporting it, owners of the hardware should have access and a licence to the source and build instructions. Not even necessarily open source. Just something better than automatic ewaste.
- vollmond 2y agoHow do you reliably (eg legally-definable) differentiate between "stopped supporting" and "haven't released an update in a while because it works fine and there are no major bugs"?
- tremon 2y agoWhen the manufacturer no longer offers at-cost repairs and/or support.
- samatman 2y agoNo one should be under an obligation to offer services at cost. It's not even a meaningful concept: if I say the cost of an hour of my time is $N dollars, well, then it is.
- oliwarner 2y agoAn obligation isn't the suggestion. The suggestion is giving manufacturers the choice between supporting or letting people support themselves.
- XorNot 2y agoYou don't: firmware should always be available. I have too many repairable devices which are actually dead because I can't replace a blown microcontroller since the firmware isn't available.
- atoav 2y agoOn idea I have heard is that you have to pay $AMOUNT yearly to some registrar to be not subjected to that rule and with that payment you thereby agree to support the product for another year. Stopping to pay means you stop to support it and are therefore required to release the plans. Going bancrupt/out of business does the same.
- devops99 2y agoAlways, and by law.
- FuriouslyAdrift 2y agoFirmware frequently includes NDAs and license agreements for patented intellectual property. Now, once those patents expire then sure... open it up
- synack 2y agoI think anyone selling commerical products to the public that include software/firmware components should be required to submit source code and binary artifacts to the Library of Congress. The library can then release it to the public when copyright expires or the vendor approves it.
- pabs3 2y agoAlways!
- akimbostrawman 2y agoLike any software when they are not supposed to suck and work for not against you