All pastes #959600 Raw Edit

Unnamed

public text v1 · immutable
#959600 ·published 2008-03-27 15:38 UTC
rendered paste body
#
# old_revision [2c5004d72a3f70fdae1b53fd5cfe6b9ba04648c1]
#
# add_file "packages/initrdscripts/initramfs-kernel_1.0.bb"
#  content [4a43b26516dc0c6eab995d35f20b6e8d30777ebe]
#
============================================================
--- packages/initrdscripts/initramfs-kernel_1.0.bb	4a43b26516dc0c6eab995d35f20b6e8d30777ebe
+++ packages/initrdscripts/initramfs-kernel_1.0.bb	4a43b26516dc0c6eab995d35f20b6e8d30777ebe
@@ -0,0 +1,28 @@
+DESCRIPTION = "Meta package for packaging an initramfsed kernel"
+
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+PACKAGES="initramfs-kernel-image"
+KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')}"
+KERNELPV = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel.pv')}"
+KERNELPR = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel.pr')}"
+
+PKG_initramfs-kernel-image = "initramfs-kernel-image-${KERNEL_VERSION}"
+PV_initramfs-kernel-image = "${KERNELPV}"
+PR_initramfs-kernel-image = "${KERNELPR}"
+
+FILES_initramfs-kernel-image = "/boot/${KERNEL_IMAGETYPE}-${MACHINE}-initramfs.bin"
+KERNEL_IMAGETYPE ?= "zImage"
+
+do_install () {
+	if [ -z "${INITRAMFS_IMAGE}" ]; then
+		 oewarn "INITRAMS_IMAGE not set. If you want to generate a kernel with build in initramfs, set it to the desired initramfs-image, rebuild virtual/kernel and this package"
+	else			 
+		install -d ${D}/boot
+		install ${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}-${MACHINE}-initramfs.bin ${D}/boot
+	fi	
+}
+
+do_install[depends] = "virtual/kernel:do_builtin_initramfs"
+#do_install[nostamp] = "1"
+
#
# old_revision [2c5004d72a3f70fdae1b53fd5cfe6b9ba04648c1]
#
# patch "classes/kernel.bbclass"
#  from [34b802297a875fd3c77c50d0aac3270b57374764]
#    to [e0534f61dcfe5e4cf312be2e79ef0eeb4debe687]
#
============================================================
--- classes/kernel.bbclass	34b802297a875fd3c77c50d0aac3270b57374764
+++ classes/kernel.bbclass	e0534f61dcfe5e4cf312be2e79ef0eeb4debe687
@@ -65,22 +65,40 @@ kernel_do_compile() {
 	fi
 }
 
-INITRAMFS_SYMLINK_NAME ?= "initramfs-${MACHINE}"
-INITRAMFS_IMAGE_TARGET ?= "initramfs-image"
+do_builtin_initramfs() {
+	 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
+		#there seem to be broken cp binarys out there
+		touch usr/initramfs_data.cpio.gz
+		oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}"
+		install -m 0644 "${KERNEL_OUTPUT}" "${DEPLOY_DIR_IMAGE}/initramfs-${KERNEL_DEPLOY_NAME}"
+		install -d "${STAGING_KERNEL_DIR}"
+		install -m 0644 "${KERNEL_OUTPUT}" "${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}-${MACHINE}-initramfs.bin"
+		echo "${PV}" > "${STAGING_KERNEL_DIR}/kernel.pv"
+		echo "${PR}" > "${STAGING_KERNEL_DIR}/kernel.pr"
+		# Make sure to kill injected initramfs, in case someone will do "-c compile -f"
+		rm usr/initramfs_data.cpio.gz
 
-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
+		cd "${DEPLOY_DIR_IMAGE}"
+		ln -sf "initramfs-${KERNEL_DEPLOY_NAME}" "initramfs-${KERNEL_SYMLINK_NAME}"
+	 	cd -
+	fi
 }
-addtask builtin_initramfs after do_compile
-do_builtin_initramfs[nostamp] = "1"
-do_builtin_initramfs[depends] = "${INITRAMFS_IMAGE_TARGET}:do_rootfs"
 
+python () {
+    import bb
+    if bb.data.getVar('INITRAMFS_IMAGE', d, True) != '':
+        bb.data.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs', d)
+        bb.data.setVar('INITRAMFS_PACKAGE_TASK_BUILD', 'initramfs-kernel:do_build', d)
+	bb.data.setVar('INITRAMFS_PACKAGE_TASK_CLEAN', 'initramfs-kernel:do_clean', d)
+}
+#for use in initramfs-kernel.bb
+do_builtin_initramfs[depends] = "${INITRAMFS_TASK}"
+do_build[depends] += "${INITRAMFS_PACKAGE_TASK_BUILD}"
+do_clean[depends] += "${INITRAMFS_PACKAGE_TASK_CLEAN}"
+addtask builtin_initramfs before do_build after do_package_write
+
 kernel_do_stage() {
 	ASMDIR=`readlink include/asm`
 
@@ -448,3 +466,20 @@ addtask sizecheck before do_install afte
 }
 
 addtask sizecheck before do_install after do_compile
+
+KERNEL_CUSTOM_NAME ?= ""
+KERNEL_DEPLOY_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${KERNEL_CUSTOM_NAME}${MACHINE}-${DATETIME}.bin"
+KERNEL_SYMLINK_NAME ?=  "${KERNEL_IMAGETYPE}-${KERNEL_CUSTOM_NAME}${MACHINE}.bin"
+
+do_deploy() {
+        install -d ${DEPLOY_DIR_IMAGE}
+        install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOY_NAME}
+        cd ${DEPLOY_DIR_IMAGE}
+        ln -sf ${KERNEL_DEPLOY_NAME} ${KERNEL_SYMLINK_NAME}
+        tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_install
+