[oe] generate a named kernel in ${DEPLOY_DIR_IMAGE}

Denys Dmytriyenko denis at denix.org
Tue Sep 28 17:20:37 UTC 2010


On Tue, Sep 28, 2010 at 06:54:38PM +0200, Frans Meulenbroeks wrote:
> Hi,
> 
> As I needed to generate two different kernels for the same machine I
> had some kind of problem (as emailed yesterday).
> For now I've solved it as follows:
> 
> I created a 2nd recipe (in an overlay):
> linux-small_2.6.34.bb
> this one essentially only requires linux_2.6.34.bb and sets S to the linux_${PN}
> Then I can just add a dir linux-small and add the small defconfig in it.
> 
> That way bitbake linux-small should give me the 2nd kernel.
> And actually it builds the kernel but this one is also packaged in a
> kernel-*.ipk.
> I could have made two different machines, but that seemed somewhat
> overkill, so in the end I decided to modify do_install_append in
> linux.inc.
> 
> This function currently reads:
> 
> do_install_append() {
> 	oe_runmake headers_install
> INSTALL_HDR_PATH=${D}${exec_prefix}/src/linux-${KERNEL_VERSION}
> ARCH=$ARCH
> }
> 
> And I just added a line:
>     cp ${D}/boot/uImage ${DEPLOY_DIR_IMAGE}/uImage-${PN}
> 
> That way both kernels end up with different names in the deploy dir.
> In the image recipe I can then just copy them in a post process
> command to the proper location.
> (btw that is also why I went for uImage-${PN} and not for
> uImage-${PN}-${KERNEL_VERSION}, the kernel version is not known in the
> image recipe so it is much harder to copy the right/latest uImage to
> the kernel.
> 
> Rationale for typing this message is threefold:
> - first of all I wanted to record and share what I have done, so
> others can use it
> - secondly I would appreciate feedback on my solutions (and maybe
> someone sees a way to improve it)
> - and lastly I would like to inquire if people feel the above line
> would be a nice addition to the stock linux.inc. If so I'l happily
> prepare a patch.

Frans,

May I suggest you to look at the existing multi-kernel.inc implementation[1] 
for building multiple versions of the same kernel with slightly different 
defconfigs and slightly different resulting names in the deploy. I use it in 
Arago[2][3] for linux-davinci machines, while Koen uses it in OE with 
linux-omap-psp for beagleboard[4][5]...

[1] http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/linux/multi-kernel.inc
[2] http://arago-project.org/git/?p=arago.git;a=blob;f=recipes/linux/linux-davinci-staging_git.bb;hb=HEAD
[3] http://arago-project.org/git/?p=arago.git;a=tree;f=recipes/linux/linux-davinci-staging/dm355-evm;hb=HEAD
[4] http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/linux/linux-omap-psp_2.6.32.bb
[5] http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/linux/linux-omap-psp-2.6.32/beagleboard

-- 
Denys




More information about the Openembedded-devel mailing list