The kernel I am focused on in this Wiki is 2.6.27.7. \\ **In regard to network booting, any 2.6 kernel should technically work. Some where in the build chain of the 2.6 kernel there were some format changes.** \\ **If you go low enough in the 2.6 build chain, you may experience some problems.** I will do my best to get more exact information on this issue as time goes on.\\ ---- \\ Obtain the kernel source code from [[http://www.kernel.org/pub/linux/kernel/v2.6/]]\\ \\ The whole idea behind this kernel, is **supposed** to be small and mostly **modular**. Remember, you are along for a learning ride, so until further notice, these kernel configs will lack any real modular taste and be anything but small. As time goes on, I plan to tweak until I have the other end of the spectrum, a really small setup. Just STAY TUNED.\\ \\ [[.config]] This is my current kernel config for 2.6.27.7 that **boots**.\\ \\ There are some core changes that have to take place in order for a kernel to be able to boot over the network. They are simple.\\ \\ This is one piece of software that has should be placed somewhere other than the /scratch directory. The reason for this is really simple, I want to remain as close to a standard as possible. Not only for personal sanity, but the sanity of packages that are built etc. It is extremely common for various build processes to look in /usr/src/linux ( the linux dir is usually a symbolic link to /usr/src/linux-x.x.x ) for kernel headers needed to build against. It just common sense to make things easier, follow the standard.\\