[OE-core] [RFC-WIP 1/3] classes/image*: Revamp creation of live images
Saul Wold
sgw at linux.intel.com
Tue Jul 26 08:24:08 UTC 2011
This creates a live image as an IMAGE_FSTYPES, thus removing the
need to have additional -live.bb recipes. To create a live image
one just needs to add live to the IMAGE_FSTYPES list
Signed-off-by: Saul Wold <sgw at linux.intel.com>
---
.../{bootimg.bbclass => image-live.bbclass} | 11 +++++++++++
meta/classes/image.bbclass | 3 +++
meta/classes/image_types.bbclass | 20 ++++++++++++++++++--
3 files changed, 32 insertions(+), 2 deletions(-)
create mode 100644 meta/classes/image-empty.bbclass
rename meta/classes/{bootimg.bbclass => image-live.bbclass} (91%)
diff --git a/meta/classes/image-empty.bbclass b/meta/classes/image-empty.bbclass
new file mode 100644
index 0000000..e69de29
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/image-live.bbclass
similarity index 91%
rename from meta/classes/bootimg.bbclass
rename to meta/classes/image-live.bbclass
index 49ee85e..c9cd524 100644
--- a/meta/classes/bootimg.bbclass
+++ b/meta/classes/image-live.bbclass
@@ -25,6 +25,17 @@
# ${APPEND} - an override list of append strings for each label
# ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited
+AUTO_SYSLINUXCFG = "1"
+INITRD = "${DEPLOY_DIR_IMAGE}/core-image-minimal-initramfs-${MACHINE}.cpio.gz"
+APPEND += "root=/dev/ram0 "
+TIMEOUT = "10"
+LABELS += "boot install"
+
+ROOTFS = "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3"
+
+do_bootimg[depends] += "core-image-minimal-initramfs:do_rootfs"
+do_bootimg[depends] += "${IMAGE_BASENAME}:do_rootfs"
+
do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
syslinux:do_populate_sysroot \
syslinux-native:do_populate_sysroot \
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index edfb2d6..79a56f0 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -29,6 +29,9 @@ LDCONFIGDEPEND_libc-uclibc = ""
do_rootfs[depends] += "makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ${LDCONFIGDEPEND}"
do_rootfs[depends] += "virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot"
+IMAGE_TYPE = ${@base_contains("IMAGE_FSTYPES", "live", "live", "empty", d)}
+inherit image-${IMAGE_TYPE}
+
python () {
deps = bb.data.getVarFlag('do_rootfs', 'depends', d) or ""
for type in (bb.data.getVar('IMAGE_FSTYPES', d, True) or "").split():
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
index 1108802..1efdf06 100644
--- a/meta/classes/image_types.bbclass
+++ b/meta/classes/image_types.bbclass
@@ -1,7 +1,23 @@
+
def get_imagecmds(d):
cmds = "\n"
old_overrides = bb.data.getVar('OVERRIDES', d, 0)
- for type in bb.data.getVar('IMAGE_FSTYPES', d, True).split():
+
+ types = bb.data.getVar('IMAGE_FSTYPES', d, True).split()
+ try:
+ live_pos = types.index("live")
+ try:
+ ext3_pos = types.index("ext3")
+ except ValueError:
+ types.insert(live_pos, "ext3")
+ else:
+ if ext3_pos > live_pos:
+ types.pop(live_pos)
+ #types.append("live")
+ except ValueError:
+ pass
+
+ for type in types:
localdata = bb.data.createCopy(d)
localdata.setVar('OVERRIDES', '%s:%s' % (type, old_overrides))
bb.data.update_data(localdata)
@@ -103,4 +119,4 @@ IMAGE_DEPENDS_ubi = "mtd-utils-native"
IMAGE_DEPENDS_ubifs = "mtd-utils-native"
# This variable is available to request which values are suitable for IMAGE_FSTYPES
-IMAGE_TYPES = "jffs2 cramfs ext2 ext2.gz ext3 ext3.gz squashfs squashfs-lzma ubi"
+IMAGE_TYPES = "jffs2 cramfs ext2 ext2.gz ext3 ext3.gz live squashfs squashfs-lzma ubi"
--
1.7.3.4
More information about the Openembedded-core
mailing list