Dlink probably violate GPL again with their DIR-45X ?
Stephen C. Fedder
sfedder at hotmail.com
Mon Oct 1 13:13:47 CEST 2007
Hi,
Keep in mind that the firmware file for the Dlink DIR-450 is most likely
stored as-is in the flash partition and accessed by the fixed ROM pre-boot
code in the box – the file itself is only a little over 4mb, so this has
nothing to do with whether or not the source Dlink has distributed is
correct or not. The first part of the file before the compressed linux
kernel is most likely a boot decompressor/loader that uncompresses the linux
kernel to RAM memory and then branches to it. The core ext2 filesystem is
most likely decompressed into an allocated RAM memory block and mounted by
the linux load during the boot process. The 10mb ext2 filesystem in the
distribution has about 20% free block space which can be used like a ram
disk to write/read any additional files necessary during the run process.
The pre-boot code in the box is usually some version of their Tango
bootloader which allows updating of parallel/serial flash via tftp, as well
as some other functions. Separate flash areas are used for the pre-boot
loader and the distribution itself so that bad-flashes by consumers will not
result in a completely dead box. Re-flashing the pre-boot is generally more
difficult to accomplish, and is sometimes not allowed by hardware protection
for this reason.
Regardless of the language in the GPL, it has always seemed a little bit of
a gray area to me as to whether companies have to disclose the full format
of their distribution binaries and all other loader code which is the part
that gets linux loaded in the first place, which is necessary if someone
needs/wants to modify the kernel or embedded busybox/etc. GPL code. There
seems to be a lot of interpretation of the clauses in the GPL that would
support that. Sometimes companies will provide enough information to update
the kernel/filesystem and others only distribute the exact (modified) GPL
parts of the code, leaving everything else out. Usually someone with enough
software experience can decode their loader/format and provide this
information if there is enough interest, i.e. in hardware/hacking forums.
The bigger problem is when the companies do not distribute their changes and
configuration files to the GPL code, but only the original distribution that
was provided, such as the em86xx sigma modified uClinux distribution
provided in their SDK. Sigma Designs does seem to comply with the GPL in
terms of what they supply to companies purchasing access to their SDK, but
their license/NDA is often misinterpreted by companies as not allowing
distribution of the GPL parts of their code, which is, of course, incorrect.
Maybe someone could comment on the legal aspect of just how much proprietary
information/surrounding code must be provided for a firmware containing an
embedded-gzipped uClinux distribution and an embedded-gzipped ext2
filesystem with a bunch of GPL utilities/etc. Since GPL code is embedded in
the binary distribution package which cannot be separated without
knowledge/code for its format, does that information fall under the GPL as
well to allow individuals purchasing/being provided with the firmware to
reproduce it? Some clarification of this would be helpful, and if this is a
requirements, has it every been tested legally?
_____
From: gitime lin [mailto:gitime at gmail.com]
Sent: Monday, October 01, 2007 5:19 AM
To: sfedder at hotmail.com
Cc: legal at lists.gpl-violations.org; tech at lists.gpl-violations.org
Subject: Re: Dlink probably violate GPL again with their DIR-45X ?
Hi all,
It's amazing that I've got lots of people helping me to hack the firmware.
Especially Stephen has shown me lots of examples and tools to apply to the
firmware.
We've successfully found that the romfs partition inside the firmware is a
zipped ext2 file system.
One of my friend who is a software enginner also helped me to examine the
codes in kernel.
We've found the following section in physmap.c indicates the romfs part in
firmware should not exceed 1,966,080 Bytes.
name: "Initrd",
size: 0x1E0000,
However Stephen and I found that the Romfs (Initrd) which has been
successfully extracted from firmware is about 2,939,222 bytes long. After
uncompressing the Initrd, it becomes a more than 10M bytes long mountable
file.
The file size is too large to be stored in the flash partition as the
configuration insides kernel codes.
According to the previous discussion in the list, I guess D-link might not
release the kernel codes corresponds to DIR-450/451.
I've told this situation to Dlink at US by their website 1 week ago, asking
them to check if they've put wrong files on ftp site. But I haven't get any
response until today.
However, I think technical disscussion in detail might not be appeared in
legal-lists.
But if people want to discussion about the concepts, events, or any possible
action in legal-lists will need technical information as a evidence.
So I still reply this mail to both lists.
On 9/24/07, Stephen C. Fedder <HYPERLINK
"mailto:sfedder at hotmail.com"sfedder at hotmail.com> wrote:
Hi,
I am glad to be of help. If you run into any problems let me know.
I'm not always sure that the gpl-violations mailing list is the place to be
talking about tools/methods of reversing firmware, so I just sent my
observations to you rather than to the list. I am not a regular
contributor, but just thought I'd take a look and see if I could give you
some direction.
[deleted....]
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.488 / Virus Database: 269.13.35/1039 - Release Date: 9/29/2007
9:46 PM
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.488 / Virus Database: 269.13.35/1039 - Release Date: 9/29/2007
9:46 PM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.gpl-violations.org/pipermail/tech/attachments/20071001/23b2d050/attachment.html
More information about the tech
mailing list