[Buildroot] Extending buildroot functionality for creating board support packages (BSP) out of buildroot tree

universe II universeii at gmx.de
Fri Apr 12 09:51:07 UTC 2013


Dear all,
we are using buildroot for porting an existing embedded PowerPC board to 
linux. For this purpose we have to make modifications to the kernel 
(adding and changing files to support custom hardware). This can easily 
be done by enabling custom patches in the menuconfig.
This is a wonderful solution when the development of the kernel 
modifications is done and the patches are existing but during 
development this could be time consuming. The reason is that we can not 
do the kernel modifcations in the kernel tree itself but in a completely 
separated directory structure. This is caused by our existing version 
control system and by project development requirements.

Imagine that you made a small modification to one of the custom files  
(e.g. changing a printk() statement) and you want to re-build the 
kernel. You have to develop a script which takes a virgin kernel, 
extracts the gz file, makes a copy of the tree, modifies the files in 
the copy and then creates the patch and copies this patch to the 
buildroot tree. Even on a fast hardware this takes some time and you 
have to do it for every change.

I spent some time this morning to evaluate if there could be a more 
elegant solution. Here is what I've done:
1) In linux/Config.in: Add a new entry to the kernel menuconfig which 
allows to enter a script name or a directory name (similar to the custom 
patch option)
2) In linux/linux.mk: After unpacking the kernel and applying the 
patches (if any) the given script or all scripts in the given directory 
are executed.

This allows me to make modification to the unpacked kernel tree without 
the need to create patch files but also opens up flexibility for other 
functionality which may arise in the future.

Let me know what you think about this. If you are interested in 
incorporating these changes into the official buildroot suite, l can 
provide the changes I made.

Regards,
Andreas



More information about the buildroot mailing list