|
|
Log in / Subscribe / Register

A build system aimed at license compliance

By Jake Edge
April 13, 2026

SCALE

The OpenWrt One is a router powered by the open-source firmware from the OpenWrt project; it was also the subject of a keynote at SCALE in 2025 given by Denver Gingerich of the Software Freedom Conservancy (SFC), which played a big role in developing the router. Gingerich returned to the conference in 2026 to talk about the build system used by the OpenWrt One, which is focused on creating the needed binaries, naturally, but doing so in a way that makes it easy to comply with the licenses of the underlying code. That makes good sense for a project of this sort—and for a talk given by the director of compliance at SFC.

He began with an overview of the OpenWrt One, noting that they are ubiquitous throughout the venue as the routers used by the conference. As might be guessed for a device from the SFC and OpenWrt, there are multiple interesting features that are not present in most routers of this sort. That includes a USB-C port that provides a serial device to a connected host on the front of the device, two separate Ethernet ports on the back, one of which supports power over Ethernet, various expansion options (M.2, mini-PCIe, mikroBUS), and an internal JTAG header for hardware debugging. The expansion options will come in handy, because "we do expect this device to last at least ten years, if not 20 or 30". More information about the device can be found in our November 2024 review.

[Denver Gingerich]

There are multiple reasons why a company or organization might want to create and sell an embedded Linux device, including for profit or to generate funding for non-profit efforts, which is what the SFC and OpenWrt are doing. No matter what the reasons for developing it are, there are some requirements that devices need to meet; an important one is to comply with the licenses of the code that was used in the device. In order to comply with any requirements that there may be, the first question that needs to be answered is: "What is in this thing that I am trying to get compliance for?"

Answering that question can be complicated, he said, but it does not have to be, as he will show. A list of all of the upstream packages, along with their version numbers, for software that is installed on the device is the starting point. A list of the out-of-tree patches that have been applied to those packages is next. Hopefully, the number of such patches is low, because each one is something of a potential liability from a functionality and security standpoint. In the case of the OpenWrt One, the developers were "so excited" by the device that "they upstreamed basically everything that was required" for it to run a mainline kernel and other components.

An embedded device may require some non-free components that will also need to be enumerated. There is also the persistent question of whether linking proprietary code with copyleft code creates a derivative work, which Gingerich said that he briefly wanted to mention. "A lot of companies spent a lot of time and money trying to answer this question and, frankly, this is not the biggest problem that we see with compliance in various devices." It is something that companies worry about, but he would be focusing on the main problems that the SFC sees when it is assessing the copyleft-license compliance for devices.

OpenWrt build system

The OpenWrt build system, which was used for building the OpenWrt One, of course, makes it easy to create the tar file (or "tarball") of source code used to build the binary that is needed to install onto the device. The tarball is what is needed to comply with the copyleft licenses that apply to the code being shipped in the device. It needs to be ready and available when the device ships to users, not a month or three months down the road. An offer to provide the source code must accompany the device as well; for the OpenWrt One, that offer is prominently printed on the box it comes in.

In order to create all of that, the OpenWrt base tree Git repository can be cloned. It is a small tree; "basically it just controls a bunch of things about how to compile and install other packages". The OpenWrt build system is derived from Buildroot, but has diverged from that upstream over the 22 years since OpenWrt started in 2004. The "make menuconfig" command will allow the user to choose various configuration options, which results in a .config that reflects those choices. Then, "make download" will download all of the source tarballs and create a subdirectory called feeds to contain metadata about them.

The last piece of the puzzle is "how_to_*" files, though they do not need to be called that, Gingerich said. These are what the GPLv2 calls "the scripts used to control compilation and installation of the executable". The GPLv2 is the license of Linux, BusyBox, and many other programs, of course.

These files are "something that people who hack on things would naturally create"; if the developers want others to be able to install and run their project's code, they are going to create instructions on exactly how to do that. "The natural intent of the developer and the requirements of the license go hand in hand", he said.

Collecting the information about what is in the binary "gives us a minimal set of things that we can reason about". For example, complying with the EU Cyber Resilience Act (CRA) requires knowing whether the device is subject to security vulnerabilities; having a full list of all packages and versions helps determine which, if any, vulnerabilities need to be investigated and/or fixed. Another area where compliance comes into play is for certification, like that of regulatory agencies such as the US Federal Communications Commission (FCC). If, for example, something changes in the upstream wireless firmware for the device, it may need to be recertified. The OpenWrt One has been FCC certified, which means that running OpenWrt on other FCC-certified devices is legal, he said. "If a company says 'oh, no, we can't let you install OpenWrt because the FCC won't let us', that is wrong."

