28 ms·
Firmware is on shaky ground – let's see what it's made of
- pabs3 3y agoThere is precious little open firmware out there already, but even the stuff that is open has various problems; builds require proprietary tools, the hardware requires vendor signatures etc. https://wiki.debian.org/Firmware/Open https://wiki.debian.org/Firmware/Open
- jimmyswimmy 3y agoAs an EE I love the idea of open firmware. I wish more companies would provide it - akin to the old TVs and other equipment that came with [full!] schematics inside. It would let me truly understand and modify the items that I purchased. There is definitely a cost to it to the companies, which I fully expect to be passed down to me, but not in the form of a license agreement - in the form of an increase in base price. The problem for companies is multifold. A big one is that the firmware is the piece that not only interacts with but also protects the hardware. If you are easily able to change the firmware, you are easily able to destroy the hardware, and if that's under warranty, companies are going to be concerned. They're also going to worry about IP; certainly I build products that lean on the work from previous projects. I would kind of hate handing that over to potential competitors. But some of that 'hate' depends on the fact that my competitors don't give their firmware code out either. Maybe I would love it if I could see how they implement things. Maybe it would push us all to deliver better things. Another impact - open firmware would definitely change sales models for equipment. I imagine that if I had to start delivering open firmware for designs, I'd need to push some of the software control over product limitations into hardware. That might cost more, but is better anyway. Usually. And I'd try hard to figure out a way to install a 'unverified firmware' hardware flag, maybe an efuse blown in a hard-to-replace component, so that we could know who broke things. But I do like the idea. I want the firmware for my ${everything}.
- LeifCarrotson 3y ago> A big one is that the firmware is the piece that not only interacts with but also protects the hardware. If you are easily able to change the firmware, you are easily able to destroy the hardware, and if that's under warranty, companies are going to be concerned. Is that justifiable, though? I bricked a router some time ago messing around with ddwrt. I thought about soldering on a TTL serial adapter, to recover it, but didn't end up getting around to it, but never in my wildest dreams did I think of asking Netgear to replace the 8-year-old product I broke through my actions. I do know at least one person who is reckless with "no questions asked" warranties, and would ask for a refund with a straight face after trying to use a router to reduce spaghetti sauce spattering when he microwaved his dinner, but these people can't be that common... One area where it does seem slightly more justifiable is FCC-certified radio devices. If the transmitter power level is restricted by law, I'd prefer that end users/modifiers of the firmware be considered legally responsible for the consequences of their own actions, but I understand that pragmatically it's a lot easier to ask OEMs to lock down firmware after getting certified in a test lab than to monitor a million end users.
- petsfed 3y ago>I do know at least one person who is reckless with "no questions asked" warranties, and would ask for a refund with a straight face after trying to use a router to reduce spaghetti sauce spattering when he microwaved his dinner, but these people can't be that common... There's common, and then there's common-enough-to-be-costly. REI had a notorious lifetime-return policy that they ended relatively recently because of abuse. How common was the abuse? No idea. I don't know many people who would Return Every Item (as the joke went), but it was common enough that there was always some really beat-up climbing shoes at their member garage sales. And anyway, there's (at least) 2 kinds of costly: cost of returns, and cost to reputation when unqualified people brick their device, then tell all their friends that their router/refrigerator/laptop stopped working.
- jancsika 3y ago> I don't know many people who would Return Every Item (as the joke went), but it was common enough that there was always some really beat-up climbing shoes at their member garage sales. I think you chose an idiosyncratic case here. There must be a significant number of their customers who go there to get fully outfitted for a single, relatively short trip. If you depend only on shame to keep most people below the age of, say, 30 from returning a rent check's worth of camping gear after a single use, well... as you stated REI no longer allows that. (IIRC that happened shortly after the 2008 downturn).
- JohnFen 3y ago> If you are easily able to change the firmware, you are easily able to destroy the hardware, and if that's under warranty, companies are going to be concerned. I don't think this reasoning makes any sense. The company can just declare that replacing or altering the firmware voids the warranty. > I would kind of hate handing that over to potential competitors. But you do that the instant that your product ships. I've shipped a lot of firmware in products, and it's very common to find my firmware reverse engineered and available within a month or so of the product being released.
- crazygringo 3y ago> I don't think this reasoning makes any sense. The company can just declare that replacing or altering the firmware voids the warranty. It's still a cost, though. People are still going to file tickets for warranty replacements, it won't be until the company receives the broken item that they'll detect the firmware replacement (if they even can, what if the hardware damage broke the ability to check?), people return items to the store they bought them from where they can't even check... It's honestly a whole mess that will absolutely wind up costing the company money in support and returns. You can argue that it's still worth the cost, but just declaring that altering the firmware voids the warranty doesn't stop people from trying, which costs money.
- JohnFen 3y agoYes, it is a cost. I would argue that it's a reasonable cost of doing business, personally, but it is a cost.
- shadowpho 3y ago>The company can just declare that replacing or altering the firmware voids the warranty How can they know/figure it out? (They can't/or it's prohibitively expensive/difficult). >it's very common to find my firmware reverse engineered and available within a month or so of the product being released. Sure, but it's hidden from 99.99% of your user base
- 3y ago
- RobotToaster 3y agoI imagine there's upstream issues too, with NDA's for hardware interfaces, and obviously proprietary OS like VxWorks, MS ThreadX, etc.
- pixl97 3y agoI was about to say that a lot of this is completely ignoring the few network vendors/chip vendors that have completely locked down hardware/chips that you're buying from them and effectively acting like a value added reseller for companies like broadcom.
- thomastjeffery 3y agoWhat cost? Competition? That isn't definite. Support overhead? I don't buy it. > If you are easily able to change the firmware, you are easily able to destroy the hardware, and if that's under warranty, companies are going to be concerned. ...so void the warrantee when flashing 3rd-party firmware. How often, in reality, are people going to fry their hardware? It's not as if 99.99999% of 3rd-party firmware users are writing that firmware themselves! Hardware damage should be expected as an extreme edge case, not a broad looming risk. --- If we are going to put this much effort into speculating cost, we should put equal effort into speculating value. Open firmware is significantly likely to reduce the costs of compatibility and edge-case support. It is also likely to increase the value of the product by making it auditable and maintainable. It also factors out the cost of anti-user-maintenance efforts like DRM. Most importantly, open firmware can stabilize the value of a product, increasing its resale price and delaying price decline. Unfortunately, this is the point that many companies consider negative, because they don't want to compete with themselves.
- mardifoufs 3y agoWhat do you mean that isn't definite? I'm very in favor of open firmware, but there have been multiple examples of clones popping up whenever firmware is public and open source.
- nine_k 3y agoCan hardware be protected (and defended in court) if copycats just copy a device wholesale? If they construct a new device but reuse the firmware, it's sort is the point of having open firmware.
- wtallis 3y agoOpen-source firmware wouldn't exactly be the same thing as public domain firmware. And even if a product's firmware isn't getting the benefit of copyright protection, the product as a whole can still be protected by patents and trademarks.
- 3y ago
- matheusmoreira 3y ago> If you are easily able to change the firmware, you are easily able to destroy the hardware How could custom software destroy a phone, a computer, a TV, a printer? > if that's under warranty Just void it.
- wtallis 3y ago> How could custom software destroy a phone, a computer, a TV, a printer? The problem with your question is that you replaced the word "firmware" with the word "software" when the distinction between the two is the answer to the question.
- matheusmoreira 3y agoI don't see the problem at all. Firmware is software. I can see how defective software could damage industrial machinery but I'm having trouble imagining how some TV could possibly be damaged by software. Many consumer devices don't even have moving parts.
- wtallis 3y agoYou're really not trying hard to think of any possible answers, are you? In most devices over a certain level of complexity, there's firmware involved in thermal management. Messing that up can easily lead to premature failure of the hardware, and in some cases very quick failure. Even for a TV which may not have much of a thermal concern for its processor (though I wouldn't bet on it with today's smart TVs), you can still expect there to be some screen burn-in mitigation.
- matheusmoreira 3y ago> You're really not trying hard to think of any possible answers, are you? I asked a question because I don't know. I assumed you did. I'm trying to learn something.
- 3y ago
- mrwnmonm 3y agoWhat is EE?
- soylentcola 3y agoElectrical Engineer, most likely.
- mrwnmonm 3y agoGot it, thanks.
- serf 3y ago>I wish more companies would provide it - akin to the old TVs and other equipment that came with [full!] schematics inside. It would let me truly understand and modify the items that I purchased. I had forgotten about that thing with the wiring diagrams; I loved that. That was the only thing that enabled me to repair a 1940s pinball machine that was essentially a relay-driven mechanical computer. Without those prints the machine would have surely been a loss due to the insane complexity and lack of interested/trained people that know how to work on such devices. One wonders now how many lost pieces of equipment that could help to save from the recycling bin nowadays.
- AceJohnny2 3y ago> If you are easily able to change the firmware, you are easily able to destroy the hardware, For a recent and popular example of this, look at Hector Martin's experiments in implementing sound for Asahi Linux [1], which led to the destruction of his Macbook speakers and a warranty replacement. (the end result is a good Linux sound driver for that hardware that correctly implements power limiting [2]) [1] Account since deleted but used to be at https://twitter.com/marcan42/status/1569595321168334848 https://twitter.com/marcan42/status/1569595321168334848 if anyone knows an archive [2] https://mas.to/@marcan@treehouse.systems/110122332896112809 https://mas.to/@marcan@treehouse.systems/110122332896112809
- juancn 3y agoFirst of all, firmware bugs can physically damage some hardware, some might even be dangerous to use (e.g. overheat and catch on fire). It just increases support costs and liability for the manufacturer for little or no gain. On the security front, having the source code leaked makes it much easier to develop APTs and deep implants. So it's easy to see why it's not something most manufacturers embrace willingly. The nerd in me really would love to have access to more open. firmware, but I get where the apprehension comes from.
- iforgotpassword 3y ago> First of all, firmware bugs can physically damage some hardware, some might even be dangerous to use (e.g. overheat and catch on fire). Doing random crap to my car's engine when I have no clue what I'm doing poses all of the same risks if not more, I can still do that. It doesn't mean it's covered by the manufacturer's warranty. > It just increases support costs and liability for the manufacturer for little or no gain. You got a device sent in from a customer that bootloops because they flashed some garbage? They can get it back for a service fee of 20$ or you'll dispose of it for them. The case deforms where the camera is mounted and dust and water can get in (hello Pixel 4)? Replace it since this has nothing to do with firmware but is a plain old manufacturing defect. > On the security front, having the source code leaked makes it much easier to develop APTs and deep implants. See article. Normal users get firmware through official channels anyways, and targeted (supply chain) attacks are run by people who either already have access to the source code or got the resources to do the reverse engineering, so it doesn't really matter whether it gets easier.
- ChrisMarshallNY 3y agoThere's actually an industry, based on modding car software. I have a friend that does exactly that, as a hobby. They mess with the firmware (usually by changing coefficients and thresholds), to make the car more performant (and probably fall foul of various environmental and safety laws). And, then, there's VW's clever tweaking of their (completely legal) firmware...
- 3y ago
- mschuster91 3y agoGood article, but some points I disagree with. > but if you go anywhere except to the manufacturer when you update a motherboard, you deserve to be busted down to abacus operator. Well, good luck finding drivers and firmware. Realtek used to be real bad, Compal used to pull their archives for "discontinued models" the day the devices were EOL. Microsoft thankfully forced OEMs selling Windows PCs/laptops to provide Windows Update integration for drivers because the situation got out of hand, but for accessories it's still the Wild West and it's very difficult to find archives for stuff that's been discontinued or where the vendor went through half a dozen worth of mergers. Not to mention SEO scammers hijacking "<manufacturer> drivers" search terms to a degree that they get the first Google listing and then use dark patterns to get people to download malware. We can't expect users to be able to detect SEO spam, not in times where criminals clone entire newspaper or bank sites to pull off extremely convincing scams. > Companies like using firmware to lock down their devices to business models – even when, as Sonos discovered, those models can provoke customer rebellion. For some things, particularly anything involving RF communications, there are legal requirements to not let people access chips in a way that allows them to manipulate the signal, e.g. by using them as SDRs, using frequency bands not allowed, or using too much power for the amplifiers. In other cases, they're forced to do so because they wouldn't get content... Netflix and other streaming apps are really bad here, it's a constant hassle to get it running on rooted Android devices. And apps like in banking enforce un-modified firmware to limit legal exposure when people get hacked. It doesn't make sense because the risk model is just the same as online banking on a PC, but here we are... (conveniently ignoring the bullshit South Korean banks pull based on long-outdated laws).
- squarefoot 3y agoI understand most of the concerns by hardware manufacturers for not publishing their firmware source code, however if they did that after the product is declared obsolete, or at least if they would unlock bootloaders and publish enough documentation so that new firmware could be developed, that would give the community a way to recycle old hardware without them surrendering most of their precious IP.
- iforgotpassword 3y agoYes, unlocking bootloaders the moment you stop shipping updates would be an absolute no-brainer to require imo. I've so many older Android phones floating around that would still make for great backup phones or dedicated usage for stuff you don't want on your main phone, but they're stuck with horribly out of date Android versions.
- klyrs 3y agoI agree with the principle, but I think your notion of "obsolete" doesn't really match the incremental nature of hardware/software development. When does an iphone go "obsolete"? Apple re-uses pieces, giving them minor tweaks along the way, and stops making and even supporting the old ones after a while. But the code in a phone I would call obsolete will still live on in a current phone. Companies worried about their precious IP will still have a valid excuse to not release the source.
- 95014_refugee 3y agoThe suggestion that an individual or a community could actually build, let alone maintain, any of these OS distributions for older hardware is disingenuous. There is literally no chance whatsoever that, even with complete access to all of the sources, any individual or community organisation could build an iOS distribution; not even once, let alone on any sort of cadence that would make the effort worthwhile. The required build infrastructure is massive, and maintained by a dedicated priesthood whose existence and experience are an integral part of the machinery. Let's not even get into testing, or carrier qualification, or support, or ... This is well known, and not a subject for meaningful debate. Any writer claiming that "just releasing the source" would result in any of the claimed benefits is lying in service of some other objective (or delusional, but probably just lying).
- zkirill 3y agoI was researching open source hardware and was surprised to find very few offerings: SiFive (RISC V) and Raptor Computing Systems (POWER9). Are there any other ones?
- whitehexagon 3y agoMNT Reform looks like an interesting open hardware solution.
- zkirill 3y agoIt looks like boot ROM source code is not available [1], and looks for blobs during initialization [2]. This thread makes it sound like ARM is a complete write-off in this department. [3] [1] https://community.nxp.com/t5/LPC-Microcontrollers/Where-may-I-obtain-the-Boot-ROM-source-code-for-the-OM40002/m-p/885695 https://community.nxp.com/t5/LPC-Microcontrollers/Where-may-... [2] https://forums.puri.sm/t/the-i-mx8-cannot-be-deblobbed-nxp-signed-hdmi-firmware/6081 https://forums.puri.sm/t/the-i-mx8-cannot-be-deblobbed-nxp-s... [3] https://www.reddit.com/r/ECE/comments/9oarto/arm_socs_with_open_source_rom_bootloader_code/ https://www.reddit.com/r/ECE/comments/9oarto/arm_socs_with_o...
- JoeAltmaier 3y agoMicroprocessors in embedded devices are getting pretty capable. I've been asked to port FreeRTOS and Linux in about equal measure. What gets me is, if the schematic designer would annotate the schematic with address, busses, chip pin uses, then I could write a script to port a new design to a particular OS automatically. My job would be obsolete.
- markus_zhang 3y agoJust curious, porting Linux or other OS to different chip sounds like a daunting job. How do you approach the task? And I guess it's mostly about the kernel? Thanks!
- JoeAltmaier 3y agoA different chip is a big job. A different development board with a familiar architecture (e.g. ARM Cortex etc) is a matter of loading drivers for all the parts connected on the board. For that you create a 'device tree' which is a blob of text similar to javascript or json data definition, with many particular conventions for pins, addresses and busses. See any document on Device Tree formats e.g. from Freescale. It gets compiled into a .dtb blob which is 'device tree binary' which is flashed into the board next to the os. The bootloader or uboot image expects it in a certain place, loads it into memory and provides it to the booting kernel. Of course you need to know about the device tree, to use most devices. That's why you have to have an extra step to load - the bootloader is a flash image that has hardcoded a tiny subset of device information just for initial load. That's all I can say without launching into chapters of details!
- Krutonium 3y agoDevice Trees seem like such a step backwards compared to how it is on x86_64 boxes, where searching and discovering all your hardware has long since been standardized.
- kevin_thibedeau 3y ago
- AdamH12113 3y ago> But then, firmware is weirder than we give it credit for. It's even hard to say exactly what it is. That used to be easy – firmware was software built into hardware (don't mention microcode.) Maybe this is just my bias as a low-level MCU programmer, but I wonder if this isn't a definition problem more than anything else. To my mind, if your code has problems like this: > We notice the old devices piling up in a desk drawer, hardware perfectly fine but with ancient firmware that just won't play with modern services. Then it's not firmware, it's full-fledged software, and ought to be treated as such. Calling a smartphone OS "firmware" is particularly odd to me -- it runs on a general-purposes computer! It takes up gigabytes of storage space! It updates itself over an internet connection that it also manages! -- and I think it gives the wrong idea about the system it's installed on and the nature of the software itself. In particular, anything that needs regular updates is not "firm" in any sense. It is hard to draw a firm line somewhere between the code in a tiny microcontroller running a battery charger and the operating system running on a general-purpose application processor. Motherboard BIOSes are a bit of a marginal case. But I think there is a useful distinction between "acts like part of the hardware and never needs to be changed" vs. "is the core of the product and when it stops being updated the product quickly becomes useless". Very few people are clamoring to hack on the firmware for their PC's power supply or their car's air conditioner.
- wtallis 3y agoI think any firmware that's complicated enough that the manufacturer gets it wrong should be open-source. Especially if the manufacturer is deliberately crippling the product with bad firmware rather than just accidentally through incompetence. And firmware that's too simple to screw over the user is probably too simple to be eligible for copyright protection to begin with. A motherboard BIOS is not at all a marginal case. BIOS bugs abound, as can be seen by booting Linux on almost any PC and looking through the kernel logs for ACPI table errors and various other workarounds and quirks being activated.
- petsfed 3y agoI think you're talking past the parent's point here. Firmware as I understand it (also as a microcontroller firmware programmer) is about the same as what the parent understands. I think your metric about "too simple to screw over the user" is sort of weird, when in the context of my work and the parent's work, "screw over the user" might well mean "disabled the oxygen pump on the user's space suit". It is in that sense that motherboard Bios is a marginal case. It is marginal in the sense that BIOSes are clearly at the margin between embedded microcontroller firmware and full-blown general-purpose-computer operating system. If I have to update the BIOS on my computer every month (or every week) just for it to boot into any operating system, then something is incredibly wrong, even as modern BIOS have become several orders of magnitude more complex today.
- hinkley 3y agoThis is going to be the openWRT argument all over again. Linksys mid-tier and low-end hardware were somewhat differentiated by what the plastic looked like and which firmware version you had on the box. Most boxes got a lot of new functionality once you installed the open firmware. And once Cisco bought Linksys that whole problem just got worse. So they won't want to do it. Anyone doing Consumer Protection or Right to Repair should - at a minimum - request that all of the firmware for devices be transferred into escrow, to be released upon end of life for the product. Ideally that would be released when the product ships, but I don't think you'll be able to get that out of the gate. What I'd really like is for all appliances to utilize a standard microcontroller design and pinout, similar to arduino or raspberry pi, and day-of-release firmware availability.
- mindslight 3y agoMost of these devices are running Linux, so I would say the fact manufacturers are not shipping "the scripts used to control compilation and installation of the executable" at time of sale or promptly upon request, is illegal already. The GPL2 actually foresaw developers failing to ship critical bits that are required to run the software. There's just little will to enforce it.
- zwieback 3y agoI've worked on firmware for mass-market consumer products and one point the article doesn't raise is that firmware often supports company intellectual property such as specialized hardware, ASICs and other custom circuitry. I'm all for separating out the upper levels and allowing users or enthusiasts to add their code. However, the explosion of cool gadgets in our pockets didn't happen because of tinkerers, it happened because massive piles of money could be made. Let's not disincentivize hardware development that requires billions of dollars in up-front investments.
- what-no-tests 3y agoAn oldie, but a goodie: > Hardware met Software on the road to Changtse. Software said: ``You are Yin and I am Yang. If we travel together we will become famous and earn vast sums of money.'' And so they set forth together, thinking to conquer the world. > Presently they met Firmware, who was dressed in tattered rags and hobbled along propped on a thorny stick. Firmware said to them: ``The Tao lies beyond Yin and Yang. It is silent and still as a pool of water. It does not seek fame, therefore nobody knows its presence. It does not seek fortune, for it is complete within itself. It exists beyond space and time.'' > Software and Hardware, ashamed, returned to their homes. ...from The Tao of Programming [0] [0] http://canonical.org/~kragen/tao-of-programming.html http://canonical.org/~kragen/tao-of-programming.html
- 1vuio0pswjnm7 3y ago"Now many devices have enough system flash on board to hold the complete stack, firmware now includes complete operating systems and has come to mean that software at the heart of your technology that controls its behavior and which you can't just load in as an app. So why lock it down?" Unclear with respect to intent. However a practical effect is IMHO to deny the computer owner control over their own computer. Whatever control the owner had through the user-facing operating system is now superceded by a non-user-facing operating system. Whomever controls that operating system controls the computer.
- angelhearts9 3y ago[dead]