[yocto] How to use different busybox defconfig's in the initramfs and rootfs image
ChenQi
Qi.Chen at windriver.com
Tue Feb 3 18:47:37 PST 2015
On 02/03/2015 05:23 PM, Erwin.Rieger.ext at rohde-schwarz.com wrote:
>
> Hello,
>
> thank you for your reply.
>
> I have a working solution now, but it is not as clean as i would like
> it to be and some new questions arose with it.
>
> My current setup consists of a busybox.bbappend file that is used to
> customize the rootfs
> busybox (defconfig, some /etc files and so on) and a
> busybox-initramfs.bb recipe for the initramfs busybox (as you
> suggested).
>
> The busybox.bbappend (see below) is straight forward, so no problem
> with that.
>
> To create the busybox-initramfs.bb in my custom layer, i have included
> the base busybox recipe from the meta layer with
> an 'require' statement.
>
> Then i had to extend the FILESEXTRAPATHS variable to point back to the
> base recipe files-directory since it
> no longer found the SRC_URI files from meta/busybox.bb and
> meta/busybox.inc. See the BUSYBOXBASEDIR
> variable in the busybox-initramfs.bb below.
>
> I feel that his construct is not that elegant, so here comes the
> f*irst question*:
>
> Is there a nicer/cleaner way to include/reference the source files
> from the base busybox recipe in the meta layer?
>
How about using "${COREBASE}/meta/recipes-core/busybox"? I didn't try it
out, so I'm not sure whether it works.
> The *second question* concerns the versioning: The busybox.bbappend
> file uses a 'version wildcard' (_%) to
> match all versions of the base busybox recipe. But in
> the busybox-initramfs.bb recipe i have to hardwire the
> version of the base recipe.
>
How about change the recipe name to busybox-initramfs_1.22.1.bb? So that
the PV value is automatically extracted from the recipe name and there's
no need to set it in the recipe.
> How can i use a 'version wildcard' in a 'require' statement?
>
It's not supported, as far as I know.
Best Regards,
Chen Qi
> I've tried 'require recipes-core/busybox/busybox_%.bb' but that gives
> me a parse error so it seems not to be
> possible to use version wildcards together with require/include.
>
>
> My current busybox-initramfs.bb recipe:
>
> -------------------------------------------------------------------
> DESCRIPTION = "Use different busybox defconfig for initramfs."
>
> # require recipes-core/busybox/busybox_1.22.1.bb
>
> PV = "1.22.1"
> require recipes-core/busybox/busybox_${PV}.bb
>
> S = "${WORKDIR}/busybox-${PV}"
>
> # Point FILESPATH to base busybox files dir
> BUSYBOXBASEDIR = "${THISDIR}/../../../meta/recipes-core/busybox"
> FILESEXTRAPATHS_prepend := "${BUSYBOXBASEDIR}/busybox:"
> FILESEXTRAPATHS_prepend := "${BUSYBOXBASEDIR}/files:"
>
> # Include our initramfs busybox defconfig
> FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
>
> BUSYBOX_SPLIT_SUID = "0"
> -------------------------------------------------------------------
>
>
>
> The busybox_%.bbappend for the rootfs busybox:
>
> -------------------------------------------------------------------
> DESCRIPTION = "Customize busybox."
>
> # Include our rootfs busybox defconfig
> FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
>
> SRC_URI += " \
> file://inetd.conf \
> "
>
> do_install_append() {
> install ${WORKDIR}/inetd.conf ${D}${sysconfdir}
> }
>
> BUSYBOX_SPLIT_SUID = "0"
> -------------------------------------------------------------------
>
>
> Best Regards, Erwin Rieger
>
>
>
> -----ChenQi <Qi.Chen at windriver.com> schrieb: -----
> An: <Erwin.Rieger.ext at rohde-schwarz.com>, <yocto at yoctoproject.org>
> Von: ChenQi <Qi.Chen at windriver.com>
> Datum: 03.02.2015 02:48
> Betreff: Re: [yocto] How to use different busybox defconfig's in the
> initramfs and rootfs image
>
> The only way I know is to make a new recipe, busybox-initramfs.bb, for
> example.
> Install busybox for image rootfs and busybox-initramfs for initramfs.
>
> Best Regards,
> Chen Qi
>
> On 02/02/2015 09:21 PM, Erwin.Rieger.ext at rohde-schwarz.com wrote:
>> Hello list,
>>
>> i have used Yocto to create a initramfs linux kernel and a
>> corresponding rootfs for a embedded linux system.
>>
>> Things are working as expected, so far.
>>
>> Now i want to fine-tune my setup and want to use a different busybox
>> configuration in the initramfs as the one in the rootfs image.
>> For example, the initramfs busybox should contain support for
>> switch-root and that is not needed in the rootfs.
>> On the other hand, the rootfs should contain a "full-fledged" busybox
>> (with inetd enabled, for example).
>>
>> So the question is: How can i build/install a package two times with
>> differing configurations in one bitbake run?.
>>
>> How can this be done the Yocto-way without copying busybox.bb and
>> hacking it the way i need it?
>>
>> I've tried various combinations, e.g. bb-appending busybox,
>> inheriting from busybox and so on - but to no avail.
>>
>> Maybe someone have an idea on how to do that?
>>
>>
>> PS:
>> * The kernel recipe is derived (bbappend)
>> from core-image-minimal-initramfs.
>> * Rootfs recipe is derived from core-image-minimal.bb.
>>
>>
>> --
>> Erwin Rieger
>> --
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20150204/c32212d8/attachment.html>
More information about the yocto
mailing list