[yocto] struggling with initramfs

Ferry Toth ftoth at telfort.nl
Wed Jul 4 11:57:18 PDT 2018


Tim Hammer wrote:

> Can anyone point me to a step-by-step tutorial or simple how-to on
> creating and using an initramfs with my kernel for ARM aarch64?
> 
> 
> I have tried creating my own:
>  - boot-image.bb file with IMAGE_FSTYPES = "cpio.gz".
>  - local.conf has INITRAMFS_IMAGE_BUNDLE = "1"
>  - linux.bbappend has INITRAMFS_IMAGE = "boot-image"
> 
> This all seems to be "correct" to the extent that bitbake linux tries to
> do the right thing.
> 
> However, I get a failure in do_bundle_initramfs- "mv: cannot stat
> 'arch/arm64/boot/Image': No such file or directory".
> 
> To the best of my (limited) debugging abilities with Yocto, it seems like
> the kernel image backup has already been run when it gets to this point
> and the Image file in that directory has already been moved to Image.bak.
> If I comment out the mv statement in kernel.bbclass causing the failure,
> the process continues, but the initramfs does not seem to get populated or
> perhaps installed into my kernel image as I get kernel panics that I have
> been unable to get past.
> 
> 
> I decided to take a different approach and try using the
> core-image-minimal-initramfs recipe as INITRAMFS_IMAGE. By commenting out
> the COMPATIBLE_HOST entry I am able to build a kernel for ARM aarch64. I
> can even seem to boot into this initramfs- it counts down waiting for
> removable media; seems to find my primary rootfs on sda3, but there is no
> rootfs.img file there so says it is dropping to a shell (although I never
> get a prompt...).

We have taken this approach here 
https://github.com/edison-fw/meta-intel-edison/tree/master/meta-intel-edison-distro/recipes-core

There are 2 images, the rootfs and the initramfs. And we overload the init-live.sh 
to load certain kernel modules and acpi-tables then switchroot to the rootfs.

> Thinking I could start with that recipe and work to get rid of the live
> stuff and just get to a busybox prompt before trying to run my unique init
> commands, I copied  core-image-minimal-initramfs.bb to my-
> core-image-minimal-initramfs.bb in my layer and changed INITRAMFS_IMAGE to
> "my- core-image-minimal-initramfs".
> However, I obviously missed something in the configuration as I get an
> error in go_bundle_initramfs again:
>      kernel-source/scripts/gen_initramfs_list.sh:
>                  Cannot open
> '/.../linux-qoriq/4.14-r0/build/usr/my-core-image-minimal-initramfs-{machine}.cpio'
> 
> Any help would be greatly appreciated.
> Thank you!




More information about the yocto mailing list