diff options
author | Christian Ziethén <christian.ziethen@linaro.org> | 2015-07-23 16:32:28 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-25 14:41:43 +0100 |
commit | 2963cc25afb65376ba6a1a6487274143bd67f674 (patch) | |
tree | ae0ed8860e007ba4eba30826d13a836991130933 /meta | |
parent | 6dcd3555712a1e83b519e7912a5ba35a3971ce4f (diff) | |
download | poky-2963cc25afb65376ba6a1a6487274143bd67f674.tar.gz |
image: Support for qcow2
Add support for qcow2 image format. Implemented in the same way as
the previously existing vmdk and vdi solutions.
(From OE-Core rev: c1f9ed400e4b5fe5be4fac86021dea11a7546035)
Signed-off-by: Christian Ziethén <christian.ziethen@linaro.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/boot-directdisk.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/image-vm.bbclass | 12 | ||||
-rw-r--r-- | meta/classes/image.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/image_types.bbclass | 5 | ||||
-rw-r--r-- | 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 e1ec1be534..600e21abcf 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass | |||
@@ -63,7 +63,7 @@ DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}" | |||
63 | SYSLINUX_ROOT ?= "root=/dev/sda2" | 63 | SYSLINUX_ROOT ?= "root=/dev/sda2" |
64 | SYSLINUX_TIMEOUT ?= "10" | 64 | SYSLINUX_TIMEOUT ?= "10" |
65 | 65 | ||
66 | IS_VM = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk" ,"vdi"], "true", "false", d)}' | 66 | IS_VM = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2"], "true", "false", d)}' |
67 | 67 | ||
68 | boot_direct_populate() { | 68 | boot_direct_populate() { |
69 | dest=$1 | 69 | dest=$1 |
diff --git a/meta/classes/image-vm.bbclass b/meta/classes/image-vm.bbclass index fdfd14f780..28519c8af1 100644 --- a/meta/classes/image-vm.bbclass +++ b/meta/classes/image-vm.bbclass | |||
@@ -14,7 +14,8 @@ inherit boot-directdisk | |||
14 | 14 | ||
15 | IMAGE_TYPEDEP_vmdk = "ext3" | 15 | IMAGE_TYPEDEP_vmdk = "ext3" |
16 | IMAGE_TYPEDEP_vdi = "ext3" | 16 | IMAGE_TYPEDEP_vdi = "ext3" |
17 | IMAGE_TYPES_MASKED += "vmdk vdi" | 17 | IMAGE_TYPEDEP_qcow2 = "ext3" |
18 | IMAGE_TYPES_MASKED += "vmdk vdi qcow2" | ||
18 | 19 | ||
19 | create_vmdk_image () { | 20 | create_vmdk_image () { |
20 | qemu-img convert -O vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk | 21 | qemu-img convert -O vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk |
@@ -26,11 +27,18 @@ create_vdi_image () { | |||
26 | ln -sf ${IMAGE_NAME}.vdi ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vdi | 27 | ln -sf ${IMAGE_NAME}.vdi ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vdi |
27 | } | 28 | } |
28 | 29 | ||
30 | create_qcow2_image () { | ||
31 | qemu-img convert -O qcow2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.qcow2 | ||
32 | ln -sf ${IMAGE_NAME}.qcow2 ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.qcow2 | ||
33 | } | ||
34 | |||
29 | python do_vmimg() { | 35 | python do_vmimg() { |
30 | if 'vmdk' in d.getVar('IMAGE_FSTYPES', True): | 36 | if 'vmdk' in d.getVar('IMAGE_FSTYPES', True): |
31 | bb.build.exec_func('create_vmdk_image', d) | 37 | bb.build.exec_func('create_vmdk_image', d) |
32 | if 'vdi' in d.getVar('IMAGE_FSTYPES', True): | 38 | if 'vdi' in d.getVar('IMAGE_FSTYPES', True): |
33 | bb.build.exec_func('create_vdi_image', d) | 39 | bb.build.exec_func('create_vdi_image', d) |
40 | if 'qcow2' in d.getVar('IMAGE_FSTYPES', True): | ||
41 | bb.build.exec_func('create_qcow2_image', d) | ||
34 | } | 42 | } |
35 | 43 | ||
36 | addtask vmimg after do_bootdirectdisk before do_build | 44 | addtask vmimg after do_bootdirectdisk before do_build |
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index e2995e2638..ff2ed0d09a 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass | |||
@@ -132,7 +132,7 @@ def build_live(d): | |||
132 | IMAGE_TYPE_live = "${@build_live(d)}" | 132 | IMAGE_TYPE_live = "${@build_live(d)}" |
133 | inherit ${IMAGE_TYPE_live} | 133 | inherit ${IMAGE_TYPE_live} |
134 | 134 | ||
135 | IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi"], "image-vm", "", d)}' | 135 | IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2"], "image-vm", "", d)}' |
136 | inherit ${IMAGE_TYPE_vm} | 136 | inherit ${IMAGE_TYPE_vm} |
137 | 137 | ||
138 | python () { | 138 | python () { |
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index 588a474620..cc789fc27f 100644 --- a/meta/classes/image_types.bbclass +++ b/meta/classes/image_types.bbclass | |||
@@ -13,7 +13,7 @@ def imagetypes_getdepends(d): | |||
13 | deps = [] | 13 | deps = [] |
14 | ctypes = d.getVar('COMPRESSIONTYPES', True).split() | 14 | ctypes = d.getVar('COMPRESSIONTYPES', True).split() |
15 | for type in (d.getVar('IMAGE_FSTYPES', True) or "").split(): | 15 | for type in (d.getVar('IMAGE_FSTYPES', True) or "").split(): |
16 | if type in ["vmdk", "vdi", "live", "iso", "hddimg"]: | 16 | if type in ["vmdk", "vdi", "qcow2", "live", "iso", "hddimg"]: |
17 | type = "ext3" | 17 | type = "ext3" |
18 | basetype = type | 18 | basetype = type |
19 | for ctype in ctypes: | 19 | for ctype in ctypes: |
@@ -187,6 +187,7 @@ IMAGE_TYPES = " \ | |||
187 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ | 187 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ |
188 | vmdk \ | 188 | vmdk \ |
189 | vdi \ | 189 | vdi \ |
190 | qcow2 \ | ||
190 | elf \ | 191 | elf \ |
191 | " | 192 | " |
192 | 193 | ||
@@ -213,5 +214,5 @@ DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso" | |||
213 | IMAGE_EXTENSION_live = "hddimg iso" | 214 | IMAGE_EXTENSION_live = "hddimg iso" |
214 | 215 | ||
215 | # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, | 216 | # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, |
216 | # images that will not be built at do_rootfs time: vmdk, vdi, hddimg, iso, etc. | 217 | # images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hddimg, iso, etc. |
217 | IMAGE_TYPES_MASKED ?= "" | 218 | IMAGE_TYPES_MASKED ?= "" |
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index 2855941a7b..6ad620b0a4 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass | |||
@@ -835,6 +835,10 @@ def check_sanity_everybuild(status, d): | |||
835 | if 'vdi' in d.getVar('IMAGE_FSTYPES', True) and 'live' in d.getVar('IMAGE_FSTYPES', True): | 835 | if 'vdi' in d.getVar('IMAGE_FSTYPES', True) and 'live' in d.getVar('IMAGE_FSTYPES', True): |
836 | status.addresult("Error, IMAGE_FSTYPES vdi and live can't be built together\n") | 836 | status.addresult("Error, IMAGE_FSTYPES vdi and live can't be built together\n") |
837 | 837 | ||
838 | # Check qcow2 and live can't be built together. | ||
839 | if 'qcow2' in d.getVar('IMAGE_FSTYPES', True) and 'live' in d.getVar('IMAGE_FSTYPES', True): | ||
840 | status.addresult("Error, IMAGE_FSTYPES qcow2 and live can't be built together\n") | ||
841 | |||
838 | # Check /bin/sh links to dash or bash | 842 | # Check /bin/sh links to dash or bash |
839 | real_sh = os.path.realpath('/bin/sh') | 843 | real_sh = os.path.realpath('/bin/sh') |
840 | if not real_sh.endswith('/dash') and not real_sh.endswith('/bash'): | 844 | if not real_sh.endswith('/dash') and not real_sh.endswith('/bash'): |