diff options
author | Juro Bystricky <juro.bystricky@intel.com> | 2015-06-03 11:07:23 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-06-11 23:59:13 +0100 |
commit | a13c51e751ee76c990fe83f83544e448c6cf543d (patch) | |
tree | 0612be3f76df8f4fe2cc2e5ff48bec176bc05469 /meta/classes | |
parent | d59d876f447c961149763e585c012ac2f0f7b788 (diff) | |
download | poky-a13c51e751ee76c990fe83f83544e448c6cf543d.tar.gz |
image: Support for VDI
Added support for VirtualBox VDI format. The support was
implemented by merging with the already existing VMDK support
for VM player by creating a new class image-vm.bbclass.
This class replaces the previous VMDK only image-vmdk.class.
(From OE-Core rev: 0a3e8eb9f592c3f1edd2c7521855f7406541651a)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/image-vm.bbclass | 38 | ||||
-rw-r--r-- | meta/classes/image-vmdk.bbclass | 35 | ||||
-rw-r--r-- | meta/classes/image.bbclass | 6 | ||||
-rw-r--r-- | meta/classes/image_types.bbclass | 5 |
4 files changed, 44 insertions, 40 deletions
diff --git a/meta/classes/image-vm.bbclass b/meta/classes/image-vm.bbclass new file mode 100644 index 0000000000..fdfd14f780 --- /dev/null +++ b/meta/classes/image-vm.bbclass | |||
@@ -0,0 +1,38 @@ | |||
1 | |||
2 | SYSLINUX_ROOT ?= "root=/dev/sda2" | ||
3 | SYSLINUX_PROMPT ?= "0" | ||
4 | SYSLINUX_TIMEOUT ?= "10" | ||
5 | SYSLINUX_LABELS = "boot" | ||
6 | LABELS_append = " ${SYSLINUX_LABELS} " | ||
7 | |||
8 | # need to define the dependency and the ROOTFS for directdisk | ||
9 | do_bootdirectdisk[depends] += "${PN}:do_rootfs" | ||
10 | ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3" | ||
11 | |||
12 | # creating VM images relies on having a hddimg so ensure we inherit it here. | ||
13 | inherit boot-directdisk | ||
14 | |||
15 | IMAGE_TYPEDEP_vmdk = "ext3" | ||
16 | IMAGE_TYPEDEP_vdi = "ext3" | ||
17 | IMAGE_TYPES_MASKED += "vmdk vdi" | ||
18 | |||
19 | create_vmdk_image () { | ||
20 | qemu-img convert -O vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk | ||
21 | ln -sf ${IMAGE_NAME}.vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vmdk | ||
22 | } | ||
23 | |||
24 | create_vdi_image () { | ||
25 | qemu-img convert -O vdi ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vdi | ||
26 | ln -sf ${IMAGE_NAME}.vdi ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vdi | ||
27 | } | ||
28 | |||
29 | python do_vmimg() { | ||
30 | if 'vmdk' in d.getVar('IMAGE_FSTYPES', True): | ||
31 | bb.build.exec_func('create_vmdk_image', d) | ||
32 | if 'vdi' in d.getVar('IMAGE_FSTYPES', True): | ||
33 | bb.build.exec_func('create_vdi_image', d) | ||
34 | } | ||
35 | |||
36 | addtask vmimg after do_bootdirectdisk before do_build | ||
37 | do_vmimg[depends] += "qemu-native:do_populate_sysroot" | ||
38 | |||
diff --git a/meta/classes/image-vmdk.bbclass b/meta/classes/image-vmdk.bbclass deleted file mode 100644 index 77b7facd41..0000000000 --- a/meta/classes/image-vmdk.bbclass +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | |||
2 | #NOISO = "1" | ||
3 | |||
4 | SYSLINUX_ROOT ?= "root=/dev/sda2" | ||
5 | SYSLINUX_PROMPT ?= "0" | ||
6 | SYSLINUX_TIMEOUT ?= "10" | ||
7 | SYSLINUX_LABELS = "boot" | ||
8 | LABELS_append = " ${SYSLINUX_LABELS} " | ||
9 | |||
10 | # need to define the dependency and the ROOTFS for directdisk | ||
11 | do_bootdirectdisk[depends] += "${PN}:do_rootfs" | ||
12 | ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3" | ||
13 | |||
14 | # creating VMDK relies on having a live hddimg so ensure we | ||
15 | # inherit it here. | ||
16 | #inherit image-live | ||
17 | inherit boot-directdisk | ||
18 | |||
19 | IMAGE_TYPEDEP_vmdk = "ext3" | ||
20 | IMAGE_TYPES_MASKED += "vmdk" | ||
21 | |||
22 | create_vmdk_image () { | ||
23 | qemu-img convert -O vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk | ||
24 | ln -sf ${IMAGE_NAME}.vmdk ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.vmdk | ||
25 | } | ||
26 | |||
27 | python do_vmdkimg() { | ||
28 | bb.build.exec_func('create_vmdk_image', d) | ||
29 | } | ||
30 | |||
31 | #addtask vmdkimg after do_bootimg before do_build | ||
32 | addtask vmdkimg after do_bootdirectdisk before do_build | ||
33 | |||
34 | do_vmdkimg[depends] += "qemu-native:do_populate_sysroot" | ||
35 | |||
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 58b4add8fa..64ae2cb92b 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass | |||
@@ -130,10 +130,10 @@ def build_live(d): | |||
130 | return "image-live" | 130 | return "image-live" |
131 | 131 | ||
132 | IMAGE_TYPE_live = "${@build_live(d)}" | 132 | IMAGE_TYPE_live = "${@build_live(d)}" |
133 | |||
134 | inherit ${IMAGE_TYPE_live} | 133 | inherit ${IMAGE_TYPE_live} |
135 | IMAGE_TYPE_vmdk = '${@bb.utils.contains("IMAGE_FSTYPES", "vmdk", "image-vmdk", "", d)}' | 134 | |
136 | inherit ${IMAGE_TYPE_vmdk} | 135 | IMAGE_TYPE_vm = '${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi"], "image-vm", "", d)}' |
136 | inherit ${IMAGE_TYPE_vm} | ||
137 | 137 | ||
138 | python () { | 138 | python () { |
139 | deps = " " + imagetypes_getdepends(d) | 139 | deps = " " + imagetypes_getdepends(d) |
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index 72c7337b6b..d86d108c47 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", "live", "iso", "hddimg"]: | 16 | if type in ["vmdk", "vdi", "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: |
@@ -155,6 +155,7 @@ IMAGE_TYPES = " \ | |||
155 | tar tar.gz tar.bz2 tar.xz tar.lz4 \ | 155 | tar tar.gz tar.bz2 tar.xz tar.lz4 \ |
156 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ | 156 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ |
157 | vmdk \ | 157 | vmdk \ |
158 | vdi \ | ||
158 | elf \ | 159 | elf \ |
159 | " | 160 | " |
160 | 161 | ||
@@ -181,5 +182,5 @@ DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso" | |||
181 | IMAGE_EXTENSION_live = "hddimg iso" | 182 | IMAGE_EXTENSION_live = "hddimg iso" |
182 | 183 | ||
183 | # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, | 184 | # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, |
184 | # images that will not be built at do_rootfs time: vmdk, hddimg, iso, etc. | 185 | # images that will not be built at do_rootfs time: vmdk, vdi, hddimg, iso, etc. |
185 | IMAGE_TYPES_MASKED ?= "" | 186 | IMAGE_TYPES_MASKED ?= "" |