mirror of
https://git.yoctoproject.org/poky
synced 2026-04-29 00:32:14 +02:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
6dcd355571
commit
2963cc25af
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
@@ -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 ?= ""
|
||||
|
||||
@@ -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'):
|
||||
|
||||
Reference in New Issue
Block a user