12

Can you publish open source firmware for closed/commercial hardware (such as routers, motherboards or basically any device) without asking the manufacturer?

A few examples which seem to indicate that you can: DD-WRT (a Linux based alternative OpenSource firmware), OpenWrt, OpenBIOS, etc.

3
  • Are you willing to publish anonymously? Commented Aug 20, 2015 at 15:43
  • @Mindwin If so, does it change anything?
    – kenorb
    Commented Aug 20, 2015 at 15:47
  • @kenobi the problem is, big companies with a reputation for patent trolling let the ethical judgement of starting the suit to the judge. Source code per se, detached from the firmware is just a text document, you can do with it whatever you want including open sourcing it (GNU, CC, etc). What is missing in your question is what is your concern? Is it a legal one (afraid to be sued)? Ethical? Commented Aug 20, 2015 at 15:53

3 Answers 3

14

To answer your question with a question: "Can you build the firmware without needing to violate the copyright or trade secret protection of the target hardware?' The answer to this question is the answer to your question.

So, if the target hardware is 'just an ARM chip with a conventional boot process', sure, you can write new code for it.

One tricky part is that the most important part of your target is probably not the processor, but rather the peripherals. If you have to reverse-engineer to figure out how to communicate with the radio or ethernet or disk drive or whatever, you may be in dubious territory with respect to the shrink-wrap license you 'accepted' when you unwrapped the box.

7
  • The company can and probably will sue you claiming some patent violation and you lose even if you win the suit because of the lawyer cost and the time/stress expenses. Patent trolling in its finest. +1'd Commented Aug 20, 2015 at 15:42
  • I don't believe that this is so likely; it's hard to see what remotely patentably claims would be infringed unless they have very quirky hardware that can only be driven by a driver using a patented process. Also, patent actions concern economic value; people who build free software don't get that. Their users might.
    – bmargulies
    Commented Aug 20, 2015 at 15:47
  • It is isn't the economic value to the producer or user of the free software that inspires a patent action. It's the reduction in economic value for the patent owner.
    – kdopen
    Commented Aug 20, 2015 at 16:46
  • @kdopen theoretically possible but apparently never seen. ask.metafilter.com/216885/…
    – bmargulies
    Commented Aug 20, 2015 at 18:32
  • 1
    @Zizouz212 'this question' is the question I posed in the first sentence.
    – bmargulies
    Commented Aug 20, 2015 at 22:41
5

Firmware is nothing more than software that lives on a difficult to write to medium. Just as you can can run free software on non-free processors, for example Linux on an Intel i5 processor, you can run free firmware on non-free processors.

5
  • Oh boy. Firmware != Embedded Linux. It is a lot more than just a different medium. You often need intricate knowledge of the hardware surrounding the processor, may need access to confidential data sheets, etc.
    – kdopen
    Commented Aug 20, 2015 at 15:35
  • I disagree with this answer, because its a swampy terrain and its too simplistic of an answer. A company could sue you claiming you reverse-engineered the device (or its firmware and interface) and violated some patent. You already lose because you have to front your own lawyer fees. Read what the FOSS guru has to say on the matter: gnu.org/philosophy/stallman-mec-india.html Commented Aug 20, 2015 at 15:41
  • 1
    @kdopen from a technical perspective that's absolutely right. But this is not a technical question, nor a technical site. From a licensing perspective it is just software running on an EPROM or the likes. Yes, there are problems that may make it technically extremely difficult to create free firmware, but there is no inherent problem in licensing for distribution of free firmware for non-free hardware
    – Martijn
    Commented Aug 20, 2015 at 16:08
  • @Martijn The point is that you very likely can't create your code in the first place without running foul of the DMCA or the manufacturer's licenses and patents. And thus you can never open source it.
    – kdopen
    Commented Aug 20, 2015 at 16:44
  • @kdopen Restrictions like that are often country-specific, whereas copyright is world wide. You may not legally be allowed to publish the software in the US, but you could release it from international waters... Commented Aug 20, 2015 at 21:51
5

To add to bmargulies's answer you need to consider that firmware is a special breed of software.

Firmware, by it's definition, runs on special-purpose hardware. This hardware platform may have highly proprietary components (ASICs for example, or special sensors, etc). Firmware is very intimately aware of that hardware, and usually developed with access to very proprietary information such as:

  • Confidential datasheets provided to the hardware manufacturer under an NDA.
  • Encryption keys (for streaming data for example)
  • Access to the full schematics of the device
  • Knowledge of the data format for calibration tables, and how to apply them.
  • Software and/or hardware patent licenses

One example would be a complex IC created by a third party vendor and used in the product. I have worked on systems where those chips are supplied with a combination of draconian license terms and a vendor-specific access key.

So, if you are trying to provide an open-source replacement for the existing firmware, you either need access to much of the same information - or to reverse engineer it. If you are trying to repurpose the hardware, you still need much of this information.

In which case, in order to create your own firmware, you are almost certainly going to breach the OEMs patents or copyrights, or those of various components on the target boards. You are also at risk from claims under the DMCA.

While the source lives in your private space, you are getting security through obscurity. The moment you publish your source, you potentially lay yourself open to lawsuits.

So, while it's possible to create and publish open source firmware for a proprietary platform, pragmatically it is so risky as to be highly improbable.

1
  • A note in passing: the OP references a number of examples that aren't this kind of real firmware.
    – bmargulies
    Commented Aug 20, 2015 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.