From: "Christian Ziethén" <christian.ziethen@linaro.org>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 1/2] image: Support for qcow2
Date: Mon, 17 Aug 2015 12:54:28 +0200 [thread overview]
Message-ID: <20150817105427.GA28145@gmail.com> (raw)
In-Reply-To: <1437661949-9295-1-git-send-email-christian.ziethen@linaro.org>
ping
On 2015-07-23 16:32, Christian Ziethén wrote:
> Add support for qcow2 image format. Implemented in the same way as
> the previously existing vmdk and vdi solutions.
>
> Signed-off-by: Christian Ziethén <christian.ziethen@linaro.org>
> ---
> meta/classes/boot-directdisk.bbclass | 2 +-
> meta/classes/image-vm.bbclass | 12 ++++++++++--
> meta/classes/image.bbclass | 2 +-
> meta/classes/image_types.bbclass | 5 +++--
> meta/classes/sanity.bbclass | 4 ++++
> 5 files changed, 19 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass
> index c576523..d256fff 100644
> --- a/meta/classes/boot-directdisk.bbclass
> +++ b/meta/classes/boot-directdisk.bbclass
> @@ -63,7 +63,7 @@ DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
> SYSLINUX_ROOT ?= "root=/dev/sda2"
> SYSLINUX_TIMEOUT ?= "10"
>
> -IS_VM = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk" ,"vdi"], "true", "false", d)}'
> +IS_VM = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2"], "true", "false", d)}'
>
> boot_direct_populate() {
> dest=$1
> diff --git a/meta/classes/image-vm.bbclass b/meta/classes/image-vm.bbclass
> index fdfd14f..28519c8 100644
> --- a/meta/classes/image-vm.bbclass
> +++ b/meta/classes/image-vm.bbclass
> @@ -14,7 +14,8 @@ inherit boot-directdisk
>
> IMAGE_TYPEDEP_vmdk = "ext3"
> IMAGE_TYPEDEP_vdi = "ext3"
> -IMAGE_TYPES_MASKED += "vmdk vdi"
> +IMAGE_TYPEDEP_qcow2 = "ext3"
> +IMAGE_TYPES_MASKED += "vmdk vdi qcow2"
>
> create_vmdk_image () {
> qemu-img convert -O vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk
> @@ -26,11 +27,18 @@ create_vdi_image () {
> ln -sf ${IMAGE_NAME}.vdi ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vdi
> }
>
> +create_qcow2_image () {
> + qemu-img convert -O qcow2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.qcow2
> + ln -sf ${IMAGE_NAME}.qcow2 ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.qcow2
> +}
> +
> python do_vmimg() {
> if 'vmdk' in d.getVar('IMAGE_FSTYPES', True):
> bb.build.exec_func('create_vmdk_image', d)
> if 'vdi' in d.getVar('IMAGE_FSTYPES', True):
> - bb.build.exec_func('create_vdi_image', d)
> + bb.build.exec_func('create_vdi_image', d)
> + if 'qcow2' in d.getVar('IMAGE_FSTYPES', True):
> + bb.build.exec_func('create_qcow2_image', d)
> }
>
> addtask vmimg after do_bootdirectdisk before do_build
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index e2995e2..ff2ed0d 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -132,7 +132,7 @@ def build_live(d):
> IMAGE_TYPE_live = "${@build_live(d)}"
> inherit ${IMAGE_TYPE_live}
>
> -IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi"], "image-vm", "", d)}'
> +IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2"], "image-vm", "", d)}'
> inherit ${IMAGE_TYPE_vm}
>
> python () {
> diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
> index 588a474..cc789fc 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -13,7 +13,7 @@ def imagetypes_getdepends(d):
> deps = []
> ctypes = d.getVar('COMPRESSIONTYPES', True).split()
> for type in (d.getVar('IMAGE_FSTYPES', True) or "").split():
> - if type in ["vmdk", "vdi", "live", "iso", "hddimg"]:
> + if type in ["vmdk", "vdi", "qcow2", "live", "iso", "hddimg"]:
> type = "ext3"
> basetype = type
> for ctype in ctypes:
> @@ -187,6 +187,7 @@ IMAGE_TYPES = " \
> cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
> vmdk \
> vdi \
> + qcow2 \
> elf \
> "
>
> @@ -213,5 +214,5 @@ DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso"
> IMAGE_EXTENSION_live = "hddimg iso"
>
> # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES,
> -# images that will not be built at do_rootfs time: vmdk, vdi, hddimg, iso, etc.
> +# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hddimg, iso, etc.
> IMAGE_TYPES_MASKED ?= ""
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 2855941..6ad620b 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -835,6 +835,10 @@ def check_sanity_everybuild(status, d):
> if 'vdi' in d.getVar('IMAGE_FSTYPES', True) and 'live' in d.getVar('IMAGE_FSTYPES', True):
> status.addresult("Error, IMAGE_FSTYPES vdi and live can't be built together\n")
>
> + # Check qcow2 and live can't be built together.
> + if 'qcow2' in d.getVar('IMAGE_FSTYPES', True) and 'live' in d.getVar('IMAGE_FSTYPES', True):
> + status.addresult("Error, IMAGE_FSTYPES qcow2 and live can't be built together\n")
> +
> # Check /bin/sh links to dash or bash
> real_sh = os.path.realpath('/bin/sh')
> if not real_sh.endswith('/dash') and not real_sh.endswith('/bash'):
> --
> 2.1.4
>
prev parent reply other threads:[~2015-08-17 10:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-23 14:32 [PATCH 1/2] image: Support for qcow2 Christian Ziethén
2015-07-23 14:32 ` [PATCH 2/2] boot-directdisk: Make kernel image inclusion conditional Christian Ziethén
2015-08-17 10:55 ` Christian Ziethén
2015-08-17 10:54 ` Christian Ziethén [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=20150817105427.GA28145@gmail.com \
--to=christian.ziethen@linaro.org \
--cc=openembedded-core@lists.openembedded.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.