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
+