From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6477538949418975232 X-Received: by 10.46.41.200 with SMTP id p69mr204951ljp.37.1508515901313; Fri, 20 Oct 2017 09:11:41 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.46.82.14 with SMTP id g14ls1463869ljb.0.gmail; Fri, 20 Oct 2017 09:11:40 -0700 (PDT) X-Google-Smtp-Source: ABhQp+RdvleWfb7p2ORySwh7UcInQ6vMRvuSPOKRhaSYR4ZZ1Zw7AILyhyIqQG/25uaiiuRwli2l X-Received: by 10.25.31.13 with SMTP id f13mr165210lff.16.1508515900861; Fri, 20 Oct 2017 09:11:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508515900; cv=none; d=google.com; s=arc-20160816; b=YLdkI/KRfXTKlchVc0GGAa7x4K+QlffjIAfqOyqeZZZyVcNsFNiaNrbMzV2CDq85tw j0jy2DwR/wrtH7PbCwQDMbvormoaBpq9MPfXEJ2R/lH4sbEfuazAmTaRhb6MUz13uvAx +anEHd2D2U3uoiEtOQaouesVxLuX3wfsMbxf/fP8cmUExqgWAJVOpmhLbHlgDD3UVrdX 0vYAy5+EeaMwTAu+rRjgWi0B/x36Ecn+hbMoWohnJFM+UpeljpEQQvGWiLB5FSMSdGB5 QuA/8cw2mPtVNpu9gklbfB7J41aCRRino7fgRTyr/5OrBI0KXtA9I3RhOpPcs6C4fphk B8aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:arc-authentication-results; bh=PbKW0vZ28FLi2dKgQFOPfTsnyX9OoqFvIa0psEM6Faw=; b=BIAXCnTaAshyMLoPuONxOZdxVQUIJ3LykkrkZLnhGZS1qU6Qb4S+MqER070dPyPFgJ oJtFvOHs7laqjUetHaNIfwarPDSUGcBo7MSVPK+DmHPUwdE/UsZfMAedThvlawOqSDA9 2ZyhNYTTCjyQeaM/9LvOsQ9z1ZdAUsBrAAuU/5BI2qBPIrVOWExVjFHhZuJHN5/nbElq 5vQXY3fRGFl/u2blxUcHQlLv3kgON/LLgjViWs5ADsjnq26ZF9kB2P/aNTG7531zB2gC Yb2gzZ73PGnuE9LAAXKi5eI/f51baW45cMwqR90FG/N930BjzlSmf5x00QXpmhbbuv/b R3oQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id l14si90257lje.1.2017.10.20.09.11.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 Oct 2017 09:11:40 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail1.siemens.de (mail1.siemens.de [139.23.33.14]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id v9KGBdTa009842 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Oct 2017 18:11:39 +0200 Received: from md1em3qc ([139.25.68.40]) by mail1.siemens.de (8.15.2/8.15.2) with ESMTP id v9KGBdCx023459; Fri, 20 Oct 2017 18:11:39 +0200 Date: Fri, 20 Oct 2017 18:11:37 +0200 From: Henning Schild To: Alexander Smirnov Cc: , Frank Lenormand Subject: Re: [PATCH v4] meta-isar: Rework boot files copying Message-ID: <20171020181137.19fcbccb@md1em3qc> In-Reply-To: <20171019191357.11594-1-asmirnov@ilbers.de> References: <20171019180051.04ac5a52@md1em3qc> <20171019191357.11594-1-asmirnov@ilbers.de> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: my7dSDryG/6T Looks good, i will be out of office for a while and can not test that. But if it passes your tests, i am confident it will work. Thanks, Henning Am Thu, 19 Oct 2017 22:13:57 +0300 schrieb Alexander Smirnov : > 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"