On Saturday, July 14, 2012, 7:25:15 PM, Eric Smith wrote:
Ralf Ertzinger wrote:
> Question about that: The first requirement is that the file is
> non-executable. Does that mean that Fedora cannot ship firmware for
> hardware that has a CPU compatible with the host CPU?
If it does mean that, it will be a problem for the ARM architecture,
as
many hardware devices using downloaded firmware use ARM cores.
The specific statement is:
"The files are non-executable (note: this means that the
files
cannot run on their own, not that they are just chmod -x)"
I'm not sure what it means for files to "run on their
own". I don't
think I have a single file on any of my computers that can run on its
own. As far as I can see, even the Linux kernel cannot run on its own.
Perhaps it means that the file can't be in a supported executable
format
such as ELF? Downloaded firmware often is in raw binary format, but
it's certainly conceivable that some might be in ELF format.
This topic has come up at regular intervals in the past,
especially when the kernel interfaces for downloading firmware were
being developed.
The packaging statement is meant to clarify, and to be read literally.
It means that the program is not a stand-alone program for use by
the host computer. It requires additional hardware to operate. It
is marked non-executable "-x" to prevent attempts to execute by the
host computer (or for the security conscious, attempts to disguise
malware as firmware).
Normally firmware is a binary blob that is downloaded by the kernel to
that hardware, and used in some manner by that hardware, It may be
a program (code/data) executed by a CPU (or equivalent such as an
ASIC) or some form of data required for execution of that hardware.
It may be multiple of each, in a fancy wrapper scheme with CRCs.
Delivering firmware via a standard kernel API was a big change a few
years ago. It allowed standard packaging of firmware, and eliminated
the need for users to do nasty things like use programs the cut the
firmware images out of Windows PE executables downloaded from chip/card
vendor websites.
The encoding doesn't matter - what matters is that the content is
automatically delivered to the hardware so that hardware can operate.
What also matters is that the licence allow Fedora to freely distribute
the firmware file, without silly restrictions such as "non-commercial use
only".
Some folks object to Fedora shipping binary blobs, and insist that the
only true way is to ship everything with source and build tools. That
has been debated fiercely in the past... and the current rules were the
IMO reasonable compromise that resulted.