[OE-core] Embed initramfs into kernel

Andrea Adami andrea.adami at gmail.com
Mon Apr 22 16:02:39 UTC 2013


On Mon, Apr 22, 2013 at 5:06 PM, Bruce Ashfield
<bruce.ashfield at gmail.com> wrote:
> On Mon, Apr 22, 2013 at 10:11 AM, Yevhen Kyriukha <kirgene at gmail.com> wrote:
>> Thanks!
>>
>> I was trying to build the kernel and I got the following error:
>> Aborted dependency loops search after 10 matches.
>>
>> I copied core-image-minimal-initramfs and changed IMAGE_INSTALL:
>> IMAGE_INSTALL = "initramfs-live-boot busybox udev base-passwd".
>> Also I added
>> INITRAMFS_IMAGE = "custom-initramfs"
>> to my kernel recipe.
>>
>> As far as I understand initramfs image depends on the kernel that depends on
>> initramfs image.

Assuming the custom-kernel you're building will not be the one in
rootfs you're almost there... now explicitely remove the extra
dependencies of your initramfs image

# avoid circular dependencies
EXTRA_IMAGEDEPENDS = ""

Note that you'll have then to hack around the "ERROR: Multiple .bb
files are due to be built which each provide virtual/kernel"

See for an example   http://kexecboot.org/documentation/crosscompiling/oe-yocto

>
> Correct. That's something that commonly happens in my experience. You can't have
> anything in your dependency chain that causes that circular depend .. which is
> what the boot tasks will pull in.
>
> We are working to enhance / fix this in yocto 1.5, but for now, that
> is the restriction.
>
> Have you looked at: classes/image-live.bbclass ? Which is a current user of
> core-image-minimal-initramfs and gets around the circular dependency problem.
>
> Cheers,
>
> Bruce

On the other side, this way you'll end up embedding the custom-kernel
in the rootfs.
Pls note here INITRD_IMAGE and INITRD are used instead of INITRAMFS_IMAGE.

Cheers

Andrea


>
>>
>>
>> Best regards,
>> Yevhen
>>
>>
>> 2013/4/22 Bruce Ashfield <bruce.ashfield at gmail.com>
>>>
>>> On Mon, Apr 22, 2013 at 9:14 AM, Yevhen Kyriukha <kirgene at gmail.com>
>>> wrote:
>>> > Hi!
>>> >
>>> > I have a custom kernel recipe and initramfs image recipe.
>>> > How can I embed initramfs into kernel?
>>> > Is there any example available?
>>>
>>> The support is in oe-core, so checking the yocto docs is a good starting
>>> point:
>>>
>>> http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html
>>>
>>> And in particular:
>>>
>>> "core-image-minimal-initramfs: A core-image-minimal image that has the
>>> Minimal RAM-based Initial Root Filesystem (initramfs) as part of the
>>> kernel, which allows the system to find the first “init” program more
>>> efficiently."
>>>
>>> There is also meta-initramfs:
>>>
>>> https://github.com/openembedded/meta-oe/tree/master/meta-initramfs
>>>
>>> Cheers,
>>>
>>> Bruce
>>>
>>> >
>>> > Best regards,
>>> > Yevhen
>>> >
>>> > _______________________________________________
>>> > Openembedded-core mailing list
>>> > Openembedded-core at lists.openembedded.org
>>> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>> >
>>>
>>>
>>>
>>> --
>>> "Thou shalt not follow the NULL pointer, for chaos and madness await
>>> thee at its end"
>>
>>
>
>
>
> --
> "Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end"
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list