The end result is a 1.2GB tarball for the OpenWrt One, which includes "all of the source code for all of the toolchains that are needed, the cross-compilers, and all of the upstream packages". He noted that 1.2GB may seem like a lot but the SFC routinely receives candidate releases of source code from companies that are up to 20GB in size "with a lot of, you could say, extraneous things in them". He suggested that audience members might end up with a source tarball by requesting it from the maker of some kind of device, such as a television, refrigerator, or washing machine, but that they might find it comes without any instructions on building and installing that code. "That would be a problem", he said, and encouraged people to report those problems to the SFC.

Example how_to files

Meanwhile, people working on embedded devices and looking to follow the OpenWrt model may want some examples of what the how_to files might look like; the examples would also provide a framework for anyone evaluating a source release to determine "if you are getting what you should be getting". His examples came from the SFC Use The Source project, which collects candidate releases of source code along with analysis of what was found therein. At the site are examples of both compliant and non-compliant releases, but he wanted to highlight a few that demonstrate compliant instructions for building and installing code onto the devices.

The first, as might be guessed, was from the OpenWrt One (source code releases, Use The Source entries: 1, 2). He started by showing a diff of the top-level directory of a source tarball compared to the OpenWrt base tree. It shows that the source release adds a .config file, a feeds directory for metadata, and a dl directory that contains all of the downloaded source-package tarballs. Beyond that, there are three text files: how_to_basic_wifi_config.txt, how_to_build_system_setup.txt, and how_to_compile_and_install.txt. The first of those is not required by the GPL, but is helpful for users; the other two fulfill the GPL requirements.

The setup for the build system is fairly straightforward, since OpenWrt has extensive information on needed packages for various Linux distributions. Those were distilled into package-manager command lines for Alpine Linux, Arch, Fedora, Debian, Ubuntu, Gentoo, openSUSE, and others in the how_to_build_system_setup.txt file. That file is short, 67 lines, but how_to_compile_and_install.txt is even shorter still: 24 lines with a few simple commands, which result in a new firmware image being installed on the device. As part of that, make builds the cross-compiler toolchain needed, untars and builds all of the other packages based on .config, and then assembles the result into the image. "Simple and straightforward", he said.

He went through three other examples of "how_to" files in order to show that it is "not just us, everyone is doing this or at least sees that they need to do this". He showed the instructions for a Samsung television source release, which included instructions on how to build the Linux kernel and BusyBox binaries and, then, turn the latter into a Squashfs root filesystem image. A second set of instructions gave a step-by-step process to install the images onto the television. The release does not include any of the proprietary Samsung code for television functionality, just the GPLv2-covered works; a project called SamyGO is creating code to run on top.

An example of a source release for a ThinkPenguin router was up next. "It is perhaps the simplest of all of them." The company ships a CD with the source code alongside the device itself; the instructions are, effectively, just to run make and then browse to the web interface of the device to use the "upload firmware" option. "It's very cool that ThinkPenguin has provided such simple instructions for what can be a very simple operation."

The last example was for an AVM FRITZ!Box router, which provided a bit more of a "prose" script than others, but complies with the letter of the GPL requirements. The commands that AVM (now FRITZ!) provided are those that the company used on a specific version of Ubuntu (22.04.4) to update files in the firmware image. It relies on a GitHub repository for some of the tools, which Gingerich noted could have simply been included with the source distribution instead. There is nothing wrong with doing it that way, but there is a risk of falling out of compliance if that repository moves or disappears.

He noted that, while companies often know that they need to provide this information, there are lots of examples out there where they have not done so, sadly. Even if there is an offer for source, following the instructions to obtain it may not result in getting everything needed. If that is the case, or if it is unclear, users can upload the source releases and firmware to the Use The Source site to allow others to have a look. He invited attendees to visit the SFC booth in the expo hall to talk more about the OpenWrt One, perhaps purchase one, and, of course, to hopefully become a supporter of the SFC, which is a US non-profit.

Q&A

The first question was about the routers at SCALE, which the asker had heard were either running NixOS or that there were plans to do so. Robert Hernandez from the SCALE tech team said that they were "not running Nix on the OpenWrt One ... yet", though Nix is running on the core routers and other servers for the conference. Gingerich said that the SFC has provided routers to some distributions that indicated interest in running on the hardware; it already can run Debian, "and it would not surprise me if you see NixOS running on the OpenWrt One in another year or so, or maybe even sooner". Hernandez noted that there is experimental support for NixOS on the OpenWrt One in the SCALE network repository on GitHub; one of the routers at the conference is running NixOS as an experiment, "so it works".

