public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Henning Schild <henning.schild@siemens.com>
To: Alexander Smirnov <asmirnov@ilbers.de>
Cc: <isar-users@googlegroups.com>, Frank Lenormand <lenormf@gmail.com>
Subject: Re: [PATCH v4] meta-isar: Rework boot files copying
Date: Fri, 20 Oct 2017 18:11:37 +0200	[thread overview]
Message-ID: <20171020181137.19fcbccb@md1em3qc> (raw)
In-Reply-To: <20171019191357.11594-1-asmirnov@ilbers.de>

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 <asmirnov@ilbers.de>:

> 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 <lenormf@gmail.com>
> Signed-off-by: Alexander Smirnov <asmirnov@ilbers.de>
> ---
>  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"


      parent reply	other threads:[~2017-10-20 16:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-17 19:23 [URGENT][PATCH v2 0/2] Correctly determine kernel and initrd versions Alexander Smirnov
2017-10-17 19:23 ` [URGENT][PATCH v2 1/2] meta-isar: Drop hardcoded kernel versions Alexander Smirnov
2017-10-17 19:23 ` [URGENT][PATCH v2 2/2] meta-isar: Rework boot files copying Alexander Smirnov
2017-10-18 14:06 ` [URGENT][PATCH v2 0/2] Correctly determine kernel and initrd versions Henning Schild
2017-10-19 16:00   ` Henning Schild
2017-10-19 16:08     ` Henning Schild
2017-10-19 19:18       ` Alexander Smirnov
2017-10-19 19:13     ` [PATCH v4] meta-isar: Rework boot files copying Alexander Smirnov
2017-10-19 19:39       ` Alexander Smirnov
2017-10-20 16:11       ` Henning Schild [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171020181137.19fcbccb@md1em3qc \
    --to=henning.schild@siemens.com \
    --cc=asmirnov@ilbers.de \
    --cc=isar-users@googlegroups.com \
    --cc=lenormf@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox