From e243c30f04c18722dc65effe6d4f275a3f35de46 Mon Sep 17 00:00:00 2001 From: Jesse Gilles Date: Tue, 4 Nov 2014 11:51:34 -0600 Subject: initial commit of mLinux layer --- classes/mlinux-image.bbclass | 33 +++++++++++++++++++++++++++++++++ classes/mlinux_metadata_scm.bbclass | 14 ++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 classes/mlinux-image.bbclass create mode 100644 classes/mlinux_metadata_scm.bbclass (limited to 'classes') diff --git a/classes/mlinux-image.bbclass b/classes/mlinux-image.bbclass new file mode 100644 index 0000000..8da5e97 --- /dev/null +++ b/classes/mlinux-image.bbclass @@ -0,0 +1,33 @@ +# set specified root password in image using ROOT_PASSWORD_HASH +mlinux_set_root_password () { + if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then + sed -i "s%^root:[^:]*:%root:${ROOT_PASSWORD_HASH}:%" ${IMAGE_ROOTFS}/etc/shadow + elif [ -e ${IMAGE_ROOTFS}/etc/passwd ]; then + sed -i "s%^root:[^:]*:%root:${ROOT_PASSWORD_HASH}:%" ${IMAGE_ROOTFS}/etc/passwd + fi +} +ROOTFS_POSTPROCESS_COMMAND += "mlinux_set_root_password;" + +# make links to images in TFTPBOOT_DIR for ease of development +do_tftpboot_links() { + TFTPBOOT_CLEAN="oe_bootstrap.bin oe_bootstrap_pmecc_padded.bin \ + oe_u-boot.bin oe_uImage.bin oe_rootfs.jffs2 oe_images" + + if [ -n "${TFTPBOOT_DIR}" ]; then + install -d ${DEPLOY_DIR_IMAGE} + + for f in ${TFTPBOOT_CLEAN}; do + rm -f ${TFTPBOOT_DIR}/$f + done + + ln -nfs ${DEPLOY_DIR_IMAGE}/at91bootstrap.bin ${TFTPBOOT_DIR}/oe_bootstrap.bin + if [ -f ${DEPLOY_DIR_IMAGE}/at91bootstrap_pmecc_padded.bin ]; then + ln -nfs ${DEPLOY_DIR_IMAGE}/at91bootstrap_pmecc_padded.bin ${TFTPBOOT_DIR}/oe_bootstrap_pmecc_padded.bin + fi + ln -nfs ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.bin ${TFTPBOOT_DIR}/oe_u-boot.bin + ln -nfs ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin ${TFTPBOOT_DIR}/oe_uImage.bin + ln -nfs ${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.jffs2 ${TFTPBOOT_DIR}/oe_rootfs.jffs2 + ln -nfs ${DEPLOY_DIR_IMAGE} ${TFTPBOOT_DIR}/oe_images + fi +} +addtask tftpboot_links after do_rootfs before do_build diff --git a/classes/mlinux_metadata_scm.bbclass b/classes/mlinux_metadata_scm.bbclass new file mode 100644 index 0000000..e394910 --- /dev/null +++ b/classes/mlinux_metadata_scm.bbclass @@ -0,0 +1,14 @@ +MLINUX_METADATA_REVISION = "${@base_get_metadata_git_revision("${OETREE}",None)}" +MLINUX_METADATA_BRANCH = "${@base_get_metadata_git_branch("${OETREE}",None).strip()}" +MLINUX_LAYERS = "${@mlinux_layers(bb,d)}" + +def mlinux_layers(bb, d): + layers = (bb.data.getVar("BBLAYERS", d, 1) or "").split() + layer_revs = "" + + for layer in layers: + branch = base_get_metadata_git_branch(layer, d).strip() + rev = base_get_metadata_git_revision(layer, d) + layer_revs += "%-20s = %s:%s\n" % (os.path.basename(layer), branch, rev) + + return layer_revs -- cgit v1.2.3