[oe] [PATCH 2/2] bitbake.conf: add ext4 image support
Bernhard Reutner-Fischer
rep.dot.nop at gmail.com
Thu Nov 18 19:27:29 UTC 2010
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
conf/bitbake.conf | 8 +++++++
conf/local.conf.sample | 2 +-
recipes/e2fsprogs/e2fsprogs.inc | 41 ++++++++++++++++----------------------
3 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index f1dc0ff..d89f7bb 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -369,6 +369,9 @@ IMAGE_CMD_ext2.bz2 = "install -d ${DEPLOY_DIR_IMAGE}/tmp.bz2 ; genext2fs -b ${RO
IMAGE_CMD_ext3 = "genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
IMAGE_CMD_ext3.gz = "install -d ${DEPLOY_DIR_IMAGE}/tmp.gz ; genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3.gz"
IMAGE_CMD_ext3.bz2 = "install -d ${DEPLOY_DIR_IMAGE}/tmp.bz2 ; genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext3; bzip2 -f -9 ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext3; mv ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext3.bz2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3.bz2"
+IMAGE_CMD_ext4 = "genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4 ${EXTRA_IMAGECMD}; tune2fs -O extents,uninit_bg,dir_index,has_journal ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4; set +e; e2fsck -yfDC0 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4;chk=$?; set -e; case $chk in 0|1|2);;*)exit $chk;;esac;"
+IMAGE_CMD_ext4.gz = "install -d ${DEPLOY_DIR_IMAGE}/tmp.gz ; genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext4 ${EXTRA_IMAGECMD}; tune2fs -O extents,uninit_bg,dir_index,has_journal ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext4; set +e;e2fsck -yfDC0 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext4;chk=$?; set -e; case $chk in 0|1|2);;*)exit $chk;;esac; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext4; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext4.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4.gz"
+IMAGE_CMD_ext4.bz2 = "install -d ${DEPLOY_DIR_IMAGE}/tmp.bz2 ; genext2fs -b ${ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext4 ${EXTRA_IMAGECMD}; tune2fs -O extents,uninit_bg,dir_index,has_journal ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext4; set +e; e2fsck -yfDC0 ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext4;chk=$?; set -e; case $chk in 0|1|2);;*)exit $chk;;esac; bzip2 -f -9 ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext4; mv ${DEPLOY_DIR_IMAGE}/tmp.bz2/${IMAGE_NAME}.rootfs.ext4.bz2 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4.bz2"
IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend"
IMAGE_CMD_squashfs-lzma = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-lzma ${EXTRA_IMAGECMD} -noappend -comp lzma"
IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar ."
@@ -402,6 +405,9 @@ IMAGE_DEPENDS_ext2.bz2 = "genext2fs-native"
IMAGE_DEPENDS_ext3 = "genext2fs-native e2fsprogs-native"
IMAGE_DEPENDS_ext3.gz = "genext2fs-native e2fsprogs-native"
IMAGE_DEPENDS_ext3.bz2 = "genext2fs-native e2fsprogs-native"
+IMAGE_DEPENDS_ext4 = "genext2fs-native e2fsprogs-native"
+IMAGE_DEPENDS_ext4.gz = "genext2fs-native e2fsprogs-native"
+IMAGE_DEPENDS_ext4.bz2 = "genext2fs-native e2fsprogs-native"
IMAGE_DEPENDS_cpio.gz.u-boot = "u-boot-mkimage-native"
IMAGE_DEPENDS_cpio.lzma = "lzma-native"
IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
@@ -718,6 +724,8 @@ IMAGE_ROOTFS_SIZE_ext2 ?= "65536"
IMAGE_ROOTFS_SIZE_ext2.gz ?= "65536"
IMAGE_ROOTFS_SIZE_ext3 ?= "65536"
IMAGE_ROOTFS_SIZE_ext3.gz ?= "65536"
+IMAGE_ROOTFS_SIZE_ext4 ?= "65536"
+IMAGE_ROOTFS_SIZE_ext4.gz ?= "65536"
DISTRO_PR ?= ""
# Forcefully set CACHE now so future changes to things like
diff --git a/conf/local.conf.sample b/conf/local.conf.sample
index 60c10e4..31357b9 100644
--- a/conf/local.conf.sample
+++ b/conf/local.conf.sample
@@ -114,7 +114,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
# INHERIT = "package_tar"
# Add the required image file system types below. Valid are
-# jffs2, tar(.gz|bz2), cpio(.gz), cramfs, ext2(.gz), ext3(.gz)
+# jffs2, tar(.gz|bz2), cpio(.gz), cramfs, ext2(.gz), ext3(.gz), ext4(.gz|.bz2),
# squashfs, squashfs-lzma
IMAGE_FSTYPES = "jffs2 tar"
diff --git a/recipes/e2fsprogs/e2fsprogs.inc b/recipes/e2fsprogs/e2fsprogs.inc
index 7697440..3d3e874 100644
--- a/recipes/e2fsprogs/e2fsprogs.inc
+++ b/recipes/e2fsprogs/e2fsprogs.inc
@@ -9,7 +9,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz"
S = "${WORKDIR}/e2fsprogs-${PV}"
-INC_PR = "r24"
+INC_PR = "r25"
inherit autotools
@@ -31,29 +31,22 @@ do_install_append () {
oe_runmake install-libs DESTDIR=${D}
- mv ${D}${base_sbindir}/e2fsck ${D}${base_sbindir}/e2fsck.${PN}
- rm ${D}${base_sbindir}/fsck.ext2
- rm ${D}${base_sbindir}/fsck.ext3
- rm ${D}${base_sbindir}/fsck.ext4*
- mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.${PN}
- rm ${D}${base_sbindir}/mkfs.ext2
- rm ${D}${base_sbindir}/mkfs.ext3
- rm ${D}${base_sbindir}/mkfs.ext4*
-
- cd ${D}/${base_sbindir}
- ln -sf ./e2fsck.${PN} fsck.ext2.${PN}
- ln -sf ./e2fsck.${PN} fsck.ext3.${PN}
- ln -sf ./e2fsck.${PN} fsck.ext4.${PN}
- ln -sf ./e2fsck.${PN} fsck.ext4dev.${PN}
- ln -sf ./mke2fs.${PN} mkfs.ext2.${PN}
- ln -sf ./mke2fs.${PN} mkfs.ext3.${PN}
- ln -sf ./mke2fs.${PN} mkfs.ext4.${PN}
- ln -sf ./mke2fs.${PN} mkfs.ext4dev.${PN}
-
- ln -sf ./tune2fs findfs
- ln -sf ./tune2fs e2label
-
- mv ${D}${bindir}/chattr ${D}${bindir}/chattr.${PN}
+ if ${@['true','false'][(bb.data.inherits_class('packaged-staging', d))]}; then
+ for f in e2fsck mke2fs; do
+ mv ${D}${base_sbindir}/$f ${D}${base_sbindir}/$f.${PN}
+ done
+ for f in chattr; do
+ mv ${D}${bindir}/$f ${D}${bindir}/$f.${PN}
+ done
+ fsck=$(cd ${D}${base_sbindir}/ && ls -1 fsck.ext* | sed s/[^\.]*//)
+ for e in $fsck;do
+ rm ${D}${base_sbindir}/{fsck,mkfs}$e;
+ ln -s ${D}${base_sbindir}/e2fsck$e.${PN}$e fsck$e.${PN}
+ ln -s ${D}${base_sbindir}/mke2fs$e.${PN}$e mkfs$e.${PN}
+ done
+ fi
+ ln -sf ${D}/${base_sbindir}/tune2fs findfs
+ ln -sf ${D}/${base_sbindir}/tune2fs e2label
}
pkg_postinst_e2fsprogs () {
--
1.7.2.3
More information about the Openembedded-devel
mailing list