File diff 2eb7082e682b → e7ec09b24d11
enforcement-case-studies.tex
Show inline comments
...
 
@@ -804,48 +804,53 @@ Linux.  A decade later, this situation remains largely unresolved.
 
\chapter{ThinkPengiun Wireless Router: A study in Excellent CCS}
 

	
 
% FIXME
 
This case study does a step-by-step build and installation analysis of  one
 
of the best Complete, Corresponding Source (CCS) releases we've seen.  The
 
CSS release studied here was provided for the binary distribution of a
 
physical product by ThinkPengiun.  The product is the model
 
``TPE-NWIFIROUTER'', a wireless router.
 

	
 
The method of
 
distribution (complete source accompanying the product) and the way the source
 
was laid out provide very good examples of how to make things easier for both
 
the distributor and the purchaser of the hardware containing GPLed components.
 

	
 
\section{Root Filesystem and Kernel Compilation}
 

	
 
* We found a CD included in the box that the ThinkPenguin TPE-NWIFIROUTER
 
  shipped in, labelled "libreCMC v1.2.1 source code".  On the CD, there was a
 
  README file at the top level, which mentioned that to build the software, one
 
  needed a GNU/Linux system as well as a list of approximately 10 packages.
 
  These sorts of plain text instructions are helpful because we know what kind
 
  of system we are expected to use, and what commands we should run on it.  Such
 
  instructions are not strictly required, as an obviously-named shell script may
 
  suffice, but they are helpful in clarifying any ambiguities that may arise.
 

	
 
% FIXME: Spend some  time here (admittedly a digression: maybe refer to
 
% another section later?) about how it's ok to specify a specific build
 
% environment.
 
  
 
* Since the instructions didn't mention a specific distro to use, we ran the
 
  build on an amd64 Debian 6 machine we had, after confirming the packages were
 
  installed.  In particular, we ran "make", as described in the instructions in
 
  the README.  The instructions said that "make menuconfig" could be used to
 
  adjust the settings, but it appeared this step was optional ("Please note that
 
  the default configuration is what was used to build the firmware image for
 
  your router. It is advised that you use this configuration.") so we chose to
 
  skip straight to the "make" step instead.  This was done after extracting the
 
  librecmc-v1.2.1.tar.bz2 tarball, which was not explicitly spelled out (this
 
  should ideally be added to the README), but was implied by the
 
  "u-boot_reflash" file (in the same directory as the README), which explicitly
 
  used the other tarball.  The build took about 40 minutes to run on our system.
 
* It was helpful to know that we could use "make menuconfig" for configuration
 
  changes, as being able to modify the source is an important part of the GPL's
 
  requirements.  Adding instructions like these shows that the distributor is
 
  aware of and interested in promoting the spirit of the GPL, by making it
 
  easier to modify the source than may be strictly required by the GPL's text.
 
* The "make" step completed successfully on our system and resulted in several
 
  files being generated in the bin/ar71xx directory, namely firmware images.
 
  There appeared to be several filesystem and kernel images, for different
 
  hardware versions.  It was unclear which one to install on the particular
 
  device we received or how to install it, both of which should have been
 
  mentioned in the README.
 
* The above installation issue is mitigated by the availability of a web UI in