Skip to content

Commit

Permalink
meta-isar: Rework boot files copying
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
alexbluesman committed Oct 17, 2017
1 parent 9bd8f05 commit 6f689d7
Show file tree
Hide file tree
Showing 11 changed files with 27 additions and 37 deletions.
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemuamd64-jessie.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemuamd64-stretch.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemuarm-jessie.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemuarm-stretch.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemuarm-wheezy.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemui386-jessie.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/qemui386-stretch.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 0 additions & 3 deletions meta-isar/conf/multiconfig/rpi-jessie.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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"
8 changes: 0 additions & 8 deletions meta/classes/ext4-img.bbclass
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,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
24 changes: 21 additions & 3 deletions meta/classes/image.bbclass
Original file line number Diff line number Diff line change
@@ -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"
Expand Down Expand Up @@ -76,3 +73,24 @@ 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[stamp-extra-info] = "${DISTRO}-${MACHINE}"
8 changes: 6 additions & 2 deletions scripts/start_vm
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,19 @@ 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")"/..

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"
Expand Down

0 comments on commit 6f689d7

Please sign in to comment.