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 first question: Is there a nicer/cleaner way to include/reference the source files from the base busybox recipe in the meta layer? 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 can i use a 'version wildcard' in a 'require' statement? 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.c...@windriver.com> schrieb: ----- An: <erwin.rieger....@rohde-schwarz.com>, <yocto@yoctoproject.org> Von: ChenQi <qi.c...@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....@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 --
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto