kernel-libre (hopefully 100% Free) for Fedora 8 and rawhide
Bob Arendt
rda at rincon.com
Sat Mar 29 22:48:16 UTC 2008
jeff wrote:
> Alexandre Oliva wrote:
>> Hi,
>>
>> I've stripped non-Free firmware bits from Fedora kernels for F8 and
>> rawhide, starting from tools developed by the gNewSense folks and now
>> in use by BLAG developers, and built alternate kernels that I've
>> successfully booted up and used on my x86_64 notebook.
>
> I just became aware of this thread today. I don't bring BLAG issues to
> Fedora lists, but I felt I should add some info to put linux-libre in
> context. I hope you don't mind--I'll immediately go back to lurking and
> have no intention of getting involved in a debate on this list about the
> merits/relevancy of this. :)
>
>
> ====================================================
>
> The official "vanilla" Linux kernel from Linus that gets distributed on
> kernel.org has non-free[1] software in it. Here is one example from
> linux-2.6.24/drivers/net/tg3.c:
>
>
> /*
> * tg3.c: Broadcom Tigon3 ethernet driver.
> *
> * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem at redhat.com)
> * Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik at pobox.com)
> * Copyright (C) 2004 Sun Microsystems Inc.
> * Copyright (C) 2005-2007 Broadcom Corporation.
> *
> * Firmware is:
> * Derived from proprietary unpublished source code,
> * Copyright (C) 2000-2003 Broadcom Corporation.
> *
> * Permission is hereby granted for the distribution of this firmware
> * data in hexadecimal or equivalent format, provided this copyright
> * notice is accompanying it.
> */
>
>
> It then has screenfulls of non-free code like this:
>
> 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000,
> 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800,
> 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
...
>
> Why Linus Torvalds tolerates and distributes this I have no idea. He
> surely has some rationale buried in a LKML flamewar somewhere, but it
> doesn't change the fact that there is clearly non-Free code in the Linux
> kernel.
>
>
<<< snip >>>
Hmmm .... if you look at the actual tg3 driver:
static const u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = {
0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000,
This is firmware that gets loaded in routine tg3_load_tso_firmware().
It's firmware for a chip that you don't have a compiler for (if a compiler
exists - there may be a different development model, say VHDL for a FPGA).
The other hex cases in tg3.c also appear to be firmware mods. I'm glad this
is supplied in hex - I'd hate to need working cross-compilers for every
chip that has a firmware blob in order to build a kernel.
As you note, there are several examples of this throughout the kernel.
Others in this thread have explained why firmware is *not* host software,
and is (and should be) allowed to be shipped in a binary format.
Cheers,
-Bob Arendt
More information about the devel
mailing list