But, most importantly, he has done something that is obvious in retrospect, a great time-saver -- he has configured the kernel to always be version "2.6.32", even though we are periodically upgrading to a later minor-version number (the latest is 184.108.40.206).
The advantage of this is that we only have to compile the 3rd-party drivers once. The same thing goes for the nVidia and ATI kernel drivers. Up until now, I have been going through a very tedious process of recompiling the 3rd-party drivers, then we have to compile the nVidia (and ATI) drivers and build new PETs.
I have standardised on the 2.6.32.x kernel for Wary, as it has LTS (Long Term Support) and all analog drivers compile against it. Wary 220.127.116.11 has kernel 18.104.22.168.
I have now compiled 22.214.171.124, but it identifies itself as 2.6.32 (ex, /lib/modules/2.6.32). So, the PET is numbered like this: linux_kernel-2.6.32-40-w5.pet, with a '-' before the 40.
Inspired by Iguleder, I have written my own automated build script. Unlike Iguleder's script, it does not download the sources, you have to do that manually. However, it goes right through and creates a kernel source SFS file (I haven't got it to create a PET yet).
All sources, including build script, uploaded here:
(the usual username/password)
...there is also a tarball of compiled 3rd-party drivers. As long as the kernel configuration is not changed much, these drivers should work in future releases of the 2.6.32.x series.
I have created a kernel PET (for Puppy distro builders only):
Iguleder's forum post is here:
Comments:Posted on 12 May 2011, 22:07 by scottman
build scripts and tool chains
Firstly, I like this idea, hope it does not have negative implications elsewhere - then it's a real winner.
Maybe you know, maybe not, but goingnuts is working on a way to easily switch kernel versions (at boot, I think).. So far he says he has got various puppy 2 to puppy 5 kernels working fine .. Maybe his work would be of interest to you..
I also used a ttylinux build script which builds a separate toolchain first - then uses that toolchain to create the ttylinux kernel, filesystem and packages, all from source.
The advantage of this may not be obvious at first, but after much reading, it seems this is a good way to go about building a release for multiple architectures, as it solves many problems in doing that.
The ttylinux bash script itself seems very simple, and a guy with your experience might have fun trying to modify it, to build a tiny puppy base on a different platform.
ttylinux has been built using this script on ARM, x86, x64, PPC..
I mean, I say simple... Although the toolchain created for me by the script seems to work (compiled GCC ok..), it is having trouble compiling busybox 1.8.2, breaking the final build process - can't work out why busybox won't build...
But I'm sure you would get further than me.