it is a false statement on your part that the executable "does not
function properly" if it lacks that part. Try it: take out the harddisk
from the Tivo (it's a bog standard IDE harddisk), put into a nice Linux
PC, mount it, modify a bit in the kernel image header and it will likely
still boot just fine on that PC.
now if you put the harddisk back into the Tivo, the Tivo's bootloader
will refuse to run that modified kernel. So will it (and any Linux
bootloader) refuse to load the kernel if you corrupt the compressed
format and the gunzip function finds a CRC error. You cannot run
arbitrary binaries on hardware without knowing the properties of that
hardware. One such property of the hardware might be: "i only run
applications that use at most 500 MB of RAM" - because ... the hardware
might only have 512 MB of RAM. Another property of the hardware might
be: "i will only trust and run applications that match a given
signature". Dont buy that hardware if you dont like its inherent
limitations!
The modification the GPL talks about is about modification of the SOURCE
CODE. But if you have a new binary, you have no expectation of being
able to run that on a piece of hardware. It might or might not run. (for
example if you modified the software to include a 1 GB static array then
the software might not work on a system that has only 512 MB of RAM.)
go download the Tivo Linux kernel from:
http://dynamic.tivo.com/linux/811/linux-2.4.tar.gz
modify and build it. Boot it on your general purpose PC. It will quite
likely work just fine!
Ingo
-