summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Sokolovsky <pmiscml@gmail.com>2008-02-06 16:36:16 +0000
committerPaul Sokolovsky <pmiscml@gmail.com>2008-02-06 16:36:16 +0000
commitc4b9bd13292f10884ad96854b79b1d22251bd1e7 (patch)
tree25eca358bf73c213f132526e1b0e36cb1a684b93
parent6b9c2ffba4d6d8dc85d3667c76af92a8cf53eacf (diff)
contrib/image-convert: Add scripts to convert FS images to different formats.
* Per RFC on the list.
-rw-r--r--contrib/image-convert/.mtn2git_empty0
-rw-r--r--contrib/image-convert/README5
-rwxr-xr-xcontrib/image-convert/cpio2tar9
-rwxr-xr-xcontrib/image-convert/tar2ext225
-rwxr-xr-xcontrib/image-convert/tar2ext2.mount25
-rwxr-xr-xcontrib/image-convert/tar2jffs8
6 files changed, 72 insertions, 0 deletions
diff --git a/contrib/image-convert/.mtn2git_empty b/contrib/image-convert/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/contrib/image-convert/.mtn2git_empty
diff --git a/contrib/image-convert/README b/contrib/image-convert/README
new file mode 100644
index 0000000000..9daca60703
--- /dev/null
+++ b/contrib/image-convert/README
@@ -0,0 +1,5 @@
+This directory contains scripts to convert (root) filesystem images from one
+format to another. While OpenEmbedded has extensive support for generating
+images in various formats, sometimes it may be useful/needed to convert
+already existing image.
+
diff --git a/contrib/image-convert/cpio2tar b/contrib/image-convert/cpio2tar
new file mode 100755
index 0000000000..7f2c92fe26
--- /dev/null
+++ b/contrib/image-convert/cpio2tar
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+STAGING= #~/linux-ppc/build-oe-angstrom/tmp/staging/i686-linux/bin/
+
+${STAGING}fakeroot bash -c " \
+rm -rf scratch; mkdir scratch; \
+cd scratch; gzip -d -c ../$1 | cpio -i --make-directories; \
+cd ..; \
+tar -cj -C scratch -f $(basename $1 .cpio.gz).tar.bz2 ."
diff --git a/contrib/image-convert/tar2ext2 b/contrib/image-convert/tar2ext2
new file mode 100755
index 0000000000..d5756a4733
--- /dev/null
+++ b/contrib/image-convert/tar2ext2
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]; then
+ echo "Usage: $0 <tarball> <ext2 size>"
+ exit
+fi
+
+ext=`echo $1 | sed -r -e 's/.+\.([^.]+\.[^.]+)/\1/'`
+base=$(basename $1 .$ext)
+dir=$(dirname $1)
+
+if [ "$ext" == "tar.bz2" ]; then
+ uncompress=j
+else
+ uncompress=z
+fi
+
+rm -rf mnt
+mkdir -p mnt
+
+fakeroot bash -c "\
+tar -x$uncompress -f $1 -C mnt; \
+genext2fs -d mnt -b $(($2 * 1024)) $dir/$base.img; \
+rm -rf mnt; \
+"
diff --git a/contrib/image-convert/tar2ext2.mount b/contrib/image-convert/tar2ext2.mount
new file mode 100755
index 0000000000..7e23098c4d
--- /dev/null
+++ b/contrib/image-convert/tar2ext2.mount
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+if [ $# -ne 2 ]; then
+ echo "Usage: $0 <tarball> <ext2 size>"
+ exit
+fi
+
+ext=`echo $1 | sed -r -e 's/.+\.([^.]+\.[^.]+)/\1/'`
+base=$(basename $1 .$ext)
+if [ "$ext" == "tar.bz2" ]; then
+ uncompress=j
+else
+ uncompress=z
+fi
+
+dd if=/dev/zero of=$base.img bs=1M count=$2
+mkfs.ext2 -F -m1 $base.img
+
+mkdir -p mnt
+mount -o loop $base.img mnt
+
+tar -x$uncompress -f $1 -C mnt
+
+umount mnt
+rm -rf mnt
diff --git a/contrib/image-convert/tar2jffs b/contrib/image-convert/tar2jffs
new file mode 100755
index 0000000000..7bf158e4a5
--- /dev/null
+++ b/contrib/image-convert/tar2jffs
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+STAGING= #~/linux-ppc/build-oe-angstrom/tmp/staging/i686-linux/bin/
+
+${STAGING}fakeroot bash -c " \
+rm -rf scratch; mkdir scratch; \
+tar -xj -f $1 -C scratch; \
+${STAGING}mkfs.jffs2 -x lzo --root=scratch --faketime --output=$(dirname $1)/$(basename $1 .tar.bz2).jffs2"