Author: glen
Date: Thu Oct 19 15:38:59 2006
New Revision: 7876

Modified:
   geninitrd/trunk/geninitrd
Log:
Make ext2 image size dynamic -- calculated at building time.

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Thu Oct 19 15:38:59 2006
@@ -1045,25 +1045,7 @@
        exit 1
 fi
 
-if [ "$INITRDFS" = "ext2" ] ; then
-       case "$(uname -m)" in
-       ia64|amd64|x86_64|sparc64)
-               IMAGESIZE=5000
-               ;;
-       *)
-               IMAGESIZE=1500
-               ;;
-       esac
-
-       dd if=/dev/zero of="$IMAGE" bs=1k count="$IMAGESIZE" 2> /dev/null
-       mke2fs -q -F -b 1024 -m 0 "$IMAGE" 2>/dev/null 1>&2
-       tune2fs -i 0 "$IMAGE" >/dev/null 2>&1
-
-       mkdir -p "$MNTPOINT"
-       mount -o loop -t ext2 "$IMAGE" "$MNTPOINT"
-else
-       mkdir -p "$MNTPOINT"
-fi
+mkdir -p "$MNTPOINT"
 
 
 mkdir -p "$MNTIMAGE"/{lib,bin,etc,dev,loopfs,var}
@@ -1463,6 +1445,21 @@
 
 case "$INITRDFS" in
        ext2)
+               IMAGESIZE=$(du -ks $MNTPOINT | awk '{print $1 + 512}')
+               [ "$verbose" ] && echo "ext2 image size: $IMAGESIZE ($MNTPOINT)"
+               if [ "$IMAGESIZE" -gt 4096 ]; then
+                       echo >&2 "$0: Your image size is larger than 4096, You 
should add ramdisk_size=$IMAGESIZE to your kernel commandline!"
+               fi
+
+               dd if=/dev/zero of="$IMAGE" bs=1k count="$IMAGESIZE" 2> 
/dev/null
+               mke2fs -q -F -b 1024 -m 0 "$IMAGE" 2>/dev/null 1>&2
+               tune2fs -i 0 "$IMAGE" >/dev/null 2>&1
+
+               tmpmnt="`mktemp -d /tmp/initrd.mnte2-XXXXXX`"
+               mount -o loop -t ext2 "$IMAGE" "$tmpmnt"
+
+               (cd "$MNTPOINT"; tar cf - .) | (cd "$tmpmnt"; tar xf -)
+
                umount "$IMAGE"
                ;;
        rom)
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to