summaryrefslogtreecommitdiffstats
path: root/meta-yocto
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2013-08-22 18:04:27 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-06 23:04:47 +0100
commit0fa12e44663c9e27de7d2c33be9132127679d0d3 (patch)
treef53799785bce2e509b3175cabd8646a370497da4 /meta-yocto
parent95d413d03f66299aa7a835e84dd8ce00d623da6d (diff)
downloadpoky-0fa12e44663c9e27de7d2c33be9132127679d0d3.tar.gz
kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling
This patch aims to fix the following two cases for the INITRAMFS generation. 1) Allow an image recipe to specify a paired INITRAMFS recipe such as core-image-minimal-initramfs. This allows building a base image which always generates the needed initramfs image in one step 2) Allow building a single binary which contains a kernel and the initramfs. A key requirement of the initramfs is to be able to add kernel modules. The current implementation of the INITRAMFS_IMAGE variable has a circular dependency when using kernel modules in the initramfs image.bb file that is caused by kernel.bbclass trying to build the initramfs before the kernel's do_install rule. The solution for this problem is to have the kernel's do_bundle_initramfs_image task depend on the do_rootfs from the INITRAMFS_IMAGE and not some intermediate point. The image.bbclass will also sets up dependencies to make the initramfs creation task run last. The code to bundle the kernel and initramfs together has been added. At a high level, all it is doing is invoking a second compilation of the kernel but changing the value of CONFIG_INITRAMFS_SOURCE to point to the generated initramfs from the image recipe. [YOCTO #4072] (From OE-Core rev: 609d5a9ab9e58bb1c2bcc2145399fbc8b701b85a) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta-yocto')
-rw-r--r--meta-yocto/conf/local.conf.sample.extended22
1 files changed, 22 insertions, 0 deletions
diff --git a/meta-yocto/conf/local.conf.sample.extended b/meta-yocto/conf/local.conf.sample.extended
index 06d7abc01b..a2cb81bc1c 100644
--- a/meta-yocto/conf/local.conf.sample.extended
+++ b/meta-yocto/conf/local.conf.sample.extended
@@ -241,3 +241,25 @@ FORTRAN_forcevariable = ",fortran"
241RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath libgfortran" 241RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath libgfortran"
242export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" 242export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
243export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}" 243export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}"
244
245#
246# Kernel image features
247#
248# The INITRAMFS_IMAGE image variable will cause an additional recipe to
249# be built as a dependency to the what ever rootfs recipe you might be
250# using such as core-image-sato. The initramfs might be needed for
251# the initial boot of of the target system such as to load kernel
252# modules prior to mounting the root file system.
253#
254# INITRAMFS_IMAGE_BUNDLE variable controls if the image recipe
255# specified by the INITRAMFS_IMAGE will be run through an extra pass
256# through the kernel compilation in order to build a single binary
257# which contains both the kernel image and the initramfs. The
258# combined binary will be deposited into the tmp/deploy directory.
259# NOTE: You can set INITRAMFS_IMAGE in an image recipe, but
260# INITRAMFS_IMAGE_BUNDLE can only be set in a conf file.
261#
262#INITRAMFS_IMAGE = "core-image-minimal-initramfs"
263#INITRAMFS_IMAGE_BUNDLE = "1"
264
265