[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GPLed firmware flasher ...



On Fri, Mar 11, 2005 at 04:03:36PM +0100, Michael Below wrote:
> > Do you believe then also believe that a linux kernel with embedded initrd in a
> > .initrd section of the elf kernel file constitute a derived work of said
> > kernel ?
> 
> Don't understand... I'm not a developer, just a Debian user, and I
> don't use initrd (as far as I know). What is embedded where?

The powerpc chrp kernel (but others do this too, this is only the one i know)
uses a elf binary containing the plain kernel and a small bootloader. It can
possibly use an initrd, but to boot it, unlike grub/lilo/yaboot/whatever, it
embedds said initrd into a .initrd section of the elf file. The ELF stuff is a
binary object format used for storing executables, and is used in linux since
ages (since we used a.out back then). It comprises of a header, and any amount
of sections, one of these section being the main section which the kernel (or
the firmware in this case) knows how to execute. It can contain additional
data in other sections, or comments or whatever. In this case the initrd and
possibly the system.map are contained thus.

Now the initrd is itself a filesystem image (ext2 or cramfs), and it can
contain any amount of stuff, the most important of them being the /sbin/init
(or whatever you decide with the init= kernel argument).

Hope this clarifies it ?

> I believe that it's a derived work if one takes an existing work or
> part of it and creates something new out of it, so in the end there is
> only one work. I know this is not very precise.

Yep, but in this case, it is mere aggregation (or a collective work), and this
is even clarified in the GPL itself as being excluded from the GPL. That said :

  (http://www.fsf.org/licensing/licenses/gpl-faq.html#MereAggregation)
  ...
  If the modules are included in the same executable file, they are definitely
  combined in one program.
  ...

Muddies the water, but i think we can dismiss it since it speaks of stuff
which is much more high level than what we are considering here.

Another example would be a GPLed bytecode interpreter (like a JAVA one), and
its interpreted program placed in one sole binary elf file, which would be
possible provided the interpreted program doesn't use runtime libraries
provided by the interpreter.

Friendly,

Sven LUther



Reply to: