Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What is the reason behind closed firmware? I understand that wifi devices may operate out of the certification depending on what the firmware does, but other devices... why do they have closed firmwares?


For BIOS/UEFI a lot of hardware vendors outsource their firmware to AMI and AMI keeps everything proprietary so they can keep charging money.

(Coreboot is not an option for real computers because it doesn't have menus and various other things.)


I would assume that building an UI with menus and whatnot is the easy part of it? (not an expert, genuinly curious)


It may be that writing the code is the easy part but caring enough to actually start on it is the hard part. There's been no visible progress on this... ever.


Coreboot doesn't deal with that, the payload does. And tianocore does come with a menu for changing boot order, boot devices etc.


The stock edk2 menu has, like, two items.

System76 have built a more serious setup UI: https://github.com/system76/firmware-setup

Microsoft’s https://github.com/microsoft/mu also probably contains UI from the Surface line or something??


Aren't there coreboot payloads for doing menus/etc?



Probably to hide/protect corporate secrets, or if the firmware integrates proprietary code from a 3rd party it would be difficult to open source for legal reasons.


To give an example, a huge issue over all of the OpenSolaris lifetime at Sun was reportedly due to third party licensed content Solaris had by itself, which is why OpenSolaris source contained only the very base system and was stripped of certain stuff (including X11 server Xsun, iirc)


Also in the case of Wifi/Bluetooth it seems like FCC regulations would make having open firmware difficult due to the fact that it would make it easier to allow end users to broadcast on arbitrary frequencies. This way they have deniability.

...That said, not a subject matter expert so take this with a grain of rock salt.


That feels like a false excuse a manufacturer might make, as it seems plausible enough, but doesn't really hold up to deeper scrutiny. Even wifi chips that have closed firmware usually have a region setting, and there's nothing stopping you from selecting a region that includes frequencies that aren't allowed in your actual region.

Sure, that's not quite the same as allowing completely arbitrary frequencies, but that feels like a distinction that wouldn't matter much when it comes to government regulations.


FCC doesn't prevent you from opening the firmware (now, trade secrets inside is another thing) - they just do not allow unlicensed devices i.e. you can't just build your own radio firmware and have it operate legally.


So open firmware from the manufacturer is fine, but if you were to modify it and re-flash it yourself you would be breaking the law?

I guess that makes sense, thanks for the clarification!


I don't think that makes sense at all. One major part of Part 15 from the FCC covers this. A device would fall under the category as an intentional radiator in part 15.1. And in part 15.23, considered a home-built device.

§ 15.23 Home-built devices.

(a) Equipment authorization is not required for devices that are not marketed, are not constructed from a kit, and are built in quantities of five or less for personal use.

(b) It is recognized that the individual builder of home-built equipment may not possess the means to perform the measurements for determining compliance with the regulations. In this case, the builder is expected to employ good engineering practices to meet the specified technical standards to the greatest extent practicable. The provisions of § 15.5 apply to this equipment.

https://www.ecfr.gov/current/title-47/chapter-I/subchapter-A...

This entire part from the FCC basically states you don't need a license to operate in the frequencies for wifi, bluetooth, etc. You're not breaking a law by recompiling the firmware for your wifi module to fix a bug. You'd be breaking the law if you did so with the intention of operating within licensed spectrum/power levels, for example.


The problem starts with the fact that the device doesn't have any way of showing that it was modified, and some of the frequencies involved are license-restricted (especially in 5GHz wifi bands - 2.4GHz is dumping ground free-for-all because of aircraft ovens anyway).

So, let's say you modify something with your own firmware, break rules about ISM spectrum - or worse, mess with SDR hard enough you break some licensed spectrum, and upon investigation FCC certification marks are found and the number. Since certification points to vendor, vendor now has to explain why their device went outside of those limits, and might or might not be able to prove that you ran it with unlicensed firmware.

So an obviously home build device will go under §15.23 easily, but inconspicuously modified commercially sold device won't - without possibly long court case, that is.


The FCC is very familiar with inconspicuously modified commercial devices - hams have been doing it since before "firmware" was even a word. The fact that it's replacing some code on a chip instead of a shunt resistor on a PCB really doesn't make a difference.

And if this really was really the main issue, it seems pretty easy to just sign the firmware - I'm pretty sure many vendors do it already.


Vendors also want to comply with slightly different rules all over the world, and ultimately the easiest way becomes to sign and verify.

The code being secret is more of "trade secrets" than anything legal.


Exactly - the FCC certification is that a specific device, despite having purposeful (or accidental) transmitters, operates within the law and rules set by it for use of radio spectrum. The maker of the device is then able to sell it to people who are then indemnified should the device break those rules (and aren't required to have expensive in time and effort radio license themselves).

With significant portion of the regulated behaviour being done in software, things can become a bit problematic if the end user can load any code they want. This is also why "BIOS whitelists" exist, as the certification applies to the whole radio equipment, which means the certification must cover the antenna - and those are built into laptops, meaning you can't certify the cards separately as their exact characteristics depend on the connected antennas.


Hardware defects are often worked around by firmware. It can be things like adjusting current drive or lowering the clocks conditionally to mitigate EMI. It can even check the serial numbers of the hardware to determine what to do for the pieces with inferior quality in order to pass QA and increase yields. If customers get to find out what kind of defects or which batches are inferior, that would imply costly consequences for business.


I've heard rumours that making firmware proprietary helps hide patent violations.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: