Slashdot Mirror


Is Linksys Violating The GPL?

jap writes "According to this post on LKML, Linksys is shipping firmware for (at least their) 802.11g access-points based on Linux - without any sourcecode available or mentioning of it on their site. This could be interesting: it might provide the possibility of building an ueber-cool accesspoint firmware with IPsec and native ipv6 support etc etc, using this information!"

18 of 524 comments (clear)

  1. Cisco IOS ? by berkeleyjunk · · Score: 5, Funny

    If you push too hard for publishing source code, this box will be running Cisco IOS soon, slowing down the box 4 fold.

    1. Re:Cisco IOS ? by prizog · · Score: 5, Interesting

      Hi. I work for the FSF investigating GPL violations (and yes, we are also working on this Linksys thing). Can you tell me more about this Cisco issue? Is there any software FSF holds copyright on (the gnu c library, bash, gnu tar, gzip ...)? Does the unit come with an offer to provide source code?

    2. Re:Cisco IOS ? by ZorroIII · · Score: 5, Informative
      In the release notes for the software on the NM-CE card they say:
      GNU General Public License Modules Cisco Cache software, Release 3.0.2 incorporates software licensed under the GNU General Public License. If you would like the source code for any of the modified GPL code in Cisco Cache software, Release 3.0.2, send a request to ce-sw-req@cisco.com
      I sent them a mail some time ago asking for the source of GPL programs, but still havent received an answer. The card is rather interesting, one day I'll try to modify the OS to something that can be used for other stuff aswell.
  2. Re:GPL by psychosis · · Score: 5, Informative
  3. In case gets /.ed by Anonymous Coward · · Score: 5, Informative

    Hi,

    Sorry for the very lengthly posting, but I want to be as precise as possible in describing this problem.

    Awhile ago, I mentioned that the Linksys WRT54G wireless access point used several GPL projects in its firmware, but did not seem to have any of the
    source available, or acknowledge the use of the GPLed software. Four weeks ago, I spoke with an employee at Linksys who confirmed that the system did use Linux, and also mentioned that he would work with his management to ensure that the source was released. Unfortunately, my e-mails to this
    individual over the past three weeks have gone unanswered. Of course, I also tried contacting Linksys through their common public e-mail accounts (, ) to no avail.

    However, it is hard for me to know if my contact in the company has just gone on a three week vacation (and not set an auto-responder), or has been asked to not answer anymore mail on this subject. Also, I should note that I don't own this product, so I can't determine if the source is shipped with it.

    However, I have gone through all the available information on the Linksys website, and can find no reference to the GPL, Linux (as it relates to this product), or the firmware source code. Also, the firmware binary (see below) is freely available from their website. There is no link from the download page to the source, or any mention of Linux or the GPL. Finally, it would be
    strange if the source was included in the physical package, as my contact at Linksys was initially unaware Linux was used in this product.

    The following steps can be used to determine the exact nature of the possible GPL violation.

    1. Go to the following URL:
    http://www.linksys.com/download/firmware.asp?fwid= 178

    2. Download the "firmware upgrade files":
    ftp://ftp.linksys.com/pub/network/WRT54G_ 1.02.1_US _code.bin
    (MD5SUM: b54475a81bc18462d3754f96c9c7cc0f)

    3. While it is downloading, confirm that there is nothing on the webpage to indicate that this binary contains GPLed software.

    4. Once the download is complete, copy the contents of the file from offset 0xC0020 onward into a new file.
    dd if=WRT54G_1.02.1_US_code.bin of=test.dump skip=24577c bs=32c

    5. Notice that this file is an image of a CramFS filesystem. Mount it.

    6. Explore the filesystem. You will notice that the system appears to be based on Linux 2.4.5. Incidentally, there is at least one other GPLed project in the firmware: the BusyBox userland component: (http://www.busybox.net/)

    7. The Linux kernel (I think) is mixed up with a bunch of other stuff in: bin/boot.bin

    You might want to know why I am interested in getting the code for the kernel used in this device.

    There's been some discussion here about Linux's lack of wireless support for a few of the newer 802.11b and (nearly?) all 802.11g chips. Incidentally, Linux has excellent support for at least one manufacturer's wireless family.
    The following Broadcom chips all appear to be supported under Linux -- if you happen to be running Linux on a MIPS processor in a Linksys router:

    Broadcom BCM4301 Wireless 802.11b Controller
    Broadcom BCM4307 Wireless 802.11b Controller
    Broadcom BCM4309 Wireless 802.11a Controller
    Broadcom BCM4309 Wireless 802.11b Controller
    Broadcom BCM4309 Wireless 802.11 Multiband Controller
    Broadcom BCM4310 Wireless 802.11b Controller
    Broadcom BCM4306 Wireless 802.11b/g Controller
    Broadcom BCM4306 Wireless 802.11a Controller
    Broadcom BCM4306 Wireless 802.11 Multiband Controller

    This list was produced by running strings on:
    lib/modules/2.4.5/kernel/drivers/net/wl/wl.o

    I am trying to determine exactly how tightly coupled these drivers are to the kernel.

    As an aside, I know that some wireless companies have been hesitant of releasing open source drivers because they are worried their radios might be pushed out of spec. However, if the drivers are alre

  4. Requirements by TWX · · Score: 5, Informative

    If they're not rewriting the source code, using it in a form that they themselves obtained it in (pre-compiling), they might not have to provide source if they disclose their source location. Also, if they were smart enough to create independent kernel modules for the rest of the device, they wouldn't have to release those anyway.

    It would be nice if they included at least a copy of the GPL and a linux installation CD in the back of their manual though, since that would be a way of distributing the code, if not more than the code, and would probably make them in compliance.

    Hell, TurboLinux install CDs came with hardware that Linux couldn't even use, for a while...

    --
    Do not look into laser with remaining eye.
  5. More From the Kernel List by OctaneZ · · Score: 5, Interesting

    A couple follow ups on the kernel mailing list:

    A very interesting bit from the busybox maintainer, who has evidently already sent linksys two letters

    A post outlinging the possibility that Belkin is also shipping GPL'd code

    A few other people are throwing their two cents in, but those were the most interesting, code be an interesting test of corporate policey, and the ability of the GPL to withstand a court battle.

  6. Re:I'm not sure by Alain+Williams · · Score: 5, Funny

    Not at all -- it just gives SCO another company to sue!

  7. Only if they changed something... by pla · · Score: 5, Insightful

    Why does everyone always assume that any embedded device running Linux must have, in some way, violated the GPL?

    I worked eight years as a firmware engineer. In the last three, I dealt almost exclusively with Linux.

    And I can assure you that we didn't need to change any GPL'd code to get what we wanted. Even on fairly custom hardware, we could find preexisting GPL'd code to do 99% of what we needed (and wrote user-space drivers where possible, and modules where not). No need to release anything if you don't change anything, to comply with the GPL.

    Whether ethical or not, plenty of legal ways of circumventing the intent of the GPL exist. And, like it or not, eliminating those loopholes (which would basically require forcing any program that runs under linux to use the GPL) would kill Linux in the business world.

  8. Re:Does it matter ? by blackcat++ · · Score: 5, Insightful

    The GPL has no real valid legal meaning until it has been tested in a court of law. I think the fact that no GPL violation case has ever made it into a courtroom speaks volumes!

    Yes it does. It means that until now noone has had the guts to risk a legal confrontation to free themselves from the requirements the GPL imposes.

    And even if the GPL has no valid legal meaning, what remains? Standard copyright law. So without the GPL you don't even have the right to download the source, let alone modify and republish it!

  9. Re:GPL by PhuCknuT · · Score: 5, Informative

    And I'm sure you know this, but they are not required to release all of their source code, only the code for gpl parts of tivo. Just because the OS is linux doesn't mean they have to release code for everything running on it.

  10. Obligatory "not a GPL violation" post. by mindstrm · · Score: 5, Interesting

    Two points. I always have two points.

    First, as someone else already said, just becuase it uses a linux kernel doesn't mean they modified anything, it could be a stock kernel. If they wrote userspace drivers and/or kernel modules using existing interfaces for their custom hardware, they are not obligated to release anything.

    Secondly, if they weren't abiding by terms they had to according to the GPL, it would be COPYRIGHT violation, not license violation, as if you don't comply with the license, copyright law says they can't redistribute it. I know it seems like a silly point, but it's not.

    People talk about the GPL being "tested in court" and whatnot.. but the fact is: If you don't accept the GPL as valid, then copyright law still stands, and says you can't redistribute, or make derivitive works. A judge can rule the GPL as invalid, but that would mean that nobody had any rights to redistribute anything.

    It's not a license you had to accept and agree to in order to use the product.. so you can't "violate" it.

    Linus, or any other kernel developer could go to linksys, and say "I have not granted you permission to use my copyrighted work, please demonstrate why you think you are allowed to do this". They can then either cite how the GPL allows them to do what they do, or concede that they have no right to distribute.

    So as unclear as I can be.. it's not a GPL violation... and people are not forced to release code because of a nonexistant GPL violation... although that might be an acceptable remedy to all parties in most cases. They could also be forced to simply stop doing it.

  11. Agreed. by mindstrm · · Score: 5, Informative

    However, the GPL still requires that they provide source, even if they have not modified it. If you redistribute, you must provide source, or at least a written offer for the source.

    You can (section c) simply pass along the written offer YOU received, if you are simply redistributing, and not modifying, but only if it's NON-COMMERCIAL, and only if you yourself received the written offer. IF they are using stock linux kernels, there is no written offer, so .. they are obligated to provide a copy of the source (sans their changes, if they are not within the scope of the gpl)

    3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    * a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    * b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    * c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

  12. Cool. by mindstrm · · Score: 5, Insightful

    But his assumption about how kernel modules work is completely wrong.. though the INTENT might be something like he describes, it's not what Linus said.

    The Linux kernel license says you can code proprietary modules, as long as the interface is part of the stock kernel (in other words, GPL)

    So you can make a proprietary network driver, as long you don't haev to modify the main kernel to get it to work; you are under no obligation to release that source at all. If you have some way of hacking an entire realtime OS to look like a network drive to the kernel, that would comply.

    So, linksys should be redistributing the linux sources, however, if their custom work is confined to modules & userland code, they are under no obligation to release the source to those drives. And as linux already has a kernel interface for network & wireless network, there is no reason to expect them to release that code.

  13. you think that's bad? by Trailer+Trash · · Score: 5, Funny

    Not only are they in violation of the GPL, they are literally costing SCO BILLIONS OF DOLLARS by violating SCO's copyrights, patents, or some contract with IBM by releasing a Linux based product! Quick, someone alert McBride!

  14. Belkin 54g WAP/Router by Anonymous Coward · · Score: 5, Informative

    Just been hacking around a Belkin 54k WAP/Router box I bought a few weeks back. NMap identifies it as Linux 2.4.0-2.4.5.

    The Belkin Networking downloads page gives an updated firmware for this. Sure enough, at offset 790393 there's a CRAM Filesystem. Mounting that shows a stock 2.4.5 kernel with three custom modules (one for the wireless card, one for the ethernet card, one for the front panel LEDs). These three modules aside it looks like non-modified GPL stuff.

    However, reading any of the binary files shows the string : "GCC: (GNU) 3.0 20010422 (prerelease) with bcm4710a0 modifications" - Modifications you say? Oh dear, I don't remember seeing a Broadcom patch submitted to GCC ...

  15. BusyBox GPL violation by andersen · · Score: 5, Interesting

    <BusyBox maintainer hat on>

    This is what I did to verify that the Linksys firmware was violating the GPL....

    #!/bin/sh
    wget ftp://ftp.linksys.com/pub/network/WRT54G_1.02.1_US _code.bin
    # I noticed a GZIP signature for a file name "piggy" at offset
    # 60 bytes from the start, suggesting we have a compressed Linux
    # kernel
    dd if=WRT54G_1.02.1_US_code.bin bs=60 skip=1 | zcat > kernel

    # Noticed there was a cramfs magic signature at offset 786464
    dd if=WRT54G_1.02.1_US_code.bin of=cramfs.image bs=786464 skip=1
    file cramfs.image

    sudo mount -o loop,ro -t cramfs ./cramfs.image /mnt
    ls -la /mnt/bin
    file /mnt/bin/busybox
    strings /mnt/bin/busybox | grep BusyBox
    /usr/i386-linux-uclibc/bin/i386-uclibc-ld d /mnt/bin/busybox

    --
    -Erik -- --This message was written using 73% post-consumer electrons--
  16. Re:frankly, this seems stupid by Fnkmaster · · Score: 5, Insightful
    Because it allows the community to get any of their changes back into the mainline codebase. If there are no changes, then they should be willing to provide the source. If that's the real source, it should be demonstrably equivalent to the binaries on the box. If it's not, then they are probably not releasing their real codebase.


    Think of this as a check on honesty of GPL adherents. If you don't make the offer or even admit that there is GPLed code in your product, you are probably doing it for a reason (i.e. you are hiding something). If they really aren't hiding anything, and it was a simple oversight, then why don't they reply to emails about it and just point out that no modifications were made, and stick a source mirror up on their FTP site? The cost is practically nil to them to adhere to the license, assuming they are playing by the rules, so what's the big deal?