From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6477538949418975232 X-Received: by 10.25.181.198 with SMTP id g67mr444149lfk.8.1508321634437; Wed, 18 Oct 2017 03:13:54 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 10.46.99.220 with SMTP id s89ls556493lje.14.gmail; Wed, 18 Oct 2017 03:13:53 -0700 (PDT) X-Google-Smtp-Source: ABhQp+R55WaZqC1mT+jBwlufBYkNW8xqWDrkDRxMuqu7R0SuNavqaEvZukyerTfut53BgtyWs6Q5 X-Received: by 10.25.193.214 with SMTP id r205mr442537lff.21.1508321633472; Wed, 18 Oct 2017 03:13:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508321633; cv=none; d=google.com; s=arc-20160816; b=KDJ2oephHE/LJfprK71Q4+v261eaNVz9lM86NOLbrmOQKNYPbj+8r6WjTNyoJpyOIE fR+VObFllwVheTLlldvyoFDKWh1Q6UTsWTb9ie/ASH6wUsoG/AZnbv361Yhm581lYYkp YF+q0FgnDtaYvPQ96qCq6pGJ3Q4ETcKZpTzpYvWA20rPIefwZJM1cQv9XS7MKJJKnq83 fo89yLisM6c2cYp3TfqMk4FAsW8FeASqeFeG5215O8acLJ/U6yUQfJWvwWccDV2rU6gs tYJza7QvZDk11dmPbVzo2KjSvrseKdROy48pPt7rrJnO1e2S/fcSY+kc7hk/yvEEzYM1 hKgg== 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=BiX+bixr2O6Qaf7bH0jXkrfu0OnziaSIUhsTCdVw02s=; b=JCEvYf2DoGpMN/sWRacOhCaqie8KurDhDPdRWqUYlSPKxBZNk0lq7+Kp2BbajVu9SK Y9n+bpRy+qbCe03K2RhqB/iRzK2DaHA+4IgvJtzN99rCm+2vLG1ynyFRF9PeRwvzpVKD BZ3r5s3mtFvTkSxlJlBX715wW8a2DgJiSaSeuQWGvzaBKttUtwPPyf2gazvd36o+DV4K Nsf2FVaSlEjEdPxYX5hrPRZv81lQhetGPUPnvHBchnPnzUclhFmc4Bb+I+cA8nU7/gzj C6L2CS9aAFLuTyZcicSyqQWauL2TgJCHAFx8pDSTkttHTfj+y8GMsXHs7BW9NwuxgzTz gqfg== 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 l14si604176lje.1.2017.10.18.03.13.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Oct 2017 03:13:53 -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 v9IADX3K025655 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 18 Oct 2017 12:13:44 +0200 From: Alexander Smirnov To: isar-users@googlegroups.com Cc: Alexander Smirnov , Frank Lenormand Subject: [[URGENT][PATCH v3 2/2] meta-isar: Rework boot files copying Date: Wed, 18 Oct 2017 13:13:25 +0300 Message-Id: <20171018101325.12358-3-asmirnov@ilbers.de> X-Mailer: git-send-email 2.9.4 In-Reply-To: <20171018101325.12358-1-asmirnov@ilbers.de> References: <20171018101325.12358-1-asmirnov@ilbers.de> X-TUID: e6I7q9IqDT3V 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 | 25 ++++++++++++++++++++--- scripts/start_vm | 8 ++++++-- 11 files changed, 30 insertions(+), 41 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 9ef8bee..2284655 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -1,9 +1,6 @@ # 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" @@ -76,3 +73,25 @@ do_populate() { addtask populate before do_build do_populate[deptask] = "do_deploy_deb" + +do_copy_boot_files() { + if [ -z "${KERNEL_IMAGE}" ] && [ -h "${IMAGE_ROOTFS}/vmlinuz" ]; then + KERNEL_IMAGE=$(readlink ${IMAGE_ROOTFS}/vmlinuz) + fi + + if [ -n "${KERNEL_IMAGE}" ]; then + cp ${IMAGE_ROOTFS}/${KERNEL_IMAGE} ${DEPLOY_DIR_IMAGE} + fi + + if [ -z "${INITRD_IMAGE}" ] && [ -h "${IMAGE_ROOTFS}/initrd.img" ]; then + INITRD_IMAGE=$(readlink ${IMAGE_ROOTFS}/initrd.img) + fi + + if [ -n "${INITRD_IMAGE}" ]; then + cp ${IMAGE_ROOTFS}/${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..c8605b0 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-jessie:isar-image-base | grep WORKDIR=) +readonly KERNEL_IMAGE=$(basename $(readlink $WORKDIR/rootfs/vmlinuz)) +readonly INITRD_IMAGE=$(basename $(readlink $WORKDIR/rootfs/initrd.img)) 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.9.4