Gingerich said that is "one of the neat things" about the device. He was a bit surprised that the OpenWrt developers were insistent that the project name not appear on the router; it only says "One" on it. "They knew from the start that they didn't want it to just be an 'OpenWrt thing'". He was quite happy to see other distributions running on the device; "it is exactly the kind of thing we want to encourage and support and a big reason why we made the OpenWrt One". The SFC is increasingly concerned that more router makers are locking down their devices, often in violation of the GPL; while the organization does enforcement activities, "sadly we cannot enforce against every single company that violates the GPL".

Another question was not directly related to the talk, but was about the U-Boot project; has the SFC "taken ownership" of the project? Gingerich said that he would characterize it differently; U-Boot had joined SFC as a member project in December and, as is usual, the project had transferred domain names and the like to a stewardship by the SFC. The project can move those elsewhere in the future if it chooses to, he said.

Following up, the attendee asked about who was maintaining U-Boot going forward, but Gingerich said that was not changing. The SFC simply handles the non-coding aspects of running the project: organizing conferences, paying developers, managing finances, and so on. It is nice to see that important projects like OpenWrt and U-Boot are choosing to join the SFC, he said. In response to a question about patent trolls, he added that the organization does have resources to help its member projects if they are being approached by patent trolls, which is another reason a project might want to consider joining.

The final question was about "what's next?"; the One seems like a successful project, "is there going to be a Two?", and, more generally, what does the future hold? There was some discussion of another device a little over a year ago, Gingerich said; there is still excitement for building a Two, but there are some supplier hurdles in the way of building the specific device desired. So it is not clear what the Two will look like, it might be a smaller, cheaper device; it is probably a year or two out before we see any new device, he said. The success of the OpenWrt One has caused the SFC to look at other types of hardware as well; "routers are not the only place where there are concerns about companies locking down devices". He closed by thanking attendees for all of the work that they do in free and open-source software.

The YouTube livestream from the room is available, though it has a persistent problem with the slide display; the slides are available separately.

[Thanks to LWN's travel sponsor, the Linux Foundation, for its travel funding to attend SCALE in Pasadena.]


Index entries for this article
ConferenceSouthern California Linux Expo/2026


to post comments

OpenWrt One still available for sale!

Posted Apr 13, 2026 19:30 UTC (Mon) by bkuhn (subscriber, #58642) [Link] (3 responses)

Thanks for this article, Jake!

So folks have an easy place to find out how to buy the buy the OpenWrt One, Denver maintains this page on SFC's website. (The tariff situation in the USA has made it a bit wonky the last year to figure out the best place to buy if you're in the USA.)

If you're in the USA Pacific Northwest, or BC, Canada, note that Denver and I will be at LinuxFest Northwest in about 10 days and we will have OpenWrt One's for purchase in the SFC booth!

OpenWrt One still available for sale!

Posted Apr 24, 2026 5:43 UTC (Fri) by ssmith32 (subscriber, #72404) [Link] (2 responses)

RE: Official Retailers

Why isn't the bpi shop listed as an official retailer:

https://www.bpi-shop.com/products/banana-pi-openwrt-one-r...

Is the above site not actually affiliated with banana pi?

OpenWrt One still available for sale!

Posted May 1, 2026 5:26 UTC (Fri) by ossguy (subscriber, #82918) [Link] (1 responses)

My understanding is that Banana Pi launched that shop around August 2025, and we haven't had anyone report that they successfully purchased a device from the shop yet (nor has anyone said it doesn't work). We generally like to have a successful report before we recommend it.

Additionally, that particular product page allows you to purchase a "PCBA" variant, which would not have a case, just the populated PCB. Since it has no case, it hasn't been and cannot be FCC certified, and we'd like to avoid any confusion about which versions have been certified.

OpenWrt One still available for sale!

Posted May 20, 2026 4:43 UTC (Wed) by ssmith32 (subscriber, #72404) [Link]

For what it's worth, I picked mine up from the box today! Took a little patience, but it did arrive.

Note the link doesn't save all selections, apparently, but I did select the US standard one, which comes with a nice blue (metal) case.

Throwaway proton mail, if you want me to send over pics, etc:

banna-pi-bpi.scuttle257@passmail.net


Copyright © 2026, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds