Distributing a Build with a proprietary module


I am an OpenWRT user for a decade, and have been asked for help by a software team.

They have a modified OpenWRT build that adds bandwidth shaping and smartphone controls to OpenWRT. It is running well on five different devices. Their product is more to generate interest, it is redistributable freely (as in no cost).

The changes fall into two parts:

  1. A kernel module (this is a binary, closed source)
  2. A userspace package (this can be open-sourced, I think)

How can they upstream this? I see some proprietary drivers in the tree, so presumably it is feasible.

  • Ideally, they could contribute the blob and a GPL shim into the tree. Would this be acceptable?
  • The alternative is a build farm that tracks master, and churns out images for all targets. This risks fragmenting the OpenWRT name.

Advice, please?

Sanjeev Gupta

1 Like

No. OpenWRT is free software and have complete source code.

It's against GPL and project principles.

PS: I forgot - OpenWRT works on many architectures like MIPS 24KEc, MIPS 34Kc, Dualcore MIPS 1004Kc, few ARMs and few x86s. I think that will be hard for you to provide blobs for all architectures.

The BLOBs in the OpenWrt tree would appear to belie that notion.

That was my first impression, too. But I see binary blobs for drivers in the code.

Yes, and I assume that on some targets, it may not be feasible technically to do the traffic shaping, either. So the new builds would be only for a subset of routers.

Give some example please.

Because here is GNU philosophy:

and OpenWRT is following them.

Any (all?) wifi firmware contain a proprietary BLOB.