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@xxxxxxxxxx)
* Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik@xxxxxxxxx)
* 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
--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list