5

I am trying to modernize a current microcontroller solution with a new one based on embedded Linux (Debian), running on Allwinner A10 chips. I plan to make a Linux app doing all user-interface stuff, and a few drivers to communicate with the rest of the hardware doing all time critical stuff (communicating with other MCU-s, etc...). The plan is to make the user-interface app run at system start-up, preventing user do anything else except using functionalities this app provide. Peripherals for which a driver is going to be made, a customer will never have a chance to buy it separately, as they are unique parts for this solution only.

Now, I have a few questions about Linux license. As I plan to sell this solution as a whole, do I have to publish sources of my Linux app or kernel drivers I have made, or deliver it upon request to the customer? Do I even have to make my UI-app and drivers under any GPL license? Do I need to tell the customer what Linux distribution I am using for this my solution, as he will never be able to interact with Linux itself, or use any of its functionalities directly (running terminal, or any other app)? What freedoms I have to change this Linux distribution (remove parts that I don't need for current use)?

migrated from unix.stackexchange.com Nov 12 '16 at 15:00

This question came from our site for users of Linux, FreeBSD and other Un*x-like operating systems.

  • This is a lot of questions.... this is about kernel space vs. user space on the one hand and about GPL, Linux, modifications, attribution... Unless you want the answer to be 42, you could may be make this in a fewer more focused questions? – Philippe Ombredanne Nov 15 '16 at 2:43
2

As I plan to sell this solution as a whole, do I have to publish sources of my Linux app?

No, if I assume that this is a typical userspace app, then the terms of the Kernel GPL license would not apply (though I still may combine my userspace app with copyleft-licensed otherwise and a copyleft may apply then).

From this other answer of mine:

If my closed source code runs in userspace, this is considered a normal usage of the OS and I can use any license I please. Linux (the Kernel) uses the GPL 2.0 with an extra statement per this answer:

NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work". Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

If my closed source code runs in kernelspace, then the consensus is that this code should be licensed under a GPL or GPL-compatible license and treated as GPL-licensed.

or kernel drivers I have made?

Yes. if some of my closed source code runs in kernelspace, then the consensus is that this code should be licensed under a GPL or GPL-compatible license and treated as GPL-licensed.

or deliver it upon request to the customer?

Yes, I have several options to deliver source code. One of them is to deliver source code on request.

Do I even have to make my UI-app and drivers under any GPL license?

See above: it depends. Typically the GPL would not apply to a common userspace app just based on it being a userspace app. The LKM/drivers should always be treated as GPL-licensed.

Do I need to tell the customer what Linux distribution I am using for this my solution, as he will never be able to interact with Linux itself, or use any of its functionalities directly (running terminal, or any other app)?

I need to disclose and attribute. Attribution is important in general (and license notification is an essential part in the GPL in particular).

The GPL always requires attribution composed at the minimum of a copyright statement, a notice and the GPL license text. Attribution examples are provided at the bottom of the license text itself.

See also these answer of mine for more details.

What freedoms I have to change this Linux distribution (remove parts that I don't need for current use)?

I have full freedom to change an Linux distribution (assuming this is a true open source distribution) including adding, changing or removing. Yet, in doing so I may have extra obligations. A typical distro contains 1000+ packages beside the Kernel and each may have a different license and specific obligations. Some licenses require source redistribution, some do not. Most require some form of attribution. Some require change tracking. A few may prohibit certain changes. Some distros may also include packages that are proprietary and/or not redistributable directly such as Ubuntu and RedHat branding.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.