diff options
| -rw-r--r-- | meta/classes/image_types.bbclass | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index 9668bad7e3..588a474620 100644 --- a/meta/classes/image_types.bbclass +++ b/meta/classes/image_types.bbclass | |||
| @@ -97,18 +97,48 @@ IMAGE_TYPEDEP_elf = "cpio.gz" | |||
| 97 | 97 | ||
| 98 | UBI_VOLNAME ?= "${MACHINE}-rootfs" | 98 | UBI_VOLNAME ?= "${MACHINE}-rootfs" |
| 99 | 99 | ||
| 100 | IMAGE_CMD_ubi () { | 100 | multiubi_mkfs() { |
| 101 | echo \[ubifs\] > ubinize.cfg | 101 | local mkubifs_args="$1" |
| 102 | echo mode=ubi >> ubinize.cfg | 102 | local ubinize_args="$2" |
| 103 | echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs >> ubinize.cfg | 103 | local vname="_$3" |
| 104 | echo vol_id=0 >> ubinize.cfg | 104 | |
| 105 | echo vol_type=dynamic >> ubinize.cfg | 105 | echo \[ubifs\] > ubinize${vname}.cfg |
| 106 | echo vol_name=${UBI_VOLNAME} >> ubinize.cfg | 106 | echo mode=ubi >> ubinize${vname}.cfg |
| 107 | echo vol_flags=autoresize >> ubinize.cfg | 107 | echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}.rootfs.ubifs >> ubinize${vname}.cfg |
| 108 | mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS} | 108 | echo vol_id=0 >> ubinize${vname}.cfg |
| 109 | ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg | 109 | echo vol_type=dynamic >> ubinize${vname}.cfg |
| 110 | echo vol_name=${UBI_VOLNAME} >> ubinize${vname}.cfg | ||
| 111 | echo vol_flags=autoresize >> ubinize${vname}.cfg | ||
| 112 | mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}.rootfs.ubifs ${mkubifs_args} | ||
| 113 | ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}.rootfs.ubi ${ubinize_args} ubinize${vname}.cfg | ||
| 114 | |||
| 115 | # Cleanup cfg file | ||
| 116 | mv ubinize${vname}.cfg ${DEPLOY_DIR_IMAGE}/ | ||
| 117 | |||
| 118 | # Create own symlink | ||
| 119 | cd ${DEPLOY_DIR_IMAGE} | ||
| 120 | if [ -e ${IMAGE_NAME}${vname}.rootfs.ubifs ]; then | ||
| 121 | ln -sf ${IMAGE_NAME}${vname}.rootfs.ubifs \ | ||
| 122 | ${IMAGE_LINK_NAME}${vname}.ubifs | ||
| 123 | fi | ||
| 124 | if [ -e ${IMAGE_NAME}${vname}.rootfs.ubi ]; then | ||
| 125 | ln -sf ${IMAGE_NAME}${vname}.rootfs.ubi \ | ||
| 126 | ${IMAGE_LINK_NAME}${vname}.ubi | ||
| 127 | fi | ||
| 128 | cd - | ||
| 129 | } | ||
| 130 | |||
| 131 | IMAGE_CMD_multiubi () { | ||
| 132 | # Split MKUBIFS_ARGS_<name> and UBINIZE_ARGS_<name> | ||
| 133 | for name in ${MULTIUBI_BUILD}; do | ||
| 134 | eval local mkubifs_args=\"\$MKUBIFS_ARGS_${name}\" | ||
| 135 | eval local ubinize_args=\"\$UBINIZE_ARGS_${name}\" | ||
| 136 | |||
| 137 | multiubi_mkfs "${mkubifs_args}" "${ubinize_args}" "${name}" | ||
| 138 | done | ||
| 110 | } | 139 | } |
| 111 | IMAGE_TYPEDEP_ubi = "ubifs" | 140 | |
| 141 | IMAGE_CMD_ubi = "multiubi_mkfs "${MKUBIFS_ARGS}" "${UBINIZE_ARGS}" "${UBI_VOLNAME}"" | ||
| 112 | 142 | ||
| 113 | IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}" | 143 | IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}" |
| 114 | 144 | ||
| @@ -139,6 +169,7 @@ IMAGE_DEPENDS_squashfs-lzo = "squashfs-tools-native" | |||
| 139 | IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native" | 169 | IMAGE_DEPENDS_elf = "virtual/kernel mkelfimage-native" |
| 140 | IMAGE_DEPENDS_ubi = "mtd-utils-native" | 170 | IMAGE_DEPENDS_ubi = "mtd-utils-native" |
| 141 | IMAGE_DEPENDS_ubifs = "mtd-utils-native" | 171 | IMAGE_DEPENDS_ubifs = "mtd-utils-native" |
| 172 | IMAGE_DEPENDS_multiubi = "mtd-utils-native" | ||
| 142 | 173 | ||
| 143 | # This variable is available to request which values are suitable for IMAGE_FSTYPES | 174 | # This variable is available to request which values are suitable for IMAGE_FSTYPES |
| 144 | IMAGE_TYPES = " \ | 175 | IMAGE_TYPES = " \ |
| @@ -151,7 +182,7 @@ IMAGE_TYPES = " \ | |||
| 151 | iso \ | 182 | iso \ |
| 152 | hddimg \ | 183 | hddimg \ |
| 153 | squashfs squashfs-xz squashfs-lzo \ | 184 | squashfs squashfs-xz squashfs-lzo \ |
| 154 | ubi ubifs \ | 185 | ubi ubifs multiubi \ |
| 155 | tar tar.gz tar.bz2 tar.xz tar.lz4 \ | 186 | tar tar.gz tar.bz2 tar.xz tar.lz4 \ |
| 156 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ | 187 | cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \ |
| 157 | vmdk \ | 188 | vmdk \ |
