Trying to build all the file systems from 2.6.x is quite a challenge by itself due the span of more than 5 years which passed from 2.6.0 (December 2003) to 2.6.29 (March 2009). Luckily, kbuild, the makefile-based build system did not change that much and I had to divide the releases in two groups: 2.6.0 to 2.6.12 (older half) and 1.6.13 o 2.6.29 (newer half). For the first one I had to use the
command while for the second I was able to use a simpler one
In both cases the sequence of configuration commands was the following:
On the toolchain front I used the latest binutils (2.19.1) from Debian 5.0 Lenny and two GCC versions: the 4.1.2, the latest GCC from the 4.1 series that is available in Debian Unstable Sid for the newer half and a manually-compiled 2.95.3 for the older one. To get 2.6.16 to 2.6.21 to compile I also had to manually add an include for limits.h in the scripts/mod/sumversion.c.
From the storage perspective, the 30 kernel trees weight about 1.1 GB in tar.bz2 form, 7.4 GB unpacked and 12.4 GB when all the file systems are compiled. To put things into perspective, after make bzImage the 2.6.29 is 1.3 GB and gets to 3.8 GB after make modules. This is, of course, an upper bound because the kernel was configured with make allmodconfig. A few more details: the bzImage obtained this way was 3.7 MB and the 2595 .ko files that were produced sum up to a hefty size of 889 MB.