From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6477538949418975232 X-Received: by 10.28.63.130 with SMTP id m124mr322748wma.20.1508440468764; Thu, 19 Oct 2017 12:14:28 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.28.54.141 with SMTP id y13ls10111wmh.6.canary-gmail; Thu, 19 Oct 2017 12:14:28 -0700 (PDT) X-Google-Smtp-Source: ABhQp+Rhpt4rd5jy5CPX8S+vC55ppQ3PY0uQtC/VVoR6mSP29jVdQhJ1efpGBnwIcrC1oj63aeIk X-Received: by 10.28.111.213 with SMTP id c82mr320127wmi.25.1508440468403; Thu, 19 Oct 2017 12:14:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508440468; cv=none; d=google.com; s=arc-20160816; b=kQJoYtBTkUjV2HeqDKBm2pMsLKPOy409D3B1KnywTSZAlz0RZ91xqd/RT6WHA8ZHUe kUbz5h37h0+maBZVYn1pZAQrrjeyWjCu4v0kvSs+QZPl7ApF+K9QYnw29G0Nkz9hpUeS jUcEJ1PiR+HgZn0rg5ibiDf6D7oF2Aoa01O11oZMy7OSaPQFiFsFMK9VRQ/KDt5Bxo2p /ZFWswUaPJQd4A/AMiKJdXTmiBKbMEPk/ToHb7nZQOsmU8JgJBV9a3zSZrRapDdac7AS X5x4To0mtG0zfveLOGwdvJ5J5SzUOeC6M/TPIBLtFhG2ddWNF5H+4FTj8++VbAr3mxpf fknA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=q6J8hqj8HcU3PIfElPEH9A8pykiScaOpOqpoh/6/GTY=; b=Pt73Bn5/W+3C1PpO0zg2RsyZbT2N58UkOHPd9FG8UoLR6xjZWAeuH2vdBc9zdYQejy eo6QqaO/bdPoB8bndXxk1i4W6oolCOPuIYPpWjHR/knXc0CFtvSY0/hx323EqGBU9EWS +JMoX5XF5ZvQRnzjhnKPRUoE+szh4w1B+dkxxxXbat64Dhw8QAeBEo3Aaaff6SRwq/Tt bzRq/W/U3O/y9d4OCgS16Yf1J3Ln1p0tyvuZUxASCUmoEJvDgDetgp5VhktSyFcfjvsU kgdwj1tNCqRcNg+vMflKjgnsrU6Yi+Tc/JIEBcfXtujb+a0nm30bpo3/gABhUFAVkLaE pvcw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Return-Path: Received: from aqmola.ilbers.de (aqmola.ilbers.de. [85.214.62.211]) by gmr-mx.google.com with ESMTPS id p70si137904wma.1.2017.10.19.12.14.28 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Oct 2017 12:14:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) client-ip=85.214.62.211; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: best guess record for domain of asmirnov@ilbers.de designates 85.214.62.211 as permitted sender) smtp.mailfrom=asmirnov@ilbers.de Received: from localhost.localdomain ([188.227.110.165]) (authenticated bits=0) by aqmola.ilbers.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id v9JJE501028083 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 19 Oct 2017 21:14:16 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov , Frank Lenormand Subject: [PATCH v4] meta-isar: Rework boot files copying Date: Thu, 19 Oct 2017 22:13:57 +0300 Message-Id: <20171019191357.11594-1-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20171019180051.04ac5a52@md1em3qc> References: <20171019180051.04ac5a52@md1em3qc> X-TUID: K5YwR366f9y0 8<-- Changes since v3: - Restored KERNEL_IMAGE and INITRD_IMAGE variables to support wic images creation. 8<-- Currently there are two variables that contains hardcoded filenames with versions for kernel and initrd images. Isar uses them to copy these files to deploy directory. Moreover this is performed in ext4 class, what is logically wrong. This patch implements a new way which doesn't rely on hardcoded versioned filenames. Also it drops this copying from ext4 class. Signed-off-by: Frank Lenormand Signed-off-by: Alexander Smirnov --- meta-isar/conf/multiconfig/qemuamd64-jessie.conf | 3 --- meta-isar/conf/multiconfig/qemuamd64-stretch.conf | 3 --- meta-isar/conf/multiconfig/qemuarm-jessie.conf | 3 --- meta-isar/conf/multiconfig/qemuarm-stretch.conf | 3 --- meta-isar/conf/multiconfig/qemuarm-wheezy.conf | 3 --- meta-isar/conf/multiconfig/qemui386-jessie.conf | 3 --- meta-isar/conf/multiconfig/qemui386-stretch.conf | 3 --- meta-isar/conf/multiconfig/rpi-jessie.conf | 3 --- meta/classes/ext4-img.bbclass | 14 ++-------- meta/classes/image.bbclass | 31 ++++++++++++++++++++--- scripts/start_vm | 8 ++++-- 11 files changed, 35 insertions(+), 42 deletions(-) diff --git a/meta-isar/conf/multiconfig/qemuamd64-jessie.conf b/meta-isar/conf/multiconfig/qemuamd64-jessie.conf index d9473f3..51d39b6 100644 --- a/meta-isar/conf/multiconfig/qemuamd64-jessie.conf +++ b/meta-isar/conf/multiconfig/qemuamd64-jessie.conf @@ -8,9 +8,6 @@ DISTRO_ARCH ?= "amd64" IMAGE_PREINSTALL += "linux-image-amd64" -KERNEL_IMAGE ?= "vmlinuz-3.16.0-4-amd64" -INITRD_IMAGE ?= "initrd.img-3.16.0-4-amd64" - ROOTFS_DEV ?= "sda" QEMU_ARCH ?= "x86_64" diff --git a/meta-isar/conf/multiconfig/qemuamd64-stretch.conf b/meta-isar/conf/multiconfig/qemuamd64-stretch.conf index 5ac25d9..c59876a 100644 --- a/meta-isar/conf/multiconfig/qemuamd64-stretch.conf +++ b/meta-isar/conf/multiconfig/qemuamd64-stretch.conf @@ -11,9 +11,6 @@ IMAGE_PREINSTALL += " \ linux-image-amd64 \ " -KERNEL_IMAGE ?= "vmlinuz-4.9.0-4-amd64" -INITRD_IMAGE ?= "initrd.img-4.9.0-4-amd64" - ROOTFS_DEV ?= "sda" QEMU_ARCH ?= "x86_64" diff --git a/meta-isar/conf/multiconfig/qemuarm-jessie.conf b/meta-isar/conf/multiconfig/qemuarm-jessie.conf index 3dd33f2..ed84c6c 100644 --- a/meta-isar/conf/multiconfig/qemuarm-jessie.conf +++ b/meta-isar/conf/multiconfig/qemuarm-jessie.conf @@ -15,9 +15,6 @@ DISTRO_ARCH ?= "armhf" IMAGE_PREINSTALL += "linux-image-armmp" -KERNEL_IMAGE ?= "vmlinuz-3.16.0-4-armmp" -INITRD_IMAGE ?= "initrd.img-3.16.0-4-armmp" - ROOTFS_DEV ?= "vda" QEMU_ARCH ?= "arm" diff --git a/meta-isar/conf/multiconfig/qemuarm-stretch.conf b/meta-isar/conf/multiconfig/qemuarm-stretch.conf index f3636f6..1cce97a 100644 --- a/meta-isar/conf/multiconfig/qemuarm-stretch.conf +++ b/meta-isar/conf/multiconfig/qemuarm-stretch.conf @@ -11,9 +11,6 @@ IMAGE_PREINSTALL += " \ linux-image-armmp \ " -KERNEL_IMAGE ?= "vmlinuz-4.9.0-4-armmp" -INITRD_IMAGE ?= "initrd.img-4.9.0-4-armmp" - ROOTFS_DEV ?= "vda" QEMU_ARCH ?= "arm" diff --git a/meta-isar/conf/multiconfig/qemuarm-wheezy.conf b/meta-isar/conf/multiconfig/qemuarm-wheezy.conf index 3a23692..38ea191 100644 --- a/meta-isar/conf/multiconfig/qemuarm-wheezy.conf +++ b/meta-isar/conf/multiconfig/qemuarm-wheezy.conf @@ -15,9 +15,6 @@ DISTRO_ARCH ?= "armhf" IMAGE_PREINSTALL += "linux-image-vexpress" -KERNEL_IMAGE ?= "vmlinuz-3.2.0-4-vexpress" -INITRD_IMAGE ?= "initrd.img-3.2.0-4-vexpress" - ROOTFS_DEV ?= "mmcblk0" QEMU_ARCH ?= "arm" diff --git a/meta-isar/conf/multiconfig/qemui386-jessie.conf b/meta-isar/conf/multiconfig/qemui386-jessie.conf index 55cb172..d589661 100644 --- a/meta-isar/conf/multiconfig/qemui386-jessie.conf +++ b/meta-isar/conf/multiconfig/qemui386-jessie.conf @@ -8,9 +8,6 @@ DISTRO_ARCH ?= "i386" IMAGE_PREINSTALL += "linux-image-686-pae" -KERNEL_IMAGE ?= "vmlinuz-3.16.0-4-686-pae" -INITRD_IMAGE ?= "initrd.img-3.16.0-4-686-pae" - ROOTFS_DEV ?= "sda" QEMU_ARCH ?= "i386" diff --git a/meta-isar/conf/multiconfig/qemui386-stretch.conf b/meta-isar/conf/multiconfig/qemui386-stretch.conf index c0285b4..40239e4 100644 --- a/meta-isar/conf/multiconfig/qemui386-stretch.conf +++ b/meta-isar/conf/multiconfig/qemui386-stretch.conf @@ -11,9 +11,6 @@ IMAGE_PREINSTALL += " \ linux-image-686-pae \ " -KERNEL_IMAGE ?= "vmlinuz-4.9.0-4-686-pae" -INITRD_IMAGE ?= "initrd.img-4.9.0-4-686-pae" - ROOTFS_DEV ?= "sda" QEMU_ARCH ?= "i386" diff --git a/meta-isar/conf/multiconfig/rpi-jessie.conf b/meta-isar/conf/multiconfig/rpi-jessie.conf index 82b38d2..d1dd9d9 100644 --- a/meta-isar/conf/multiconfig/rpi-jessie.conf +++ b/meta-isar/conf/multiconfig/rpi-jessie.conf @@ -31,7 +31,4 @@ IMAGE_PREINSTALL += " \ vim \ " -KERNEL_IMAGE ?= "vmlinuz-4.9.0-3-rpi" -INITRD_IMAGE ?= "initrd.img-4.9.0-3-rpi" - ROOTFS_DEV ?= "mmcblk0p2" diff --git a/meta/classes/ext4-img.bbclass b/meta/classes/ext4-img.bbclass index 9fa9aa5..18a74ca 100644 --- a/meta/classes/ext4-img.bbclass +++ b/meta/classes/ext4-img.bbclass @@ -1,5 +1,5 @@ # This software is a part of ISAR. -# Copyright (C) 2015-2016 ilbers GmbH +# Copyright (C) 2015-2017 ilbers GmbH # Extra space for rootfs in MB ROOTFS_EXTRA ?= "64" @@ -10,8 +10,6 @@ do_ext4_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" # Generate ext4 filesystem image do_ext4_image() { - mkdir -p ${DEPLOY_DIR_IMAGE} - rm -f ${EXT4_IMAGE_FILE} ROOTFS_SIZE=`sudo du -sm ${IMAGE_ROOTFS} | awk '{print $1 + ${ROOTFS_EXTRA};}'` @@ -24,14 +22,6 @@ do_ext4_image() { sudo cp -r ${IMAGE_ROOTFS}/* ${WORKDIR}/mnt sudo umount ${WORKDIR}/mnt rm -r ${WORKDIR}/mnt - - if [ -n "${KERNEL_IMAGE}" ]; then - cp ${IMAGE_ROOTFS}/boot/${KERNEL_IMAGE} ${DEPLOY_DIR_IMAGE} - fi - - if [ -n "${INITRD_IMAGE}" ]; then - cp ${IMAGE_ROOTFS}/boot/${INITRD_IMAGE} ${DEPLOY_DIR_IMAGE} - fi } -addtask ext4_image before do_build after do_rootfs +addtask ext4_image before do_build after do_copy_boot_files diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 3049657..e05c490 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -1,15 +1,22 @@ # This software is a part of ISAR. # Copyright (C) 2015-2017 ilbers GmbH -KERNEL_IMAGE ?= "" -INITRD_IMAGE ?= "" - IMAGE_INSTALL ?= "" IMAGE_TYPE ?= "ext4-img" IMAGE_ROOTFS = "${WORKDIR}/rootfs" -inherit ${IMAGE_TYPE} +def get_image_name(d, name_link): + S = d.getVar("IMAGE_ROOTFS", True) + path_link = os.path.join(S, name_link) + if os.path.lexists(path_link): + return os.path.basename(os.path.realpath(path_link)) + return "" + +# These variables are used by wic and start_vm +KERNEL_IMAGE ?= "${@get_image_name(d, 'vmlinuz')}" +INITRD_IMAGE ?= "${@get_image_name(d, 'initrd.img')}" +inherit ${IMAGE_TYPE} call_reprepro() { for i in $(seq 1 ${REPREPRO_LOCK_ATTEMPTS}); do # According to `sh` manual page, shell exit statuses fall between @@ -76,3 +83,19 @@ do_populate() { addtask populate before do_build after do_unpack do_populate[deptask] = "do_deploy_deb" + +do_copy_boot_files() { + KERNEL_IMAGE=${@get_image_name(d, 'vmlinuz')} + if [ -n "${KERNEL_IMAGE}" ]; then + cp -f ${IMAGE_ROOTFS}/boot/${KERNEL_IMAGE} ${DEPLOY_DIR_IMAGE} + fi + + INITRD_IMAGE=${@get_image_name(d, 'initrd.img')} + if [ -n "${INITRD_IMAGE}" ]; then + cp -f ${IMAGE_ROOTFS}/boot/${INITRD_IMAGE} ${DEPLOY_DIR_IMAGE} + fi +} + +addtask copy_boot_files before do_build after do_rootfs +do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}" +do_copy_boot_files[stamp-extra-info] = "${DISTRO}-${MACHINE}" diff --git a/scripts/start_vm b/scripts/start_vm index 400484a..81e4dc9 100755 --- a/scripts/start_vm +++ b/scripts/start_vm @@ -114,6 +114,11 @@ do done readonly IMAGE_DIR=$BUILD_DIR/tmp/deploy/images +readonly ROOTFS_IMAGE=isar-image-base-debian-$DISTRO-qemu$ARCH.ext4.img + +eval $(bitbake -e multiconfig:qemu$ARCH-$DISTRO:isar-image-base | grep "^WORKDIR=") +eval $(bitbake -e multiconfig:qemu$ARCH-$DISTRO:isar-image-base | grep "^KERNEL_IMAGE=") +eval $(bitbake -e multiconfig:qemu$ARCH-$DISTRO:isar-image-base | grep "^INITRD_IMAGE=") readonly ISARROOT="$(dirname "$0")"/.. @@ -121,8 +126,7 @@ readonly MACHINE_CONF=$ISARROOT/meta-isar/conf/machine/qemu$ARCH.conf eval "$(egrep 'MACHINE_SERIAL' $MACHINE_CONF |bb2sh)" readonly CONFIG_CONF=$ISARROOT/meta-isar/conf/multiconfig/qemu$ARCH-$DISTRO.conf -eval "$(egrep '(KERNEL|INITRD)_IMAGE|ROOTFS_DEV|QEMU_' $CONFIG_CONF |bb2sh)" -readonly ROOTFS_IMAGE=isar-image-base-debian-$DISTRO-qemu$ARCH.ext4.img +eval "$(egrep 'ROOTFS_DEV|QEMU_' $CONFIG_CONF |bb2sh)" QCPU= [ -n "$QEMU_CPU" ] && QCPU="-cpu $QEMU_CPU" -- 2.1.4