All of lore.kernel.org
 help / color / mirror / Atom feed
From: ChenQi <Qi.Chen@windriver.com>
To: <Erwin.Rieger.ext@rohde-schwarz.com>, <yocto@yoctoproject.org>
Subject: Re: How to use different busybox defconfig's in the initramfs and rootfs image
Date: Wed, 4 Feb 2015 10:47:37 +0800	[thread overview]
Message-ID: <54D18849.7020003@windriver.com> (raw)
In-Reply-To: <OFD2FD4259.5EFAEEC5-ONC1257DE1.00338C9C-C1257DE1.00338CA2@rohde-schwarz.com>

[-- Attachment #1: Type: text/plain, Size: 5315 bytes --]

On 02/03/2015 05:23 PM, Erwin.Rieger.ext@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@windriver.com> schrieb: -----
> An: <Erwin.Rieger.ext@rohde-schwarz.com>, <yocto@yoctoproject.org>
> Von: ChenQi <Qi.Chen@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@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
>> -- 
>>
>>
>
>
>


[-- Attachment #2: Type: text/html, Size: 22397 bytes --]

  reply	other threads:[~2015-02-04  2:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-02 13:21 How to use different busybox defconfig's in the initramfs and rootfs image Erwin.Rieger.ext
2015-02-03  1:48 ` ChenQi
2015-02-03  9:23   ` Erwin.Rieger.ext
2015-02-04  2:47     ` ChenQi [this message]
2015-02-04  8:48       ` Paul Eggleton
2015-02-04  8:49       ` Paul Eggleton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54D18849.7020003@windriver.com \
    --to=qi.chen@windriver.com \
    --cc=Erwin.Rieger.ext@rohde-schwarz.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.