[oe-commits] org.oe.dev kernel.bbclass: get initramfs stuff working

thesing commit oe at amethyst.openembedded.net
Fri May 30 19:31:38 UTC 2008


kernel.bbclass: get initramfs stuff working
 To use this you have to INITRAMFS_IMAGE to the desired image. In addition
 the you must have cpio.gz in IMAGE_FSTYPES (at least for that image see
 packages/images/initramfs-kexec-image.bb for an example)

Author: thesing at openembedded.org
Branch: org.openembedded.dev
Revision: 1ebb8850a0ea6484319457a058a3ce4c3085d004
ViewMTN: http://monotone.openembedded.org/revision/info/1ebb8850a0ea6484319457a058a3ce4c3085d004
Files:
1
classes/kernel.bbclass
Diffs:

#
# mt diff -r578cd827b69f6514840962ec57d6933ed79521ab -r1ebb8850a0ea6484319457a058a3ce4c3085d004
#
#
#
# patch "classes/kernel.bbclass"
#  from [ef41561ab88b2c57209e85c7285f15f0c72d6d2b]
#    to [13aa84ac4406f0f45d138d35e9fbdc894a567058]
#
============================================================
--- classes/kernel.bbclass	ef41561ab88b2c57209e85c7285f15f0c72d6d2b
+++ classes/kernel.bbclass	13aa84ac4406f0f45d138d35e9fbdc894a567058
@@ -16,6 +16,9 @@ python __anonymous () {
     	depends = bb.data.getVar("DEPENDS", d, 1)
     	depends = "%s u-boot-mkimage-openmoko-native" % depends
     	bb.data.setVar("DEPENDS", depends, d)
+
+    if bb.data.getVar('INITRAMFS_IMAGE', d, True) != '':
+	bb.data.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs', d);
 }
 
 inherit kernel-arch
@@ -79,21 +82,28 @@ kernel_do_compile() {
 	fi
 }
 
-INITRAMFS_SYMLINK_NAME ?= "initramfs-${MACHINE}"
-INITRAMFS_IMAGE_TARGET ?= "initramfs-image"
 
 do_builtin_initramfs() {
-	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
-	cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_SYMLINK_NAME}" usr/initramfs_data.cpio.gz
-	oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}"
-	install -d ${DEPLOY_DIR_IMAGE}
-	install -m 0644 ${KERNEL_OUTPUT} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}-initramfs.bin
-	# Make sure to kill injected initramfs, in case someone will do "-c compile -f"
-	rm usr/initramfs_data.cpio.gz
+	 if [ ! -z "${INITRAMFS_IMAGE}" ]; then
+		unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+		cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.gz" usr/initramfs_data.cpio.gz
+		oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}"
+	
+		install -d ${DEPLOY_DIR_IMAGE}
+		install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}-${INITRAMFS_IMAGE}.bin
+		package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}-${INITRAMFS_IMAGE}.bin
+	
+		# Make sure to kill injected initramfs, in case someone will do "-c compile -f"
+		rm usr/initramfs_data.cpio.gz
+		
+		cd ${DEPLOY_DIR_IMAGE}
+		rm -f ${KERNEL_IMAGE_SYMLINK_NAME}-${INITRAMFS_IMAGE}.bin
+		ln -sf ${KERNEL_IMAGE_BASE_NAME}-${INITRAMFS_IMAGE}.bin ${KERNEL_IMAGE_SYMLINK_NAME}-${INITRAMFS_IMAGE}.bin
+		package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_SYMLINK_NAME}-${INITRAMFS_IMAGE}.bin
+	fi
 }
-#addtask builtin_initramfs after do_compile
-#do_builtin_initramfs[nostamp] = "1"
-#do_builtin_initramfs[depends] = "${INITRAMFS_IMAGE_TARGET}:do_rootfs"
+addtask builtin_initramfs before do_build after do_package_write
+do_builtin_initramfs[depends] = '${INITRAMFS_TASK}'
 
 kernel_do_stage() {
 	ASMDIR=`readlink include/asm`






More information about the Openembedded-commits mailing list