Build a kernel
The Linux Kernel is the main part of the operating system, supplying interface to the hardware and for managing and using applications. To fulfill this task, the kernel is highly configurable and sometimes even has to be modified to work properly.
Menu based configuration
Using buildroot, a working kernel is built automaticly the first time, a image is created. If this default isn't configured as needed, buildroot provides the possibility to invoke make linux26-menuconfig or make linux-menuconfig in newer versions. Using this interface is preferred over calling the kernel's menuconfig directly, as certain parameters needed for cross compilation and configuration for a different architecture are set automatically. Additionally buildroot is informed about changes on the kernel configuration automatically and will rebuilt the kernel the next time an image is created.
Modifying drivers and other code
Some applications as well as a custom board design might require patching the kernel or modifying the source directly. As described in Buildroot directories you can find the sources of the linux kernel eg. at project_build_arm/adb1000g45/linux-2.6.33.2. These sources can be modified as needed.
To be able to decide which packages have been built already and which not, buildroot provides a set of so called stamp files. If these are present and untouched for a given package, it won't be built again, as it is assumed to be recent. This fasten up the whole process of creating a new image. But if there are some files in a specific package, eg. the kernel, are modified, buildroot won't built these automatically. To do so the file .stamp_configured has to be modified, eg by invoking
touch .stamp_configured
within the kernel directory before executing make in the buildroot directory.