kernel-libre (hopefully 100% Free) for Fedora 8 and rawhide

Alexandre Oliva aoliva at redhat.com
Sun Mar 30 09:27:25 UTC 2008


On Mar 30, 2008, Hans de Goede <j.w.r.degoede at hhs.nl> wrote:

> Alexandre Oliva wrote:
>> - Sorry, I don't understand them myself.  I just copied them from the
>> Windows driver.

> I didn't write this driver, but this is the most likely correct
> answer. Still given that I needed to explain color correction lookup
> tables to you. I _seriously_ doubt your ability to decide if this
> makes some code non free.

What does one thing have to do with the other?  You're talking of
technical matters, I'm talking of ethical matters.  How would my
technical lack of knowledge about one particular kind of device make
me unable to figure out whether someone is trying to stop others from
enjoying the four freedoms on a piece of code?  That's not a technical
issue at all.

> First of all this is data, not code, and you can study the data all
> you want, just as you can study a picture all your want without
> needing to have to know why each pixel is the color it is.

You can say it's data as much as it want, the point is that it
performs a functional role, and that's what makes the 4 freedoms
ethically essential.  Comparing it with a picture is an inappropriate
comparison for this reason.

Now, once it performs a functional role, then studying and
understanding it has a broader meaning: you have to understand what
each number actually means.  Especially if you want to have the
freedom to modify it, to adapt it such that it does what you want.

E.g., in the color correction table, if I wanted to make the software
behave differently WRT colors, now I have some vague idea of what I'd
have to do with those numbers.

Now, compare that with the register initialization code.  How can I
adapt it such that the code does what I need, if I can't really know
what it's doing?

> You are also free to modify, derive, and spread it so I see no
> problem here.

We're miscommunicating.  I've addressed this point.  'free to modify'
is not enough, 'freedom to adapt to your needs' is what the FSD says,
and that requires actual comprehension of what's in there in the first
place.  If someone denies you that, then the code is non-Free.

> I do seriously wonder if you've ever seen real hardware documentation
> in your live, as in datasheets, or the one one gets under NDA?

I've ported GCC to a number of embedded platforms, having got hardware
documentation for all of those processors.  Matsushita AM33/2.0,
Renesas SH5, ARM platforms such as Maverick and Intel Xscale, in
addition to having done some additional compiler, assembler and linker
work for platforms such as Fujitsu FR-V, Renesas H8SX.  So, yes, I've
seen my share of datasheets.  Not video cameras, though.  I don't even
own a webcam.  Any further questions?

> Often the official docs contains tables with initialization values
> like this,

That's unfortunate.  For the microprocessor documentation I've seen, I
had documentation for every single bit of every single hardware
register that I've needed to work on the compiler, assembler, linker
and run-time libraries.

I can see that trial and error can be used to determine recommended
values, but I don't see that this low standard for documentation is a
good one.  But that's besides the point.

> So although those numbers are taken from the windows driver (I think),

Is there permission to do so and release that under the GPL?

> the windows driver may have derived them this way. IF you even call
> this non free you seem to _really_ be out of touch with the _physical_
> reality. Some systems are svery complex: too many variables, with to
> much uncertainty as to what their values are as that cannot be
> predicted as its dependend upon the production process and often even
> the batch.

> This is a fact of _physical_ reality, and this is solved by adding
> some knobs to compensate for the uncertainty of some variables, the
> correct position of these knobs is then often determined by ... trial
> and error.

Sure, this is all good.  That's not what I'm concerned about.

What I'm concerned about is the reason to deny all this information to
customers and developers.

> No amount of philosophical discussion will change the fact that
> sometimes some values in registers are just there because they need to
> be there.

I don't buy that.  If there's a register there, it's because someone
put it there for a reason, and changing it must have some effect,
otherwise it wouldn't be there in the first place.  But there's a big
difference between "we don't know, it was like this when we got here"
to "we know it, but we're not going to tell you".

> If you look at the docs there is no reason to do things in this order,
> but the actual hardware gets very upset (as in doesn't work) if you
> change the order. There are most likely other orders as the one which
> is currently used which may work too. But the current one works, as
> has been determined by trial and error.

This sounds fine to me.

> Luckily Jeff seems to more down to earth then you on this,

I don't think you can draw this conclusion from this conversation.  I
didn't even issue an opinion on that particular driver in the first
place.

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member         http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}




More information about the fedora-devel-list mailing list